Tensorflow`set_random_seed`无法正常工作

通话tf.set_random_seed(SEED)没有影响,我可以告诉…

例如, 在IPython笔记本中 多次 下面运行以下代码会每次产生不同的输出:

import tensorflow as tf

tf.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 np

np.random.seed(42)

a = [1,2,3,4,5]

np.random.shuffle(a)

print(a)

回答:

这仅设置图级别的随机种子。如果您连续多次执行此代码段,则图形将更改,并且两个shuffle语句将获得不同的操作级种子。细节的描述文档字符串为set_random_seed

要获得确定性,a_shuf您可以

  1. 调用tf.reset_default_graph()之间的调用或
  2. 设置洗牌的操作级别种子: a_shuf = tf.random_shuffle(a, seed=42)

以上是 Tensorflow`set_random_seed`无法正常工作 的全部内容, 来源链接: utcz.com/qa/407268.html

回到顶部