损失函数介绍

news2025/1/12 12:30:29

用softmax,就可以将一个输出值转换到概率取值的一个范围。

交叉熵损失CrossEntropyLoss

在这里插入图片描述

第一个参数weight, 各类别的loss设置权值, 如果类别不均衡的时候这个参数很有必要了,加了之后损失函数变成这样:
第二个参数ignore_index, 这个是表示某个类别不去计算loss。
第三个参数reduction, 计算模式,可为none/sum/mean, none表示逐个元素计算,这样有多少个样本就会返回多少个loss。 sum表示所有元素的loss求和,返回标量, mean所有元素的loss求加权平均(加权平均的含义下面会提到),返回标量。

# fake data
inputs = torch.tensor([[1, 2], [1, 3], [1, 3]], dtype=torch.float)  # 这里就是模型预测的输出, 这里是两个类,可以看到模型输出是数值,我们得softmax一下转成分布
target = torch.tensor([0, 1, 1], dtype=torch.long)  # 这里的类型必须是long, 两个类0和1

# 三种模式的损失函数
loss_f_none = nn.CrossEntropyLoss(weight=None, reduction='none')
loss_f_sum = nn.CrossEntropyLoss(weight=None, reduction='sum')
loss_f_mean = nn.CrossEntropyLoss(weight=None, reduction='mean')

# forward
loss_none = loss_f_none(inputs, target)
loss_sum = loss_f_sum(inputs, target)
loss_mean = loss_f_mean(inputs, target)

# view
print("Cross Entropy Loss:\n ", loss_none, loss_sum, loss_mean)

## 结果:
Cross Entropy Loss:
  tensor([1.3133, 0.1269, 0.1269]) tensor(1.5671) tensor(0.5224)

这里还要注意一下这里的target, 这个是每个样本给出属于哪一个类即可,类型是torch.long, 为什么要强调这个,我们下面会学习二分类交叉熵损失,是交叉熵损失函数的特例,那里的target更要注意,对比起来更容易理解

nn.BCELoss

这个是交叉熵损失函数的特例,二分类交叉熵。注意:输入值取值在[0,1]
在这里插入图片描述

nn.MSE

这个也是用于回归问题,计算inputs与target之差的平方
在这里插入图片描述
损失函数介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/922907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8年测试经验之谈 —— 什么是全链路压测?

随着互联网技术的发展和普及,越来越多的互联网公司开始重视性能压测,并将其纳入软件开发和测试的流程中。 阿里巴巴在2014 年双11 大促活动保障背景下提出了全链路压测技术,能更好的保障系统可用性和稳定性。 什么是全链路压测? …

湘潭大学 湘大 XTU 1251 Colombian Number 题解(非常详细)

参考文章 1.XTUOJ-1251-Colombian Number 链接 1251 题面 题目描述 对于正整数n,不存在整数k,使得n等于k加上k的数码累加和,我们称这样的数是哥伦比亚数或者自我数。 比如 11就不是一个哥伦比亚数,因为10加上10的数码累加和1等于11;而20则是一个哥伦…

uniapp 开发微信小程序使用echart的dataZoom属性缩放功能不生效!bug记录!

在本项目中使用的是这个echart库 在项目中添加了dataZoom配置项但是不生效,突然想到微信小程序代码大小的限制,之前的echarts.js是定制的,有可能没有加dataZoom组件。故重新定制echarts.js。之前用的echarts版本是5.0.0,这次也是…

容灾设备系统组成,容灾备份系统组成包括哪些

随着信息技术的快速发展,企业对数据的需求越来越大,数据已经成为企业的核心财产。但是,数据安全性和完整性面临巨大挑战。在这种环境下,容灾备份系统应运而生,成为保证企业数据安全的关键因素。下面我们就详细介绍容灾…

IDEA启动Tomcat两个端口的方式 使用nginx进行反向代理 JMeter测试分布式情况下synchronized锁失效

目录 引出IDEA启动Tomcat两个端口的方式1.编辑配置2.添加新的端口-Dserver.port80833.service里面管理4.启动后进行测试 使用nginx进行反向代理反向代理多个端口运行日志查看启动关闭重启 分布式情况下synchronized失效synchronized锁代码启动tomcat两个端口nginx反向代理JMete…

慕课网 Go工程师 第三周 package和gomodules章节

Go包的引入: 包名前面加匿名,只引入但不使用,如果对应包有init函数,会执行init函数(初始化操作) 包名前面加. 把这个包的结构体和方法导入当前包,慎用,你不知道当前包和被引入的包用…

顺序表详解|顺序表常见错误并调试分析

