我需要根據當前輸入數據構建我的圖結構。張量流程可以修改每個訓練步驟的圖形結構嗎?
這意味着我可能需要在每個列車步驟中使用不同的圖形結構。
但張量流只構造一次圖形,直到最後使用它。
那麼,是否有解決這個問題的方法?
簡單的代碼是這樣的:
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-100ms,取決於您的圖形的大小 –
謝謝!但我怎麼能做到這一點?我的意思是,代碼的樣子是什麼? – haolang