tensorflow中是否有任何方法像烤宽面条中的get_output

时间:2018-11-14 11:48:07

标签: tensorflow theano lasagne

我发现使用千层面制作这样的图形很容易。

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,我们可以得到一个张量而不是一个值,然后我可以将该张量用作另一个图的输入。

但是,如果我使用张量流,该如何实现呢?

1 个答案:

答案 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)