Чем отличаются результаты Tensor placeholder и Numpy в приведенном ниже фрагменте кода?

#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