我希望能够修复由 numpy
生成的(伪)随机数序列,以提高我的研究的可重复性。我们通常可以通过修复随机种子来实现此结果,我在 Python 中使用 np.random.seed 来修复该值,也是如此。然而,在两个 Python session 之间,我看到相同随机种子的不同结果。请在下面找到两个 session 的输出。
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.random.seed = 198908
>>> np.random.uniform(low=0.0, high=1.0, size=10)
array([ 0.43203804, 0.89881118, 0.02976592, 0.93286634, 0.21568609,
0.44705267, 0.27159611, 0.4000281 , 0.33873711, 0.54835523])
>>> exit()
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.random.seed = 198908
>>> np.random.uniform(low=0.0, high=1.0, size=10)
array([ 0.20178185, 0.22492203, 0.51029445, 0.4776532 , 0.49109006,
0.22807983, 0.86419725, 0.53422946, 0.08904607, 0.83125896])
>>> exit()
我在这里遗漏了什么吗?另外,任何人都可以建议一种在不同机器上生成一致的随机抽取的方法(假设安装了相同的软件版本)?
最佳答案
np.random.seed
是一个函数。替换:
np.random.seed = 198908
与:
np.random.seed(198908)
详细信息
提供给 seed
的参数可以是 (1) 任何整数或 (2) 任意长度的整数数组(或其他序列),或 (3) 无。如果是None
,然后numpy
将从最佳可用随机源中选择一个种子,在 Linux 上为 /dev/urandom
.
关于python - 使 numpy 随机抽取保持一致以实现可重复性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309911/