【问题标题】: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 的入口和训练标签)

关于什么可能是错误的任何想法?

【问题讨论】:

    标签: python tensorflow conv-neural-network


    【解决方案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})
    

    【讨论】:

      猜你喜欢
      • 2017-03-28
      • 2016-02-24
      • 2019-02-09
      • 2019-01-31
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2012-10-11
      • 2017-01-23
      相关资源
      最近更新 更多