numpy.random.SeedSequence

class numpy.random.SeedSequence(entropy=None, *, spawn_key=(), pool_size=4)

SeedSequence以一种可复制的方式混合熵源,为独立且很可能不重叠的位生成器设置初始状态。

一旦SeedSequence被实例化,就可以调用 generate_state 方法得到大小合适的种子。打电话 spawn(n) 将创造 n 可用于为独立位生成器(即不同线程)播种的种子序列。

参数
entropy{None, int, sequence[int]}, optional

创建一个 SeedSequence .

spawn_key{(), sequence[int]}, optional

熵的第三个来源,在调用时在内部使用 SeedSequence.spawn

pool_size{int},可选

要存储的集合熵的大小。默认值为4,表示128位的熵池。如果使用更大的prng,8(256位)是另一个合理的选择,但是选择另一个值几乎没有什么好处。

n_children_spawned{int},可选

已生成的子级数。只有在重建一个 SeedSequence 从序列化窗体。

笔记

实现可再现比特流的最佳实践是使用默认值 None 对于初始熵,然后使用 SeedSequence.entropy 记录/酸洗 entropy 再现性:

>>> sq1 = np.random.SeedSequence()
>>> sq1.entropy
243799254704924441050048792905230269161  # random
>>> sq2 = np.random.SeedSequence(sq1.entropy)
>>> np.all(sq1.generate_state(10) == sq2.generate_state(10))
True
属性
entropy
n_children_spawned
pool
pool_size
spawn_key
state

方法

generate_state \(n个单词)[, dtype] )

返回请求的PRNG种子的字数。

spawn \(nu儿童)

产生若干子代 SeedSequence 通过扩展 spawn_key .