numpy.random.SeedSequence#
- class numpy.random.SeedSequence(entropy=None, *, spawn_key=(), pool_size=4)#
SeedSequence 以可重現的方式混合熵源,為獨立且極有可能非重疊的 BitGenerator 設定初始狀態。
一旦 SeedSequence 被實例化,您可以呼叫
generate_state
方法來取得適當大小的種子。呼叫spawn(n)
將會建立n
個 SeedSequence,可用於為獨立的 BitGenerator 設定種子,例如用於不同的執行緒。- 參數:
- 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
。