PyTorch损失函数

一、损失函数是什么

损失函数:衡量模型输出与真实标签的差异
在这里插入图片描述

在这里插入图片描述

class _Loss(Module):def __init__(self, size_average=None, reduce=None, reduction='mean'):"""Loss函数的基类,定义了一些通用的属性和方法。参数:- size_average (bool, optional): 是否对损失值进行平均,默认为None。- reduce (bool, optional): 是否对损失值进行降维,默认为None。- reduction (str, optional): 损失值的降维方式,默认为'mean'。"""super(_Loss, self).__init__()if size_average is not None or reduce is not None:self.reduction = _Reduction.legacy_get_string(size_average, reduce)else:self.reduction = reduction

这段代码定义了一个Loss函数的基类 _Loss,用于定义其他具体的损失函数。在初始化方法 __init__ 中,该基类接受三个可选参数:size_averagereducereductionsize_averagereduce 用于确定是否对损失值进行平均和降维操作,reduction 则用于指定损失值的降维方式,默认为均值 'mean'

基类 _Loss 的作用是提供了一些通用的属性和方法,其他具体的损失函数可以继承该基类,并根据自己的需求重写或添加特定的属性和方法。

1、nn.CrossEntropyLoss

功能: nn.LogSoftmax ()与nn.NLLLoss ()结合,进行交叉熵计算

nn.CrossEntropyLoss 是 PyTorch 中用于计算交叉熵损失的函数。它是将 nn.LogSoftmaxnn.NLLLoss 结合在一起使用的。

主要参数如下:

  • weight:各类别的损失权重,默认为 None。
  • ignore_index:忽略某个类别的索引,默认为 None。
  • reduction:计算模式,可选值为 'none''sum''mean'
    • 'none':逐个元素计算损失。
    • 'sum':所有元素的损失值求和,返回一个标量。
    • 'mean':所有元素的损失值求平均,返回一个标量。

nn.CrossEntropyLoss 适用于多分类问题,输入的预测值是经过 nn.LogSoftmax 处理后的,目标值是类别的索引。它将预测值与目标值进行比较,计算交叉熵损失,并返回损失值。可以通过设置参数来调整损失的计算方式和权重,以满足实际需求。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2、nn.NLLLoss

nn.NLLLoss 是 PyTorch 中用于计算负对数似然损失的函数。下面是该函数的主要参数说明:

  • weight:各类别的损失权重,默认为 None。可以使用一个 1D 张量来为每个类别指定不同的权重。如果设置为 None,则所有类别的权重都相等。
  • size_average:已弃用参数,不再使用。
  • ignore_index:忽略某个类别的索引,默认为 -100。在计算损失时,会忽略目标值中等于 ignore_index 的类别。
  • reduce:已弃用参数,不再使用。
  • reduction:计算模式,可选值为 'none''sum''mean'
    • 'none':逐个元素计算损失。
    • 'sum':所有元素的损失值求和,返回一个标量。
    • 'mean':所有元素的损失值求平均,返回一个标量。

nn.NLLLoss 的作用是实现负对数似然函数中的负号功能。它将预测值作为输入,目标值作为目标,计算负对数似然损失,并返回损失值。

在这里插入图片描述


3、nn.BCELoss

nn.BCELoss 是 PyTorch 中用于计算二分类交叉熵损失的函数。下面是该函数的主要参数说明:

  • weight:各类别的损失权重,默认为 None。可以使用一个 1D 张量来为每个类别指定不同的权重。如果设置为 None,则所有类别的权重都相等。
  • ignore_index:忽略某个类别的索引,默认为 None。在计算损失时,会忽略目标值中等于 ignore_index 的类别。
  • reduction:计算模式,可选值为 'none''sum''mean'
    • 'none':逐个元素计算损失。
    • 'sum':所有元素的损失值求和,返回一个标量。
    • 'mean':所有元素的损失值求平均,返回一个标量。

