运行Adam优化器

17

我试图运行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)]]

在代码中,cost是一个明确定义的函数,实现了卷积神经网络和逻辑损失函数,使用两个参数X和Y(分别为神经网络的输入和训练标签)。有什么可能出错的想法吗?
1个回答

28

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接