Если у вас есть две пересекающиеся графики, и я хочу связать их, превращая это:Tensorflow: как заменить узел на графике вычисления?
x = tf.placeholder('float')
y = f(x)
y = tf.placeholder('float')
z = f(y)
в этом:
x = tf.placeholder('float')
y = f(x)
z = g(y)
Есть ли способ сделать это? Похоже, что в некоторых случаях это может сделать конструкцию проще.
Например, если у вас есть график, который имеет входное изображение как tf.placeholder
, и вы хотите оптимизировать входное изображение, стиль глубокой мечты, есть ли способ заменить местозаполнитель узлом tf.variable
? Или вы должны думать об этом, прежде чем строить график?
Есть ли причина, по которой я не могу тренироваться с использованием результатов вышеизложенного, т. Е. Что-то вроде 'tf.train.AdamOptimizer(). Minim (tf.nn.l2_loss (z-x))'? Я получаю что-то вроде «Нет переменных для оптимизации» – bge0
Это, к сожалению, правильно. Обходной путь состоит в том, чтобы сделать 'vars = op.outputs [0] для op в tf.get_default_graph(). Get_operations(), если op.type ==" Variable "]', а затем передать var_list = vars' для 'minim()' , – mrry
Спасибо за быстрый ответ! В вашем примере для 'y = f (input)' Я пробовал просто использовать 'tf.mul (w, input)' где 'w ~ N (0, 0.01)' [т.е. tf.Variable]. Используя коллекцию переменных, я вижу сбор 'w', но все равно получаю эту ошибку:' TypeError: Argument не является tf.Variable: Tensor ("import/w: 0", dtype = float32_ref) ' – bge0