如何在 TensorFlow 中计算 CNN 的准确度

Posted

技术标签:

【中文标题】如何在 TensorFlow 中计算 CNN 的准确度【英文标题】:How to compute accuracy of CNN in TensorFlow 【发布时间】:2017-07-25 06:40:51 【问题描述】:

我是 TensorFlow 新手。我正在用自己的数据集进行二进制分类。但是我不知道如何计算准确性。谁能帮我做这件事?

我的分类器有 5 个卷积层,后跟 2 个全连接层。最后一个 FC 层的输出维度为 2,我使用过:

prob = tf.nn.softmax(classification_features, name="output")

【问题讨论】:

您能否更具体地说明您的分类器的外观? 我的分类器有 5 个卷积层,后跟 2 个全连接层。最后一个 FC 层的输出维度为 2,我使用了 prob = tf.nn.softmax(classification_features, name="output") 太棒了。谢谢你:) 【参考方案1】:

只计算正确预测的百分比:

prediction = tf.math.argmax(prob, axis=1)
equality = tf.math.equal(prediction, correct_answer)
accuracy = tf.math.reduce_mean(tf.cast(equality, tf.float32))

【讨论】:

【参考方案2】:

Tensorflow 中的 Keras 更新 2020-11-23

现在您可以在model.compilemetrics 参数中指定您想要的。

这篇文章来自 3.6 年前,当时 tensorflow 还处于第 1 版。现在 Tensorflow.org 建议使用 Keras 调用,您可以像这样指定您想要的准确性:

model.compile(loss='mse',optimizer='sgd',metrics=['accuracy'])
model.fit(x,y)

轰!当您运行“model.fit”时,您的报告就会准确无误。

如果您使用的是旧版本的 tensorflow 或只是从头开始编写,@Androbin 解释得很好。

【讨论】:

以上是关于如何在 TensorFlow 中计算 CNN 的准确度的主要内容,如果未能解决你的问题,请参考以下文章

根据输入形状的计算是不是存在差异? (带有 Tensorflow 的 Python 中的 CNN)

如何使用 tensorflow 从 CNN 层中提取激活?

TensorFlow by Google CNN卷积神经网络 Machine Learning Foundations: Ep #3 - Convolutions and pooling

TensorFlow实战之CNN实现对鸡蛋的分类

如何拆分自己的数据集以在 Tensorflow CNN 中进行训练和验证

TensorFlow2深度学习实战(十七):目标检测算法 Faster R-CNN 实战