需要注意的是,nn.BCELoss 的输入值应该在 [0, 1] 的范围内,表示二分类任务中的概率值。该函数将预测值和目标值进行比较,计算二分类交叉熵损失,并返回损失值。可以通过设置参数来调整损失的计算方式、权重和忽略的类别,以满足实际需求。

在这里插入图片描述


4、 nn.BCEWithLogitsLoss

nn.BCEWithLogitsLoss 是结合了 Sigmoid 函数和二分类交叉熵损失的函数,并且在计算损失时,输入的网络输出值不需要经过 Sigmoid 函数。

下面是 nn.BCEWithLogitsLoss 的主要参数说明:

  • pos_weight:正样本的权重,默认为 None。可以使用一个标量或与目标张量形状相同的张量来为正样本指定不同的权重。如果设置为 None,则所有样本的权重都相等。
  • weight:各类别的损失权重,默认为 None。可以使用一个 1D 张量来为每个类别指定不同的权重。如果设置为 None,则所有类别的权重都相等。
  • ignore_index:忽略某个类别的索引,默认为 None。在计算损失时,会忽略目标值中等于 ignore_index 的类别。
  • reduction:计算模式,可选值为 'none''sum''mean'
    • 'none':逐个元素计算损失。
    • 'sum':所有元素的损失值求和,返回一个标量。
    • 'mean':所有元素的损失值求平均,返回一个标量。

需要注意的是,在使用 nn.BCEWithLogitsLoss 时,网络的最后一层不需要加上 Sigmoid 函数,因为该函数内部会自动将输入通过 Sigmoid 函数进行处理。nn.BCEWithLogitsLoss 将结合 Sigmoid 函数和二分类交叉熵损失来计算损失值,并返回结果。可以通过设置参数来调整损失的计算方式、权重和忽略的类别,以满足实际需求。

在这里插入图片描述

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

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

相关文章

vmware和ubuntu镜像下载地址

这里有vmware16和ubuntu20.0下载 链接:https://pan.baidu.com/s/1i9IC-KnJlrVDbl6SJ5SIKQ?pwdy2dd 提取码:y2dd 链接:https://pan.baidu.com/s/1imqJVD2dLE1TB6jIrq1-Fg?pwd690f 提取码:690f 这个是我本人下的vmware17 密钥可…

解决命令行无法启动scrapy爬虫

前言 最近在准备毕设项目,想使用scrapy架构来进行爬虫,找了一个之前写过的样例,没想到在用普通的启动命令时报错。报错如下 无法将“scrapy”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径…

python爬虫05-xpath解析(一)

目录 总结: 1、xpath简介和安装 2、使用xpath : 导包--->转换--->解析 3、语法规则 4、示例 总结: xpath是简单粗暴的 就几个符号(..表示向上,/表示向下,是属性,[ ]是条件)。 1、…

增删改查管理系统 总结1

//提醒: 管理员也要有增删改查 新增员工代码完善2可能需要用到 目录 细节1 pom文件出现奇怪页面? 细节2 如何联系DataGrip与idea? 细节3 Yapi?接口文档?如何有以下画面? ​细节4 如何将时间转化为好看的时间&…

openssl3.2 - 官方demo学习 - cms - cms_sign.c

