给出一个初始图,例如:
x = tf.placeholder(tf.float32)
var1 = tf.identity(tf.Variable(1.,))
y = x * var1
如何将流量更改为y = x * var2
?其中var2
定义为:
var2_1, var2_2 = tf.Variable(2.,), tf.Variable(3.,)
var2 = var2_1 * var2_2
我希望tf.contrib.graph_editor.swap_outputs
可以正常工作,但事实并非如此。
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
tf.contrib.graph_editor.swap_outputs(var1, var2) # swap var1 and var2
sess.run(y, {x:1})
期望输出6,得到2。
答案 0 :(得分:0)
在这里回答我自己的问题。
诀窍不是在进行交换之前初始化会话:
tf.contrib.graph_editor.swap_outputs(var1, var2)
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
sess.run(y, {x:1})