【发布时间】:2019-02-14 10:58:06
【问题描述】:
我读到如果您指定种子值,它会生成相同的随机数。在下面的代码中,虽然我已经指定了种子值,但在 for 循环中,rf 正在生成不同的随机值。但是,如果我省略 for 循环并运行此代码两次,则 rf 会生成相同的随机值。有人可以解释一下为什么会这样吗?
SEED= 1234567
s=np.random.seed(SEED)
print(s)
for i in range(3):
rf=np.random.uniform(-1.0,1.0,(3,4))
print(rf)
【问题讨论】:
-
每次生成随机数时都需要定义种子。通过将种子定义为相同的数字,生成的随机数变得相同。
-
所以在上面的代码中,我将种子值固定为 1234567,我希望循环运行 3 次时 rf 应该相同
-
尝试将
np.random.seed(SEED)移动到循环的顶部。 -
如果我在循环内移动 np.random.seed(SEED) 它会生成相同的数字 3 次。 .为什么在循环外指定它一次不会显示相同的行为