web-dev-qa-db-fra.com

Exécution d'Adam Optimizer

J'essaie d'exécuter un AdamOptimizer pour une étape de formation, sans succès.

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})

La console crache une erreur laide:

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)]]

Dans le code, le coût est une fonction bien définie mettant en œuvre un conv NN plus une fonction de perte logistique, utilisant deux paramètres X, Y (l'entrée du NN et les étiquettes de formation respectivement)

Des idées sur ce qui pourrait être faux?

13
Jsevillamol

optimizer.minimize(cost) crée de nouvelles valeurs et variables dans votre graphique.

Lorsque vous appelez sess.run(init) les variables que la méthode .minimize Crée ne sont pas encore définies: c'est votre erreur.

Il vous suffit de déclarer votre opération de minimisation avant d'appeler tf.global_variables_initializer():

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