pytorch中训练完网络后,需要对学习的结果进行测试。官网上例程用的方法统统都是正确率,使用的是torch.eq()这个函数。
但是为了更精细的评价结果,我们还需要计算其他各个指标。在把官网API翻了一遍之后发现并没有用于计算TP、TN、FP, FN的函数…
在动了无数歪脑筋之后,心想pytorch完全支持numpy,那能不能直接进行判断,试了一下果然可以,上代码:
# TP预测和标签同时为1 TP +=((pred_choice==1),(目标。.sum数据=https://www.yisu.com/zixun/=1)) .cpu () () # TN预测和标签同时为0 TN +=((pred_choice==0) &(目标。.sum数据==0)).cpu () () # FN预测0标签1 FN +=((pred_choice==0) &(目标。.sum data==1) .cpu () () # FP预测1标签0 FP +=((pred_choice==1) &(目标。.sum数据==0)).cpu () () p=TP/(TP + FP) r=TP/(TP + FN) F1=2 * r * p/(r + p) acc=(TP + TN)/(TP + TN + FP + FN >之前这样就能看到各个指标了。
因为目标是变量所以需要用目标。数据取到对应的张量,又因为是在gpu上算的,需要用.cpu()移到cpu上。
因为这是一个批量的统计,所以需要用+=累计出整个时代的统计。当然,在时代开始之前需要清零
以上这篇在pytorch中计算精度,回归率,F1分数等指标的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
在pytorch中计算精度,回归率,F1分数等指标的实例