2016-05-12 3 views
2

Скажем, у меня есть два различных графиков: первый из которых содержит х и у: х = tf.placeholder (tf.float32, форма = (1)), у = 2 * х, второй один содержащие a и b: a = tf.placeholder (tf.float32, shape = (1)), b = 2 * x.Подключение двух графиков

Теперь я хочу связать два графика, добавив некоторую «личную ссылку» между y и a. Другими словами, я хочу сказать, что второй график принимает свой вход (a) из некоторого узла в первом графе (y). Это удобно в ситуациях, когда у вас нет кода для воссоздания второго графика, вы просто его десериализуете откуда-то. Один из способов сделать это - использовать Session.run для вычисления вывода первого графика, а затем передать его вызову Session.run, который вычисляет вывод второго графика, но должен быть какой-то чистый способ сделать это.

Спасибо!

+0

Любой успех в этом? –

ответ

0

Если я правильно понял, это должно сработать для вас?

Он использует tf.import_graph_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])) 

ноутбуков: https://gist.github.com/phizaz/21a5454ddc6c2a15c5c0eae91c96cda5

Кстати, если либо graph_1 или graph_2 содержит «переменные» это не будет работать ... Я понятия не имею, как инициализировать эти переменные, лежащие в основе до сих пор, любые предложения?

Смежные вопросы