我发现使用千层面制作这样的图形很容易。
import lasagne.layers as L
class A:
def __init__(self):
self.x = L.InputLayer(shape=(None, 3), name='x')
self.y = x + 1
def get_y_sym(self, x_var, **kwargs):
y = L.get_output(self.y, {self.x: x_var}, **kwargs)
return y
通过方法get_y_sym
,我们可以得到一个张量而不是一个值,然后我可以将该张量用作另一个图的输入。
但是,如果我使用张量流,该如何实现呢?
答案 0 :(得分:0)
我不熟悉千层面,但是您应该知道TensorFlow的全部都使用基于图的计算(除非您使用tf.Eager,但这是另一回事了)。因此默认情况下:
net = tf.nn.conv2d(...)
返回对Tensor对象的引用。换句话说,net
不是值,它是对tf.nn.conv2d(...)
创建的卷积节点输出的引用。
然后可以将这些链接起来:
net2 = tf.nn.conv2d(net, ...)
等。
要获取“值”,必须打开tf.Session
:
with tf.Session() as sess:
net2_eval = sess.run(net2)