我试图运行一个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作为输出,这让我感到困惑,因为我预计它会给我返回成本。
我做错了什么?
答案 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})