Мне нужно построить свой график structrue в соответствии с текущими входными данными.Может ли тензорный поток изменять структуру графика на каждом шаге?
Это означает, что мне может понадобиться использовать разную структуру графика на каждом этапе поезда.
Но тензорный поток только построить график один раз и использовать его до конца.
Итак, есть ли решение этой проблемы?
простой код, как это:
import tensorflow as tf
data = [[1, 2, 3],
[3, 2, 1]]
index = 0
def feed_dict():
return data[index]
with tf.Session() as sess:
embedding = tf.constant([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4]])
words = tf.placeholder(tf.int32, [3])
sess.run(tf.initialize_all_variables())
embed = tf.nn.embedding_lookup(embedding, words)
word_list = tf.unpack(embed)
result = None
if tf.less(tf.reduce_sum(word_list[0]), tf.reduce_sum(word_list[1])).eval(feed_dict={words: feed_dict()}):
result = word_list[0] * word_list[1] + word_list[2]
else:
result = word_list[0] + word_list[1] * word_list[2]
for i in xrange(2):
print sess.run(result, feed_dict={words: feed_dict()})
index += 1
Я хочу это может напечатать:
[10, 10, 10]
[10, 10, 10]
, но я получаю:
[10, 10, 10]
[14, 14, 14]
Это говорит о том, что второй прогон использовать один и тот же график как первый.
Благодарим за чтение! Я буду благодарен за любую помощь.
Я китайский студент, и это мой первый вопрос. Поэтому, надеюсь, я сделал свое описание понятным и правильным. если нет, сообщите мне об этом. Благодаря ! – haolang
Вы можете изменить структуру графика на каждом шагу. Есть штраф за исполнение, возможно, дополнительные 20-100 мс за вызов вызова, в зависимости от размера вашего графика. –
Спасибо! Но как я могу это сделать? Я имею в виду, как будет выглядеть код? – haolang