在pytorch 中计算精度、回归率、F1 score等指标的实例


Posted in Python onJanuary 18, 2020

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等指标的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
python excel转换csv代码实例
Aug 26 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
python相对企业语言优势在哪
Jun 12 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
10个python爬虫入门实例(小结)
Nov 01 Python
用python进行视频剪辑
Nov 02 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 #Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 #Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 #Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 #Python
python实现的Iou与Giou代码
Jan 18 #Python
Python 简单计算要求形状面积的实例
Jan 18 #Python
python实现用类读取文件数据并计算矩形面积
Jan 18 #Python
You might like
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
复制本贴标题和地址的js代码
2008/07/01 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
详解vuex的简单使用
2018/03/12 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
Python正确重载运算符的方法示例详解
2017/08/27 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
专科应届生求职信
2013/11/24 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
小学教师年度个人总结
2015/02/05 职场文书
西岭雪山导游词
2015/02/06 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js