numpy.random.SeedSequence#
- class numpy.random.SeedSequence(entropy=None, *, spawn_key=(), pool_size=4)#
SeedSequence 以可重复的方式混合熵源,以设置独立且极有可能不重叠的 BitGenerators 的初始状态。
一旦实例化了 SeedSequence,就可以调用
generate_state
方法来获取适当大小的种子。调用spawn(n)
将创建n
个 SeedSequence,这些 SeedSequence 可用于为独立的 BitGenerators(例如,用于不同的线程)设置种子。- 参数:
- entropy{None, int, sequence[int]}, 可选
用于创建
SeedSequence
的熵。所有整数值必须是非负数。- spawn_key{(), sequence[int]}, 可选
基于此
SeedSequence
在使用SeedSequence.spawn
方法创建的此类对象树中的位置的附加熵源。通常,只有SeedSequence.spawn
会设置此值,用户不会设置。- pool_size{int}, 可选
要存储的池化熵的大小。默认为 4,以提供 128 位熵池。如果使用更大的 PRNG,则 8(对于 256 位)是另一个合理的选择,但是选择其他值几乎没有什么好处。
- n_children_spawned{int}, 可选
已生成的子代数量。只有在从序列化形式重建
SeedSequence
时才传递此参数。
备注
实现可重复位流的最佳实践是将初始熵的默认值设置为
None
,然后使用SeedSequence.entropy
来记录/pickleentropy
以实现可重复性>>> 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_words[, dtype])返回 PRNG 播种所需的字数。
spawn
(n_children)通过扩展
spawn_key
来生成多个子SeedSequence
。