前言: 今天我们开始学习基础的数据结构——顺序表,数据结构就是将数据在内存存储起来,在内存管理数据。 一、线性表 1、线性表(Linear list)是n个具有相同特性的数据元素的有限序列,线性表是一种在实际中广…

美国访问学者签证好办吗?

近年来,随着国际交流与合作的不断深入,许多人对于美国访问学者签证的办理情况产生了浓厚的兴趣。那么,美国访问学者签证到底好办吗?让知识人网小编带您一起了解一下。 首先,美国作为世界上的科研、教育和创新中心之一&…

springBoot的启动

自动配置注解的逻辑: 在启动类的基础上,导入了springboot的大量自动配置类,以至于自己不用关心配置实现过程(约定大于配置) 大量自动配置类是如何导入的? Spring提供了一个SpringFactories功能(SPI: service provider interface ),读取固定文件META-INF/spring.factories,按照…

keepalived双机热备,keepalived+lvs(DR)

本节主要学习了keepalivedlvs的作用和配置方法主要配置调度器和web节点,还有keepalived的双击热备,主要内容有概述,安装,功能模块,配置双击热备,验证方法,双击热备的脑裂现象和VIP无法通信。 目…

❤ windows 安装后台java开发环境JDK 、MySQL 、Redis

❤ windows 安装后台java开发环境 1、windows 安装 JDK. 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1、下载安装 官网点击下载安装 网盘 jdk安装包 链接:https://pan.baidu.com/s/1sdxA6B…

Axure设计之日期选择器(年月选择)

在系统中,日期选择器经常会用到,包括日历日期的选择、日期时间的选择和日期范围的选择,一般是下拉列表的形式进行选择。Axure没有自带的日期选择器,下面教大家如何在Axure中制作真实日期选择(年月选择)效果…

首席执行官Adam Selipsky解读“亚马逊云科技的技术产品差异化”

迄今为止,亚马逊云科技已经参与了21世纪几乎所有的大型计算变革,亚马逊云科技是一个很传奇的故事,它始于大约20年前的一项实验,当时亚马逊试图出售其过剩的服务器。人们确实对此表示怀疑。为什么在线书店试图销售云服务&#xff1…

js逆向实战之某书protobuf反序列化

什么是Protobuf? \qquad Protobuf(Protocol Buffer)是 Google 开发的一套数据存储传输协议,作用就是将数据进行序列化后再传输,Protobuf 编码是二进制的,它不是可读的,也不容易手动修改&#xf…

抓包工具Charles的安装及代理设置(Windows浏览器代理、安卓代理)

1、下载Charles 官网地址:https://www.charlesproxy.com/download/,下载对应的安装包。安装完成后按照以下步骤进行代理配置。 2、配置Charles证书 按照以下截图步骤进行配置即可。 3、Charles代理设置 这里的端口号根据自己情况设置,这里…

17.4 【Linux】systemctl 针对 timer 的配置文件

有时候,某些服务你想要定期执行,或者是开机后执行,或者是什么服务启动多久后执行等等的。在过去,我们大概都是使用 crond 这个服务来定期处理, 不过,既然现在有一直常驻在内存当中的 systemd 这个好用的东西…

visio三维格式、三维旋转导出图模糊解决方案

问题描述 visio中元素经过三维格式或三维旋转(也可能包括其他的特殊操作)后,导出.emf格式的图会模糊,如下图所示。 解决方案 借助其他软件 在ppt中将对应的元素旋转后再导入visio,此时对于visio来说该元素相当于一…

RunnerGo:一款高效且易用的性能测试工具

在软件开发过程中,性能测试是确保应用程序能够高效运行的关键步骤。为了提供高质量的测试服务,许多企业正在寻求功能强大且易用的性能测试工具。RunnerGo是一个基于Go语言开发的性能测试平台,具有简单易用、高效稳定等特性,适用于…

Dubbo重启服务提供者或先启动服务消费者后启动服务提供者,消费者有时候会出现找不到服务的问题及解决

文章目录 [toc] 1.环境2.版本3.pom依赖3.1父工程的pom3.2子模块的pom 4.问题5.根本原因5.1根本原因说明5.2总入口5.3servletWeb容器初始化5.4 nacos服务注册监听点5.5 dubbo启动服务注册监听点 6.解决办法6.1降低springBoot版本为2.2.x6.2 修改源码6.2.1修改源码方式一6.2.2修改…

【RPC框架】RPC与Dubbo(让你一文搞懂,超级详细好理解!)

目录 什么是RPC框架,Dubbo又是什么,二者之间有什么联系 是不是说的有些抽象,那我们来说的通俗易懂点吧,这次你一定能听懂 简单举例 实际例子 真实场景demo(说了这么多,实际体会一下代码吧&…