Есть ли какой-нибудь метод в тензорном потоке, как get_output в лазаньи - PullRequest
0 голосов
/ 14 ноября 2018

Я обнаружил, что с помощью лазаньи можно создать такой график.

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 голосов
/ 15 ноября 2018

Я не знаком с лазаньей, но вы должны знать, что ВСЕ из 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)
...