Чтение случайного семени из блокнота Юпитера
Есть ли способ прочитать "состояние" генератора случайных чисел в блокноте Jupyter?
Например, если я запустил ячейку, в которой я определяю архитектуру нейронной сети, а затем обучил ее некоторым данным без указания начального числа, есть ли способ, которым я могу затем прочитать, какое начальное число использовалось для выполнения этого?
1 ответ
Решение
Вы действительно можете прочитать (и сохранить) текущее состояние ГСЧ, но оно меняется каждый раз, когда он используется, т.е. вы не можете делать то, что описали, после запуска ячейки.
Вот пример (так как вы пометили вопрос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)