Python 为什么tensorflow random_normal函数以固定的种子值给出不同的输出
我设置了一个固定的种子值,并使用以下代码行运行会话Python 为什么tensorflow random_normal函数以固定的种子值给出不同的输出,python,tensorflow,Python,Tensorflow,我设置了一个固定的种子值,并使用以下代码行运行会话 with tf.Session() as sess: matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1) print(matrix.eval()) print(matrix.eval()) print(matrix.eval()) print(sess.run(matrix)) print(sess.run(matrix))
with tf.Session() as sess:
matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1)
print(matrix.eval())
print(matrix.eval())
print(matrix.eval())
print(sess.run(matrix))
print(sess.run(matrix))
print(sess.run(matrix))
print(sess.run(matrix))
但是代码给了我这样的输出
[[1.2818339 3.3878284]
[3.2804048 0.691338 ]]
[[0.84588486 1.3642604 ]
[1.6235023 0.96976113]]
[[2.3133767 2.4734092]
[1.6430309 0.7378005]]
[[ 1.8944461 0.39336425]
[ 0.1861412 -0.01721728]]
[[-0.6642921 2.3849297 ]
[-0.06870818 -0.1625154 ]]
[[ 1.0668459 0.45170426]
[ 2.4276698 -0.24925494]]
[[1.8668368 1.3444978 ]
[1.5144594 0.31290668]]
我希望打印精确的值,因为我固定了种子值。为什么它会打印出不同的值?
谢谢在每次运行中,您的计算图都会重新计算,从而生成新的随机数,但不会重置种子
我认为再次运行整个Python文件应该会得到与以前相同的输出。在每次运行中,计算图都会重新计算,从而生成新的随机数,但不会重置种子
我认为再次运行整个Python文件应该会得到与以前相同的输出。Seed仅用于初始化矩阵。每次运行会话时,将使用相同的值初始化矩阵 但是,每次调用matrix.eval时,它都会给出随机值链中的下一个随机值 如果你总是想要相同的数字,你就必须做下面的事情,尽管我怀疑它的有用性
with tf.Session() as sess:
matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1)
print(matrix.eval())
matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1)
print(matrix.eval())
返回:
[[ 1.28183389 3.38782835]
[ 3.28040481 0.691338 ]]
[[ 1.28183389 3.38782835]
[ 3.28040481 0.691338 ]]
种子仅用于初始化矩阵。每次运行会话时,将使用相同的值初始化矩阵 但是,每次调用matrix.eval时,它都会给出随机值链中的下一个随机值 如果你总是想要相同的数字,你就必须做下面的事情,尽管我怀疑它的有用性
with tf.Session() as sess:
matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1)
print(matrix.eval())
matrix = tf.random_normal([2,2], mean=1, stddev=1, seed=1)
print(matrix.eval())
返回:
[[ 1.28183389 3.38782835]
[ 3.28040481 0.691338 ]]
[[ 1.28183389 3.38782835]
[ 3.28040481 0.691338 ]]
这就是随机种子通常的工作方式。。。这就是随机种子通常的工作方式。。。我正在建立一个网络,但我不知道它是否运行良好,因为每次它训练我都会得到不同的结果。我怎么能确定?我将我的权重定义为“权重”:tf.Variabletf.truncated_normal[22,n_nodes_hl1],seed=1我正在构建一个网络,但我不知道它是否运行良好,因为每次训练我都会得到不同的结果。我怎么能确定?我将权重定义为“权重”:tf.Variabletf.truncated_normal[22,n_nodes_hl1],seed=1