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

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


Jetbrains全系列IDE稳定放心使用

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

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182193.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • java list 转json 字符串_Java之JSON字符串与List集合之间相互转换

    java list 转json 字符串_Java之JSON字符串与List集合之间相互转换packagecom.crt.service.atom;importjava.util.ArrayList;importjava.util.List;importcom.alibaba.fastjson.JSON;importcom.crt.model.coupon.CouponInputDTO;/***@ClassName:TestJsonToString*@date:2017…

    2022年10月18日
  • 讲讲springboot_@SpringBootApplication

    讲讲springboot_@SpringBootApplication作为一个java程序员,如果你还不知道springboot,那你一定是落后了。1.什么是springbootSpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapidappli

    2022年8月20日
  • Pytorch-BN层详细解读

    Pytorch-BN层详细解读Pytorch-BN层BN解决了InternalCovariateShift问题机器学习领域有个很重要的假设:独立同分布假设,即假设训练数据和测试数据是满足相同分布的。我们知道:神经网络的训练实际上就是在拟合训练数据的分布。如果不满足独立同分布假设,那么训练得到的模型的泛化能力肯定不好。再来思考一个问题:为什么传统的神经网络要求将数据归一化(训练阶段将训练数据归一化并记录均值和方差,测试…

    2022年10月14日
  • java后端知识概述

    java后端知识概述1,java基础知识包括基本语法,集合类框架,以及java语言的特性,jvm等基本知识点,还有一些高级特性,比如反射,注解等等。2,设计模式设计模式是为了可重用代码,让代码更容易被他人理解、保证代码的可靠性的。通常来说,设计模式在系统开发中都是必不可少的。因为这样会简化,降低系统实现过程中要解决的问题。设计模式是软件工程的基石脉络,而模式是在某一背景下某个问题的一种解决方案。常见的设计模式有工厂模式,单例模式,mvc模式等等。而在开发中,所用到的设计模式,往往会根据实际背景去选择某一设计模式。

    2022年7月7日
  • datagrip 2.4 激活_最新在线免费激活

    (datagrip 2.4 激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月29日
  • springboot整合mybatis @MapperScan可以不加在启动器上

    springboot整合mybatis @MapperScan可以不加在启动器上配置mybatis包扫描,默认将@MapperScan加载boot启动类上的但是也可以写个配置类,加在上面也行

    2022年5月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号