2017-11-01 4 views
1

Ich versuche, einen AdamOptimizer für einen Trainingsschritt ohne Erfolg auszuführen.Optimierer gibt keine zurück

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost) 
init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    _, cost_value = sess.run(optimizer, feed_dict={X:X_data, Y: Y_data}) 

In dem Code, sind die Kosten eine gut definierte Funktion einen conv NN sowie eine logistische Verlustfunktion unter Verwendung von zwei Parametern X, Y (der Eintritt des NN und die Ausbildung Etiketten bzw.)

Implementierung Als Ich renne das, die Konsole informiert mich, dass der Lauf zurückkehrt. Keine als Ausgabe, was mich verblüfft, da ich erwartet habe, dass es mir die Kosten zurückgibt.

Was mache ich falsch?

Antwort

3

Ich glaube nicht, die optimizer wird alles zurückgeben. optimizer.minimize (oder train_op) gibt eine op zurück, mit der die trainierbaren Gewichte aktualisiert und der globale Schritt erhöht wird. Wenn Sie Verlust (oder Kosten) zurückgegeben werden sollen, dann müssen Sie specify so in sess.run([..., loss, ...], ...)

Dies ist, was Ihr Code aussehen kann:

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost) 
init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    _, cost_value = sess.run([optimizer, cost], feed_dict={X:X_data, Y: Y_data})