Der Fördermechanismus in TensorFlow ermöglicht es Ihnen, einen Wert für alle Tensor (nicht nur tf.placeholder()
Tensoren) zu ernähren, solange sie in Form und Elementtyp entsprechen.
Deshalb, wenn x
und z
die gleiche Form haben, sollten Sie in der Lage sein, schreiben:
x = ... # Some dequeued `tf.Tensor`.
yPred = model(x, ...)
# ...
sess.run(yPred, feed_dict={x: ...})
In einigen Fällen könnten Sie einen Tensor mit einer anderen Form zu x
(in der Regel ein weniger füttern wollen bestimmte Form, z. B. mit einer anderen Chargengröße. In diesen Fällen können Sie tf.placeholder_with_default()
verwenden, um einen Platzhalter, dessen Wert standardmäßig x
zu erstellen, wenn Sie tun es nicht füttern:
x = ... # Some dequeued `tf.Tensor`.
# For example, a shape of `None` means that the shape is completely unconstrained.
# In practice, you will probably want to constrain at least the rank of the
# placeholder to match the rank of `x`.
x_placeholder = tf.placeholder_with_default(x, shape=None)
yPred = model(x, ...)
# ...
sess.run(yPred, feed_dict={x_placeholder: ...})
Nochmals vielen Dank. Was ist, wenn '' 'Z''' eigentlich ein anderer entkerbter Tensor ist? I.e. kein numpliges Array oder sowas. Kann ich das irgendwie füttern? – mattdns
Momentan evaluiere ich '' 'Z.eval()' '', um es in ein np-Array zu konvertieren, bevor es wieder eingespeist wird. Es scheint etwas unordentlich zu sein. – mattdns
Hmm, nicht leicht. Ich nehme an, dass Sie nicht in jedem Fall etwas in 'Z' aus der Warteschlange ziehen wollen, also würden Sie wahrscheinlich' tf.cond() 'verwenden wollen, setzen Sie die Dequeue-Operation in einen der Zweige und verwenden Sie ein' tf .bool' Platzhalter, um zu steuern, welcher Zweig der 'tf.cond()' verwendet wird. – mrry