亚当优化器在张量流中返回的第一个值是什么

时间:2018-07-23 10:22:35

标签: python tensorflow

我正在使用tensorflow创建一个两层的DNN。我使用AdamOptimizer作为我的优化器。下面是我的代码

pred_raw = create_feedforward_nn_model(x, weights, biases)
pred = tf.round(tf.nn.sigmoid(pred_raw))
cost = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=pred, logits=y))
train_op = tf.train.AdamOptimizer(learning_rate).minimize(cost)

当我在seession.run上执行train_op时,它返回两个值,我知道第二个值是损失,但是这里的第一个值是什么。我看过很多教程,但是在大多数教程中,它们都使用_,如下所示,忽略了第一个值

_,loss = sess.run([train_op, cost],={x: batch_features, y: batch_labels})

1 个答案:

答案 0 :(得分:2)

mnist/mechanics中的检查状态下,您可以找到以下行:

  

由于train_op是一个没有输出值的运算,因此返回的元组中的相应元素为None,因此将其丢弃。但是,如果模型在训练过程中发散,则损失张量的值可能变为NaN,因此我们将捕获该值以进行记录。