numpy.random.SeedSequence#
- class numpy.random.SeedSequence(entropy=None, *, spawn_key=(), pool_size=4)#
SeedSequence 以可重复的方式混合熵源,为独立且很可能不重叠的 BitGenerators 设置初始状态.
一旦 SeedSequence 被实例化,你可以调用 generate_state 方法来获取一个适当大小的种子.调用 spawn(n) 将创建
n
个 SeedSequences,这些可以用来为独立的 BitGenerators 播种,即用于不同的线程.- 参数:
- entropy{None, int, sequence[int]}, 可选
创建
SeedSequence
的熵.所有整数值必须为非负数.- spawn_key{(), 序列[int]}, 可选
基于这个
SeedSequence
在通过SeedSequence.spawn
方法创建的对象树中的位置的额外熵源.通常,只有SeedSequence.spawn
会设置这个,用户不会.- pool_size{int}, 可选
要存储的合并熵的大小.默认值是4,以提供一个128位的熵池.8(用于256位)是另一个合理的选择,如果与更大的PRNG一起工作,但选择另一个值几乎没有好处.
- 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_words[, dtype])返回用于PRNG种子的请求字数.
spawn
(n_children)通过扩展 spawn_key 生成多个子
SeedSequence
.