当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。