运行亚当优化器
Posted
技术标签:
【中文标题】运行亚当优化器【英文标题】:Running Adam Optimizer 【发布时间】:2018-04-14 05:01: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 是一个定义明确的函数,实现了一个 conv NN 加上一个逻辑损失函数,使用两个参数 X、Y(分别是 NN 的入口和训练标签)
关于什么可能是错误的任何想法?
【问题讨论】:
【参考方案1】: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)
【讨论】:
以上是关于运行亚当优化器的主要内容,如果未能解决你的问题,请参考以下文章