文章目录 openssl3.2 - 官方demo学习 - cms - cms_sign.c概述笔记END openssl3.2 - 官方demo学习 - cms - cms_sign.c 概述 CMS消息签名 笔记 /*! \file cms_sign.c \note openssl3.2 - 官方demo学习 - cms - cms_sign.c CMS消息签名 *//** Copyright 2008-2023 The OpenSS…

C语言中的命名规则(期末版)

一、概述 命名规则是编程语言中的重要组成部分,它决定了变量、函数、常量等标符的命名方式。在C语言中,良好的命名规则可以增加代码的可读性和可维护性,提高程序的质量和开发效率。本文将详细介绍C语言中的命名规则,包括标识符的…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现一

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 2.S…

Android Studio 虚拟机 Unknown Error 解决

前言 尝试了网上很多解决方式,但很遗憾,都没效果; 于是我就想啊🤔,虚拟机属于SDK的一部分,那有没有一种可能,是SDK出了问题; 于是我就换了新的SDK,结果 ---- 完美解决…

网络安全技术新手入门:利用永恒之蓝获取靶机控制权限

目录 前言 一、搜索永恒之蓝可用模块 二、使用攻击模块 三、配置攻击模块 四、攻击 五、总结 前言 相关法律声明:《中华人民共和国网络安全法》第二十七条 任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动&…

RibbonGroup添加QAction

实际项目中,group中需要添加按钮与点击事件: 添加实例如下: if (Qtitan::RibbonGroup* groupClipboard pageHome->addGroup(tr("Clipboard"))) { //右下角按钮显示 groupClipboard->setO…

IP-Adapter:用于文本到图像扩散模型的文本兼容图像提示适配器

文章目录 一、IP-Adapter简介二、IP-Adapter与img2img的区分(一)结构上的区别(二)流程上的区别(三)输出上的区别(四)原理上的区别 三、IP-Adapter的网络架构(一&#xff…

GAP:Skeleton-based Action Recognition

Generative Action Description Prompts for Skeleton-based Action Recognition解析 摘要1.简介2. Related work2.1. Skeleton-based Action Recognition2.2 Human Part Prior2.3. Multi-modal Representation Learning3. 方法介绍3.1 生成动作提示框架3.2. Skeleton Encoder3…

基于Go框架,Cloudreve个人免费开源网盘系统源码,支持云存储(七牛、阿里云OSS、腾讯云COS、又拍云、OneDrive)

源码介绍 在数字化时代,我们经常需要存储、分享大量的文件,如照片、视频、文档等。然而,许多商业网盘服务却存在限速、收费等问题,给用户带来诸多不便。现在,我们为您推荐一款免费开源的网盘系统——Cloudreve。 Clo…

PostgreSQL认证考试PGCA、PGCE、PGCM

PostgreSQL认证考试PGCA、PGCE、PGCM 【重点!重点!重点!】PGCA、PGCE、PGCM 直通车快速下正,省心省力,每2个月一次考试 PGCE考试通知 (2024) 一、考试概览 (一) 报名要…

远程开发之vacode插件Remote - SSH

远程开发之vacode插件Remote - SSH vscode插件(Remote - SSH)ssh config自定义配置跳板机ssh-agent配置(使ForwardAgent配置生效, 免密拉代码)拷贝公钥到服务器(实现免密登录服务器) 通过vscode的Remote - SSH插件, 实现远程服务器进行像本地操作一样使用远程服务器, 亦可进行像…

外贸常用网站

外贸常用网站 网站阿里巴巴国际站阿里巴巴国内站Aliexpress 速卖通shopifyAmazon 亚马逊k3 开山女鞋网bao66 牛包包网爱搜鞋k3 开山网(女鞋)新款网(男女鞋)搜款网(男女衣服)17zwd(女装)17zwd(女装) 物流yunexpress 云途物流 其他amz123 跨境卖家导航amz520 跨境卖家导航 网站 …

YZ虚拟资源下载源码-支持对接公众号-对接支付

这款系统内置的模板是电脑系统下载站的类型,当然你也可以用作其他类型,例如软件下载,其他类型的资源下载,知识付费下载等,改下文字内容即可。 支持商城系统,后台可配置支付。青狐修改增加了很多可用性。 …

C语言实现读写锁和try...catch逻辑

1. 读写锁代码实现 代码示例创建了多个读者线程和一个写者线程来访问共享资源(这里是一个文件)。在读者线程中,使用了文件I/O函数打开文件、映射文件到内存,并对文件内容进行了读取。在写者线程中,也使用了文件I/O函数…

[蓝桥杯 2013 省 AB] 错误票据

题目背景 某涉密单位下发了某种票据,并要在年终全部收回。 题目描述 每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造…