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})
答案 0 :(得分:2)
在mnist/mechanics中的检查状态下,您可以找到以下行:
由于
train_op
是一个没有输出值的运算,因此返回的元组中的相应元素为None,因此将其丢弃。但是,如果模型在训练过程中发散,则损失张量的值可能变为NaN,因此我们将捕获该值以进行记录。