f1 score 代码_在pytorch 中计算精度、回归率、F1 score等指标的实例「建议收藏」

f1 score 代码_在pytorch 中计算精度、回归率、F1 score等指标的实例「建议收藏」pytorch 中训练完网络后 需要对学习的结果进行测试 官网上例程用的方法统统都是正确率 使用的是 torch eq 这个函数 但是为了更精细的评价结果 我们还需要计算其他各个指标 在把官网 API 翻了一遍之后发现并没有用于计算 TP TN FP FN 的函数 在动了无数歪脑筋之后 心想 pytorch 完全支持 numpy 那能不能直接进行判断 试了一下果然可以 上代码 TP predict

pytorch中训练完网络后,需要对学习的结果进行测试。官网上例程用的方法统统都是正确率,使用的是torch.eq()这个函数。

但是为了更精细的评价结果,我们还需要计算其他各个指标。在把官网API翻了一遍之后发现并没有用于计算TP,TN,FP,FN的函数。。。

在动了无数歪脑筋之后,心想pytorch完全支持numpy,那能不能直接进行判断,试了一下果然可以,上代码:

# TP predict 和 label 同时为1

TP += ((pred_choice == 1) & (target.data == 1)).cpu().sum()

# TN predict 和 label 同时为0

TN += ((pred_choice == 0) & (target.data == 0)).cpu().sum()

# FN predict 0 label 1

FN += ((pred_choice == 0) & (target.data == 1)).cpu().sum()

# FP predict 1 label 0

FP += ((pred_choice == 1) & (target.data == 0)).cpu().sum()

p = TP / (TP + FP)

r = TP / (TP + FN)

F1 = 2 * r * p / (r + p)

acc = (TP + TN) / (TP + TN + FP + FN

这样就能看到各个指标了。

因为target是Variable所以需要用target.data取到对应的tensor,又因为是在gpu上算的,需要用 .cpu() 移到cpu上。

因为这是一个batch的统计,所以需要用+=累计出整个epoch的统计。当然,在epoch开始之前需要清零

以上这篇在pytorch 中计算精度、回归率、F1 score等指标的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

编程小号
上一篇 2025-09-15 13:46
下一篇 2025-03-08 11:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/121150.html