Ich versuche, ein sehr einfaches Beispiel für die Kombination von TensorArray und while_loop zu produzieren:Wie TensorArray und while_loop im Tensorflow zusammenarbeiten?
# 1000 sequence in the length of 100
matrix = tf.placeholder(tf.int32, shape=(100, 1000), name="input_matrix")
matrix_rows = tf.shape(matrix)[0]
ta = tf.TensorArray(tf.float32, size=matrix_rows)
ta = ta.unstack(matrix)
init_state = (0, ta)
condition = lambda i, _: i < n
body = lambda i, ta: (i + 1, ta.write(i,ta.read(i)*2))
# run the graph
with tf.Session() as sess:
(n, ta_final) = sess.run(tf.while_loop(condition, body, init_state),feed_dict={matrix: tf.ones(tf.float32, shape=(100,1000))})
print (ta_final.stack())
Aber ich die folgende Fehlermeldung erhalten:
ValueError: Tensor("while/LoopCond:0", shape=(), dtype=bool) must be from the same graph as Tensor("Merge:0", shape=(), dtype=float32).
Wer auf Ahnung hat, was ist das Problem?
Um die endgültige zu erhalten 'TensorArray' Sie' session.run benötigen (ta.stack()) 'stattdessen die Schleife direkt laufen, die, da Sie nicht können nicht 'session.run (TensorArray)'. – sirfz
Sorry, aber ich habe nicht verstanden, was du meinst. Würden Sie bitte das richtige Formular schreiben? –