Python numpy.random.SeedSequence实例讲解

时间:2022-04-07
本文章向大家介绍Python 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 {无,int 序列[int]},可选

创建 SeedSequence 的熵。

spawn_key {(),序列[int]},可选

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

pool_size {int},可选

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

n_children_spawned {int},可选

已经产生的孩子的数量。仅在从序列化表单重构 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