Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TensorFlow中变量初始化不一致_Python_Tensorflow_Initialization_Deterministic - Fatal编程技术网

Python 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

我注意到,即使对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_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]