gpt4 book ai didi

python - 使用 hashlib 散列种子 numpy.random.RandomState

转载 作者:太空宇宙 更新时间:2023-11-04 03:14:31 28 4
gpt4 key购买 nike

我想用 hashlib 生成的哈希为 numpy.random.RandomState 实例播种,以使伪随机源始终为相同的输入数据生成相同的值。当我尝试这样做时:

hash = sha256(some_data)
RandomState(seed=hash.digest())

我得到:

ValueError: object of too small depth for desired array

我可以做 map(ord, hash.digest()) 但我不知道这是否是正确的解决方案。我应该这样做还是会失去随机性?

最佳答案

首先,随机状态种子是一个 32 位无符号整数,因此它无法使用您生成的完整 256 位哈希。

感谢下面的评论者指出种子可以是 32 位(无符号)整数数组;您可以将散列转换为这样的数组,如下所示:

import numpy as np
from hashlib import sha256

data = np.random.rand(1000)
hash = sha256(data)
seed = np.frombuffer(hash.digest(), dtype='uint32')

rstate = np.random.RandomState(seed)

关于python - 使用 hashlib 散列种子 numpy.random.RandomState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com