读一个jupyter笔记本的随机种子

时间:2017-07-25 14:20:41

标签: python numpy jupyter random-seed

有没有办法在jupyter笔记本中读取随机数生成器的“状态”?

例如,如果我运行一个指定神经网络架构的单元格,然后在没有指定种子的情况下对某些数据进行训练,那么我有没有办法读取用于运行此种子的种子?

1 个答案:

答案 0 :(得分:2)

您确实可以读取(并存储)RNG的当前状态,但每次使用时都会发生变化,即在之后您无法执行所描述的内容已经运行了这个细胞。

以下是一个示例(因为您已使用keras标记了问题,我假设您实际上对Numpy RNG感兴趣,这是在Keras中使用的那个:

import numpy as np
current_state = np.random.get_state()

# produce some random numbers:
a = np.random.randn(3)
a
# array([-0.44270351, 1.42933504, 2.11385353])

# Now, restoring the RNG state and producing again 3 random numbers, you get the same result:

np.random.set_state(current_state)
b = np.random.randn(3)
b
# array([-0.44270351, 1.42933504, 2.11385353])
a == b
# array([ True, True, True], dtype=bool)