web-dev-qa-db-ja.com

Adam Optimizerの実行

私は、トレーニングの1ステップでAdamOptimizerを実行しようとしましたが、失敗しました。

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

コンソールは見苦しいエラーを吐き出します:

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

コードでは、コストは2つのパラメーターX、Y(それぞれNNとトレーニングラベルのエントリ)を使用して、conv NNとロジスティック損失関数を実装する明確に定義された関数です。

何が間違っている可能性があるかについてのアイデアはありますか?

13
Jsevillamol

optimizer.minimize(cost)は、グラフに新しい値と変数を作成しています。

sess.run(init)を呼び出すとき、_.minimize_メソッドが作成する変数はまだ定義されていません:これからあなたのエラー。

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