現在の入力データに従ってグラフ構造を構築する必要があります。テンソルフローは列車ステップごとにグラフ構造を変更できますか?
つまり、列車のステップごとに異なるグラフ構造を使用する必要があるかもしれません。
しかし、テンソルフローはグラフを1回だけ作成し、最後まで使用します。
この問題の解決方法はありますか?このような
シンプルコード:
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