2017-07-27 7 views
0

Ich habe ein Some autoencoder. Das Modell ist jetzt nicht wichtig. Nehmen wir an, dass dieses Modell ein Bild aufnimmt und das rekonstruierte Bild ausgibt. Nach dem Training würde ich gerne den Effekt eines Tensors auf die Ausgabe sehen. Zusätzlich werden Bilder in die autoencoder über eine FIFOQueue eingespeist. Wenn daher die folgenden Frieden von Code ausgeführt wird:Einen versteckten Tensor in Tensorflow einspeisen

reconstructed_image = sess.run([deconv_image], feed_dict={mu:my_vector}) 

wo deconv_image der Ausgang tensor des Modells ist und mu ist ein verstecktes Tensor im Inneren des Modells; wird das Modell automatisch mit einem Bild aus der Queue füttern.

Meine Frage ist: würde der Wert innerhalb mu durch was auch immer aus dem Eingangsbild kommen sollte ersetzt, oder, es dauert der Vektor, den ich mit dem feed_dict Argument gefüttert.

Jede Hilfe wird sehr geschätzt!

Antwort

0

Wenn Sie den letzten Tensor ausführen, dh den letzten Tensor eines Graphen auswerten, werden alle Tensoren ausgeführt, von denen er abhängt. Wenn wir also y3 Betrieb haben, die auf y2 abhängt und y2 hängt von y1, dann bewirkt, dass die endgültige Tensor in der Grafik läuft y1 zuerst ausgeführt werden, dann wird y2 ausgewertet, nachdem er seine Eingabe von y1 und schließlich bekommt, die Ausgabe von y2 wird in y3 eingegeben. Dieses Diagramm könnte wie folgt aussehen: y1 -> y2 -> y3

Auf der anderen Seite kann ich y3 ausführen (auswerten), indem ich seine Eingaben direkt unter Verwendung des feed_dict Arguments füttere. In diesem Fall werden y2 und y1 ausgewertet.

Ex:

import tensorflow as tf 
import numpy as np 

x = np.array([1.0, 2.0, 3.0]) 

x_var = tf.Variable(x, dtype=tf.float32) 

y1 = tf.square(x_var) 
y2 = tf.subtract(y1, tf.constant(1.0)) 

init_op = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init_op) 

    print(sess.run(y2)) # Output: [ 0. 3. 8.] 
    print(sess.run(y2, feed_dict={y1: [1.0, 1.0, 1.0]}))# Output: [ 0. 0. 0.] 
Verwandte Themen