tf.get_default_graph不会删除节点

时间:2017-11-09 18:10:56

标签: tensorflow

请考虑以下代码:

    import tensorflow as tf

    x = tf.Variable(3, name="x")
    x.graph is tf.get_default_graph()  #prints True
    tf.reset_default_graph()
    x.graph is tf.get_default_graph()  #prints False
    x                                  #prints <tf.Variable 'x:0' shape=() dtype=int32_ref>

我的问题如下:

  1. 为什么在重置后节点x存在?
  2. 默认图表中不存在节点x。它存在于哪里?

1 个答案:

答案 0 :(得分:1)

  1. 当前默认图表中不存在该节点。 prining x只输出你定义的python变量。该变量存在于python中,但当前的默认图形不包含它。
  2. 唯一存在的是x python变量。您可以运行以下脚本来验证此操作。
  3. 此脚本会抛出ValueError例外:

    import tensorflow as tf
    
    x = tf.Variable(3, name="x")
    x.graph is tf.get_default_graph()  #prints True
    tf.reset_default_graph()
    x.graph is tf.get_default_graph()  #prints False
    
    init = tf.global_variables_initializer()
    with tf.Session() as sess:
        sess.run(init) # initialize the variables
        sess.run(x) #error
    
      

    Tensor Tensor(“x:0”,shape =(),dtype = int32_ref)不是此图的元素。