在下面的代码段中,张量占位符和Numpy结果有何不同?

在下面的代码段中,张量占位符和Numpy结果有何不同?,numpy,tensorflow,machine-learning,placeholder,Numpy,Tensorflow,Machine Learning,Placeholder,代码段: 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)))

代码段:

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]


每次调用
np.random.uniform(0,1,(1,没有任何特征))
时,我可以在两个语句中得到相同的结果。要么只调用它一次并保存它的结果(即,
a=np.random.uniform(0,1,(1,没有任何特性));print(sess.run(x,feed_dict={x:a}));print(a)
),要么在每次调用之前重置seed以获得始终相同的结果。这里,np.random.seed(101)在同一个随机函数的调用之间不处理以获得相同的结果?就像调用相同的随机函数n次一样?
np.random.seed
只会将随机数生成器初始化为特定状态。它确保你得到的结果是可重复的,例如,如果你做了
np.random.seed(101);打印(np.random.rand());打印(np.random.rand());打印(np.random.rand())
您将得到三个不同的数字,但每次运行时,它们始终是相同的三个不同的数字。谢谢You@jdehesa