tf.nn.softmax_cross_entropy_with_logits 如何使用标签

tf.nn.softmax_cross_entropy_with_logits how to use labels

对于一项作业,我应该为它的一部分编写一个单层神经网络。我想我做对了大部分内容,但是当我尝试使用 tf.nn.softmax_cross_entropy_with_logits 方法时,我收到一条错误消息 "ValueError: Both labels and logits must be provided." 这显然意味着我需要同时提供标签和 logits,因为我只提供了 logits现在在我的代码中,所以我明白出了什么问题。我不明白的是,什么是标签以及我如何在这种情况下使用它们?请记住,总体而言,我在张量流和神经网络方面相当新且缺乏经验。谢谢!

在监督学习中,您必须随训练数据一起提供标签,softmax_cross_entropy_with_logits 计算 logits 和标签之间的 softmax 交叉熵。它有助于给出数据在特定 class 中的概率。您可以在此处阅读更多相关信息 https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits

h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

W_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])

y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2    
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y_conv))

我为您提供了使用 softmax_cross_entropy_with_logits 的 tensorflow 教程中的一段代码。这里 y_ 是标签被馈送到的占位符。 此外 softmax_cross_entropy_with_logits 目前已弃用。