TensorFlow:关于种子的微妙之处
我想给我的随机数生成器添加种子。我可以执行以下操作,这很有效:TensorFlow:关于种子的微妙之处,tensorflow,random-seed,Tensorflow,Random Seed,我想给我的随机数生成器添加种子。我可以执行以下操作,这很有效: 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)) 以下方法也
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))
有关种子的信息:
1) 为什么后者不起作用
2) 为了使其工作,我可以做些什么,即不使用“with tf.Session()as sess1:”?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))
为了在一个会话中始终生成相同的数字,我该怎么做?生成一个种子随机数并将其放入
tf.常量中如何?我对这个已经很陌生了。但我认为应该有一种方法可以用tensorflow来实现这一点。a=tf.Variable(initial_value=tf.random_uniform([1]))
这就是我能想到的。