优化器返回无

时间:2017-11-01 20:13:26

标签: python tensorflow

我试图运行一个AdamOptimizer进行一步训练,不成功。

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    _, cost_value = sess.run(optimizer, feed_dict={X:X_data, Y: Y_data})

在代码中,cost是一个明确定义的函数,使用两个参数X,Y(分别为NN和训练标签的条目)实现conv NN加上后勤损失函数

当我运行它时,控制台告诉我运行返回None作为输出,这让我感到困惑,因为我预计它会给我返回成本。

我做错了什么?

1 个答案:

答案 0 :(得分:7)

我不认为optimizer将会返回任何内容。 optimizer.minimize(或train_op)将返回op,用于更新可训练的权重并增加全局步长。 如果您希望退回损失(或费用),则必须specify sess.run([..., loss, ...], ...)

这是您的代码的样子:

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    _, cost_value = sess.run([optimizer, cost], feed_dict={X:X_data, Y: Y_data})