我正在尝试运行一个adamoptimer进行一步培训,但没有成功。

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(分别输入nn和培训标签)实现conv nn加上logistic loss函数。
有什么可能是错误的想法吗?

最佳答案

optimizer.minimize(cost)正在图形中创建新的值和变量。
当您调用sess.run(init)时,.minimize方法创建的变量还没有定义:从这个错误开始。
在调用之前,您只需声明最小化操作:

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

关于python - 运行Adam Optimizer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47062288/

10-12 19:49