优化器返回无

Jse*_*mol 7 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})
Run Code Online (Sandbox Code Playgroud)

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

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

我究竟做错了什么?

arm*_*dle 8

我认为不会有optimizer任何回报.optimizer.minimize(或train_op)将返回一个op,用于更新可训练的权重并增加全局步长.如果你想的损失(或成本)返回,则必须指定所以在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})
Run Code Online (Sandbox Code Playgroud)