webentwicklung-frage-antwort-db.com.de

Ausführen von Adam Optimizer

Ich versuche erfolglos, einen AdamOptimizer für einen Trainingsschritt auszuführen.

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

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

Die Konsole gibt einen hässlichen Fehler aus:

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value beta1_power
 [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@W1"], _device="/job:localhost/replica:0/task:0/cpu:0"](beta1_power)]]

In dem Code sind Kosten eine genau definierte Funktion, die eine konvexe NN plus eine logistische Verlustfunktion implementiert, wobei zwei Parameter X, Y (die Eingabe der NN bzw. der Trainingsetiketten) verwendet werden.

Irgendwelche Ideen, was möglicherweise falsch sein könnte?

13
Jsevillamol

optimizer.minimize(cost) erstellt neue Werte und Variablen in Ihrem Diagramm.

Wenn Sie sess.run(init) aufrufen, sind die Variablen, die die Methode .minimize Erstellt, noch nicht definiert: Daraus ergibt sich Ihr Fehler.

Sie müssen lediglich Ihre Minimierungsoperation deklarieren, bevor Sie tf.global_variables_initializer() aufrufen:

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

with tf.Session() as sess:
    sess.run(init)
    sess.run(minimize, feed_dict={X:X_data, Y: Y_data})
19
nessuno