當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python mxnet.random.seed用法及代碼示例

用法:

mxnet.random.seed(seed_state, ctx='all')

參數

  • seed_state(int) - 隨機數種子。
  • ctx(mxnet.context.Context) - 生成器的設備上下文。默認值為“all”,這意味著播種所有設備的隨機數生成器。

在 MXNet 中播種隨機數生成器。

這會影響 MXNet 中使用隨機數生成器的模塊的行為,例如 dropout 運算符和 NDArray 的隨機采樣運算符。

注意

MXNet 中的隨機數生成器是特定於設備的。 mx.random.seed(seed_state) 使用 seed_state 和設備 ID 設置每個生成器的狀態。因此,從不同設備生成的隨機數可能是不同的,即使它們是使用相同的種子播種的。

要生成獨立於設備 ID 的相同隨機數序列,請設置可選的 ctx 參數。這會產生與設備 ID 無關的相同隨機數序列,但由於 MXNet 的 CPU 和 GPU 隨機數生成器使用不同的算法,不同類型的設備上的序列可能不同。

示例

>>> print(mx.nd.random.normal(shape=(2,2)).asnumpy())
[[ 1.36481571 -0.62203991]
 [-1.4962182  -0.08511394]]
>>> print(mx.nd.random.normal(shape=(2,2)).asnumpy())
[[ 1.09544981 -0.20014545]
 [-0.20808885  0.2527658 ]]
# Same results on the same device with the same seed
>>> mx.random.seed(128)
>>> print(mx.nd.random.normal(shape=(2,2)).asnumpy())
[[ 0.47400656 -0.75213492]
 [ 0.20251541  0.95352972]]
>>> mx.random.seed(128)
>>> print(mx.nd.random.normal(shape=(2,2)).asnumpy())
[[ 0.47400656 -0.75213492]
 [ 0.20251541  0.95352972]]
# Different results on gpu(0) and gpu(1) with the same seed
>>> mx.random.seed(128)
>>> print(mx.nd.random.normal(shape=(2,2), ctx=mx.gpu(0)).asnumpy())
[[ 2.5020072 -1.6884501]
 [-0.7931333 -1.4218881]]
>>> mx.random.seed(128)
>>> print(mx.nd.random.normal(shape=(2,2), ctx=mx.gpu(1)).asnumpy())
[[ 0.24336822 -1.664805  ]
 [-1.0223296   1.253198  ]]
# Seeding with `ctx` argument produces identical results on gpu(0) and gpu(1)
>>> mx.random.seed(128, ctx=mx.gpu(0))
>>> print(mx.nd.random.normal(shape=(2,2), ctx=mx.gpu(0)).asnumpy())
[[ 2.5020072 -1.6884501]
 [-0.7931333 -1.4218881]]
>>> mx.random.seed(128, ctx=mx.gpu(1))
>>> print(mx.nd.random.normal(shape=(2,2), ctx=mx.gpu(1)).asnumpy())
[[ 2.5020072 -1.6884501]
 [-0.7931333 -1.4218881]]

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.random.seed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。