Tensorflow`set_random_seed`无法正常工作
通话tf.set_random_seed(SEED)
没有影响,我可以告诉…
例如, 在IPython笔记本中 多次 在 下面运行以下代码会每次产生不同的输出:
import tensorflow as tftf.set_random_seed(42)
sess = tf.InteractiveSession()
a = tf.constant([1, 2, 3, 4, 5])
tf.initialize_all_variables().run()
a_shuf = tf.random_shuffle(a)
print(a.eval())
print(a_shuf.eval())
sess.close()
如果我显式设置种子:a_shuf = tf.random_shuffle(a,
seed=42),则每次运行后输出都是相同的。但是,如果我已经打电话,为什么还要设置种子tf.set_random_seed(42)
?
使用numpy的等效代码仅适用于:
import numpy as npnp.random.seed(42)
a = [1,2,3,4,5]
np.random.shuffle(a)
print(a)
回答:
这仅设置图级别的随机种子。如果您连续多次执行此代码段,则图形将更改,并且两个shuffle语句将获得不同的操作级种子。细节的描述文档字符串为set_random_seed
要获得确定性,a_shuf
您可以
- 调用
tf.reset_default_graph()
之间的调用或 - 设置洗牌的操作级别种子:
a_shuf = tf.random_shuffle(a, seed=42)
以上是 Tensorflow`set_random_seed`无法正常工作 的全部内容, 来源链接: utcz.com/qa/407268.html