我想播种我的随机数生成器。我可以执行以下操作:
import tensorflow as tf
sess = tf.Session()
# Set seed at graph-level
tf.random.set_random_seed(1)
# Set seed at op level
a = tf.random_uniform([1], seed=1)
with tf.Session() as sess1:
print(sess1.run(a))
以下内容也适用:
print(sess.run(tf.random_uniform([1], seed=1)))
但是,每次我运行以下代码时,它都会生成一个不同的数字:
print(sess.run(a))
有关种子的信息:https://www.tensorflow.org/api_docs/python/tf/random/set_random_seed
1)为什么后者不起作用?
2)为了使其正常工作,我该怎么做,即不使用“ with tf.Session()as sess1:”?
答案 0 :(得分:1)
tf.random_uniform(..., seed=1)
并不意味着始终生成相同的数字,而是多次执行会话时会生成相同系列的数字。因此,以下行为将具有相同的行为:
sess = tf.Session()
a = tf.random_uniform([1], seed=1)
for _ in range(10):
print(sess.run(a))
print('----------')
with tf.Session() as sess1:
for _ in range(10):
print(sess1.run(a))