numpy.random.SeedSequence#

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

SeedSequence 以可重现的方式混合熵源,以设置独立且很可能不重叠的 BitGenerator 的初始状态.

实例化 SeedSequence 后,您可以调用 generate_state 方法来获取适当大小的种子.调用 spawn(n) <spawn> 将创建 n 个 SeedSequence,这些 SeedSequence 可用于播种独立的 BitGenerator,即用于不同的线程.

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

用于创建 SeedSequence 的熵.所有整数值必须为非负数.

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

基于此 SeedSequence 在使用 SeedSequence.spawn 方法创建的此类对象的树中的位置的额外熵源.通常,只有 SeedSequence.spawn 会设置此项,用户不会.

pool_size{int}, optional

要存储的池化熵的大小.默认为 4,以提供 128 位熵池.如果使用较大的 PRNG,8(对于 256 位)是另一个合理的选择,但选择另一个值几乎没有什么好处.

n_children_spawned{int}, optional

已生成的子代的数量.仅当从序列化形式重建 SeedSequence 时才传递此参数.

注释

实现可重现位流的最佳实践是使用默认的 None 作为初始熵,然后使用 SeedSequence.entropy 记录/pickle 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 .