Python TensorFlow中变量初始化不一致
我注意到,即使对TensorFlow图进行最轻微的更改,也会对结果产生随机影响,即使计算基本相同 在以下示例中,在添加变量Python TensorFlow中变量初始化不一致,python,tensorflow,initialization,deterministic,Python,Tensorflow,Initialization,Deterministic,我注意到,即使对TensorFlow图进行最轻微的更改,也会对结果产生随机影响,即使计算基本相同 在以下示例中,在添加变量y之前,将tf.no_op添加到图形中会更改该变量的初始值: def example(add_no_op=False): tf.reset_default_graph() tf.set_random_seed(42) x = tf.get_variable('x', shape=[], dtype=tf.float32) if add_no
y
之前,将tf.no_op
添加到图形中会更改该变量的初始值:
def example(add_no_op=False):
tf.reset_default_graph()
tf.set_random_seed(42)
x = tf.get_variable('x', shape=[], dtype=tf.float32)
if add_no_op:
tf.no_op()
y = tf.get_variable('y', shape=[], dtype=tf.float32)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run([x, y]))
这不是我所期望的。对于相同的随机种子,即使模型略有不同,我也会期望得到相同的结果,只要变量以相同的顺序添加,并且没有其他非确定性来源
通常,当我重构一段代码时,检查它是否仍然生成相同的输出是确保我没有破坏它的好方法。然而,在TensorFlow中,这似乎不起作用
为什么会发生这种情况,以及如何防止这种情况发生?我不确定,但可能有很多随机种子需要初始化。numpy种子和python随机种子。试试看能不能用?@AkshayLAradhya,不行。
>>> example()
[0.47769845, 0.014582992]
>>> example(add_no_op=True)
[0.47769845, 0.3524617]