如何在tensorflow中将变量复制到另一个图形

如何在tensorflow中将变量复制到另一个图形,tensorflow,Tensorflow,我希望将tensorflow变量从一个旧图复制到一个新图,然后删除旧图并将新图作为默认图。下面是我的代码,但它引发了一个AttributeError:“Graph”对象没有属性“variable1”。我是tensorflow的新手。有谁能给我举个具体的例子吗 将tensorflow导入为tf 将numpy作为np导入 graph1=tf.Graph() 使用graph1.as_default(): variable1=tf.Variable(np.array([2.,-1.]),name='x1

我希望将tensorflow变量从一个旧图复制到一个新图,然后删除旧图并将新图作为默认图。下面是我的代码,但它引发了一个
AttributeError:“Graph”对象没有属性“variable1”
。我是tensorflow的新手。有谁能给我举个具体的例子吗

将tensorflow导入为tf
将numpy作为np导入
graph1=tf.Graph()
使用graph1.as_default():
variable1=tf.Variable(np.array([2.,-1.]),name='x1')
initialize=tf.initialize\u所有变量()
sess1=tf.Session(graph=graph1)
sess1.run(初始化)
打印('sess1:',variable1.eval(session=sess1))
graph2=tf.Graph()
使用graph2.as_default():
variable2=tf.contrib.copy_graph.copy_variable_to_graph(graph1.variable1,graph2)
sess2=tf.Session(图=graph2)
#我想删除graph1和sess1,并将graph2和sess2设为此处的默认值。
打印('sess2:',variable2.eval(session=sess2))
  • tf.初始化所有变量()。改用
    tf.global\u variables\u initializer()

  • 您不需要
    图形1.variable1
    。只需传递
    变量1

  • 您忘记在第二个会话中初始化变量:

    initialize2 = tf.global_variables_initializer()
    sess2=tf.Session(graph=graph2)
    sess2.run(initialize2)
    
  • 因此,您的代码应该如下所示:

    import tensorflow as tf
    import numpy as np
    
    graph1 = tf.Graph()
    with graph1.as_default():
        variable1 = tf.Variable(np.array([2.,-1.]), name='x1')
        initialize = tf.global_variables_initializer()
        sess1=tf.Session(graph=graph1)
        sess1.run(initialize)
        print('sess1:',variable1.eval(session=sess1))
    
    graph2 = tf.Graph()
    with graph2.as_default():
        variable2=tf.contrib.copy_graph.copy_variable_to_graph(variable1,graph2)
        initialize2 = tf.global_variables_initializer()
        sess2=tf.Session(graph=graph2)
        sess2.run(initialize2)
        #I want to remove graph1 and sess1, ande make graph2 and sess2 as default here.
        print('sess2:',variable2.eval(session=sess2))
    

    如果变量初始值为初始值设定项类型,则不起作用