Tensorflow 如何将两个模型恢复到一个会话中,然后分别保存它们?

Tensorflow 如何将两个模型恢复到一个会话中,然后分别保存它们?,tensorflow,deep-learning,Tensorflow,Deep Learning,我有两个模型,它们来自同一个网络,但具有不同的顶级变量范围名称,因此两个变量集的名称完全不同,例如,对于一个w变量,一个是j2e/training/w,另一个是e2j/training/w。 我想将它们加载到一个会话中,并进行一些交互训练,希望分别保存这两个模型,有点像双重学习。。。 我该怎么办?我可以这样做吗 .........building graph........... saver1 = tf.train.Saver(var_list1) saver2 = tf

我有两个模型,它们来自同一个网络,但具有不同的顶级变量范围名称,因此两个变量集的名称完全不同,例如,对于一个w变量,一个是j2e/training/w,另一个是e2j/training/w。 我想将它们加载到一个会话中,并进行一些交互训练,希望分别保存这两个模型,有点像双重学习。。。 我该怎么办?我可以这样做吗

    .........building graph...........
    saver1 = tf.train.Saver(var_list1)
    saver2 = tf.train.Saver(var_list2)
    saver1.restore(sess, model1)
    saver2.restore(sess, model2)
最后:

    saver1.save(sess, path1)
    saver2.save(sess, path2)
如果是这样,两个模型之间的交互将如何恢复?哪个模型可以保存这部分图形?我怎样才能得到var_列表1和var_列表2


非常感谢。

好的,试试这样的方法:

def graph_e2j(var_list1):
    e2j = tf.Graph()
    saver1 = tf.train.Saver(var_list1)
    with e2j.as_default() as e2j:
            saver1.restore(sess, model1)
    return g.as_graph_def()
现在对另一个模型做一个类似的函数


对于您提到的保存部分,您说得对,因为这些保存者指向不同的变量集

Con您提供了更多信息吗?我想知道你想做什么,为什么。这是一个机器翻译问题。最初的两个模型分别在两个方向上,例如j2e和e2j。它们来自同一个网络,只是变量范围不同。为了尝试双重学习,我需要将这两个模型加载到一个会话中,学习后我也希望像以前一样分别保存它们…但它们应该在一个会话中的一个图形中。。。我已经试过了。是啊~~我的思维方式……谢谢。。。