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