首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorFlow SparseCategoricalAccuracy指标计算

TensorFlow SparseCategoricalAccuracy指标计算
EN

Stack Overflow用户
提问于 2019-12-15 16:48:26
回答 1查看 612关注 0票数 1

我正在尝试使用TensorFlow的'SparseCategoricalAccuracy‘TensorFlow 2.0来计算精度,并且对计算值和我手动计算的值有混淆-

代码语言:javascript
复制
m = tf.keras.metrics.SparseCategoricalAccuracy()

m.update_state(
    y_true = [[2], [1], [3]],
    y_pred = [[0.1, 0.9, 0.8], [0.05, 0.95, 0], [0.02, 0.5, 0.8]],
    sample_weight = [1, 1, 1]
    # or-
    # sample_weight = None
    )

m.result().numpy()
# 0.33333334

这里,准确率不应该是66.67%而不是33.33%,因为'y_pred‘中的第一个和第三个预测匹配y_true’吗?

再一次,

代码语言:javascript
复制
m.reset_states()                                                       

y_pred = [[0.1, 0.4, 0.8], [0.05, 0.95, 0], [0.2, 0.1, 0.7]]           
m.update_state(y_true=y_true, y_pred=y_pred, sample_weight=None)

m.result().numpy()                                                     
# 0.6666667


y_true                                                                 
# [[2], [1], [3]]

y_pred                                                                 
# [[0.1, 0.4, 0.8], [0.05, 0.95, 0], [0.2, 0.1, 0.7]]

这里,由于只有一个'y_pred‘即第三个预测与'y_true’匹配,因此准确率应为33.33%。

我做错了什么?

谢谢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-15 17:00:27

您的标签需要零索引。然后,您将获得正确的准确性。

代码语言:javascript
复制
m = tf.keras.metrics.SparseCategoricalAccuracy()

m.update_state(
    # We have changed y_true = [[2], [1], [3]] to the following
    y_true = [[1], [0], [2]],
    y_pred = [[0.1, 0.9, 0.8], [0.05, 0.95, 0], [0.02, 0.5, 0.8]],
    sample_weight = [1, 1, 1]
    # or-
    # sample_weight = None
    )

m.result().numpy()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59342422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档