Tensorflow 连接两个图

Tensorflow 连接两个图,tensorflow,Tensorflow,假设我有两个不同的图: 第一个包含x和y: x=tf.placeholder(tf.float32,shape=(1)), y=2*x, 第二个包含a和b: a=tf.placeholder(tf.float32,shape=(1)), b=2*x 现在,我想通过在y和a之间添加一些“标识链接”来连接这两个图。换句话说,我想告诉第二个图从第一个图(y)中的某个节点获取输入(a)。在没有代码重新创建第二个图形的情况下,它很方便,您只是从某个地方反序列化了它。一种方法是使用Session.run计算

假设我有两个不同的图: 第一个包含x和y: x=tf.placeholder(tf.float32,shape=(1)), y=2*x, 第二个包含a和b: a=tf.placeholder(tf.float32,shape=(1)), b=2*x

现在,我想通过在y和a之间添加一些“标识链接”来连接这两个图。换句话说,我想告诉第二个图从第一个图(y)中的某个节点获取输入(a)。在没有代码重新创建第二个图形的情况下,它很方便,您只是从某个地方反序列化了它。一种方法是使用Session.run计算第一个图的输出,然后将其提供给Session.run调用,该调用计算第二个图的输出,但必须有一种干净的方法


谢谢

如果我理解正确,这应该对你有用吗

它利用作业的
tf.import\u graph\u def

我们有
x
,然后馈送到第一个图形,得到
y=2*x
, 然后我们将
y
馈送到第二个图形以获得
b=2*y
,对于
x=1.0
,以下代码将产生
4.0

import tensorflow as tf
FLOAT = tf.float32
tf.reset_default_graph()

def graph_1():
    g = tf.Graph()
    with g.as_default():
        x = tf.placeholder(FLOAT, [], name='x')
        y = tf.multiply(2.0, x, name='y')
    return g

def graph_2():
    g = tf.Graph()
    with g.as_default():
        a = tf.placeholder(FLOAT, [], name='a')
        b = tf.multiply(2.0, a, name='b')
    return g

# x = 1.0
x = tf.constant(1.0, FLOAT, [])
# feed x to graph_1 -> y = 2.0
g1 = graph_1()
[g1_y] = tf.import_graph_def(g1.as_graph_def(), input_map={'x': x}, return_elements=['y:0'])
# feed y to graph_2 -> b = 4.0
g2 = graph_2()
[g2_b] = tf.import_graph_def(g2.as_graph_def(), input_map={'a': g1_y}, return_elements=['b:0'])

with tf.Session() as sess:
    print(sess.run([g2_b]))
笔记本:


顺便说一下,如果
graph_1
graph_2
包含“变量”,这将不起作用。。。到目前为止,我不知道如何初始化这些基本变量,有什么建议吗

成功了吗?