如何在 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.compile
的metrics
参数中指定您想要的。
这篇文章来自 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 by Google CNN卷积神经网络 Machine Learning Foundations: Ep #3 - Convolutions and pooling