#numpy #tensorflow #machine-learning #placeholder
#numpy #tensorflow #машинное обучение #плейсхолдер
Вопрос:
Фрагмент кода:
np.random.seed(101)
init =tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(x,feed_dict={x:np.random.uniform(0, 1, (1, no_of_features))}))
print(np.random.uniform(0, 1, (1, no_of_features)))
Результаты:
[[0.5163986 0.57066756 0.02847423 0.17152166]]
[[0.68527698 0.83389686 0.30696622 0.89361308]]
Что я мог бы сделать, чтобы получить одинаковые результаты в обоих операторах
Комментарии:
1. Каждый раз, когда вы вызываете
np.random.uniform(0, 1, (1, no_of_features))
, вы получаете новый случайный массив. Либо вызывайте его только один раз и сохраняйте его результат (т. Е.a = np.random.uniform(0, 1, (1, no_of_features)); print(sess.run(x,feed_dict={x:a})); print(a)
), Либо сбрасывайте начальное значение перед каждым вызовом, чтобы всегда получать один и тот же результат.2. Здесь np.random.seed(101) не обрабатывает получение одинакового результата при вызовах одной и той же случайной функции? Точно так же, как вызов одной и той же случайной функции n раз?
3.
np.random.seed
будет только инициализировать генератор случайных чисел в определенное состояние. Это гарантирует, что полученные результаты будут повторяемыми, например, если вы это сделаетеnp.random.seed(101); print(np.random.rand()); print(np.random.rand()); print(np.random.rand())
, вы получите три разных числа, но они всегда будут одинаковыми тремя разными числами при каждом запуске.4. Спасибо @jdehesa