交叉熵损失 在PyTorch 中的计算过程

news2024/11/25 12:29:29

其实就是根据 真实值的结果,当成索引去取的值
import torch
import torch.nn as nn

aaaa = torch.tensor([[2.0,1.0,3.0],
             [2.0,4.0,2.0]])

l1 = nn.LogSoftmax(dim=-1)
result = l1(aaaa)
print(result)

import torch
import torch.nn as nn

# 定义交叉熵损失函数
criterion = nn.CrossEntropyLoss()

# 模拟的模型输出(没有经过 softmax)
aaaa = torch.tensor([[2.0, 1.0, 3.0],
                     [2.0, 4.0, 2.0]])

# 模拟的目标类别
target = torch.tensor([2, 1])

# 计算交叉熵损失
loss = criterion(aaaa, target)
print("交叉熵损失:", loss.item())

 

在这个例子中,CrossEntropyLoss 会先对模型输出进行 softmax,然后计算目标类别的负对数似然损失(NLLLoss)。

其中 aaaa 是模型的原始输出,没有经过 softmax,target 是目标类别。

计算过程详细解释:

1. Softmax 操作:

• 第一行:[2.0, 1.0, 3.0]

• 计算 softmax 值:

经过计算得到:


• 第二行:[2.0, 4.0, 2.0]

• 计算 softmax 值:

经过计算得到:

2. 取对数:

• 第一行:[0.2595, 0.0952, 0.6452] 的对数:

• 第二行:[0.1065, 0.7869, 0.1065] 的对数:

3. NLLLoss 计算:

现在我们使用目标类别计算负对数似然损失:

4. 计算平均损失:

将两个样本的损失值相加后取平均:

因此,最终的交叉熵损失值为 0.33935。

总结:​​​​​​​

Softmax 将模型输出转换为概率分布。

LogSoftmax 将 softmax 的概率取对数。

NLLLoss 根据目标类别提取 log-prob 对应的值,并计算损失。

CrossEntropyLoss 将 LogSoftmax 和 NLLLoss 结合起来。

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

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

相关文章

电影《荒野机器人》观后感

上上周看了电影《荒野机器人》,电影整体是比较偏向温馨的,通过动物与机器人视角,展现人类为情感。 (1)承载-托举-学习-感情 在电影中,有个场景让自己感觉特别温馨,就是机器人为了让大雁宝宝学习…

盛⽔最多的容器 04

盛⽔最多的容器 算法思想&#xff1a;对撞指针&#xff1a; 我写的代码&#xff1a; class Solution {public int maxArea(int[] height) {int left0;int rightheight.length-1;int minHight-1;//防止[2,0]这种特殊情况int maxV0;while(left<right) {if(height[left]>…

【hot100-java】随机链表的复制

链表篇 /* // Definition for a Node. class Node {int val;Node next;Node random;public Node(int val) {this.val val;this.next null;this.random null;} } */class Solution {public Node copyRandomList(Node head) {if(headnull){return null;}java.util.Map<Node…

三品PLM系统赋能中小企业实现数字化转型迈向管理智能化

在全球化的浪潮中&#xff0c;发达国家的企业在管理体系上更具优势&#xff0c;常采用先进的PLM体系提升运营和战略规划效率。相较之下&#xff0c;国内中小企业在PLM系统的应用上明显滞后&#xff0c;中高层管理人员普遍缺乏相应的认知与实践经验&#xff0c;这限制了企业的创…

面向车辆路线问题的泛化神经方法

文章目录 Abstract1 Introduction2 相关工作3 PreliminariesAbstract 学习车辆路径问题(VRPs)的启发式方法由于减少了对手工制定规则的依赖而受到了广泛关注。然而,现有的方法通常在具有固定大小和节点分布的同一任务上进行训练和测试,因此在泛化性能上受到限制。本文研究…

权威骨传导耳机测评分享!2024骨传导耳机推荐榜单大盘点!

骨传导耳机的概念就是针对传统入耳式的不足创新出来的。配戴方式一般为夹耳式和挂耳式&#xff0c;配戴舒适性极高&#xff0c;不堵耳&#xff0c;不涨耳&#xff0c;不伤耳且稳固性非常好。特别适合运动健身&#xff0c;办公通勤等需要长久配戴的场景。 作为一个运动爱好者&a…

携手申威合力筑牢数字之基!麒麟信安参加申威产品发布暨申威产业发展联盟大会

9月20日&#xff0c;申威产品发布暨申威产业发展联盟大会在无锡成功召开&#xff0c;会上&#xff0c;申威新一代服务器处理器威鑫H8000及配套芯片、基础软件等新品集中首发&#xff0c;麒麟信安作为申威产业发展联盟成员单位&#xff0c;与院士专家、政府领导、科研院校、联盟…

125页满分PPT | 数据架构革新顶层规划方案

数据架构的重要性 数据架构规划是确保企业数据战略成功实施的基础。它不仅涉及数据的组织和管理&#xff0c;还关系到数据的价值实现。良好的数据架构规划可以帮助企业实现数据标准化、提高数据质量、保障数据安全&#xff0c;并最终推动业务创新和提升客户服务水平。本文重点展…

【C++篇】继承之韵:解构编程奥义,感悟面向对象的至高法则

文章目录 C 继承详解&#xff1a;初阶理解与实战应用前言第一章&#xff1a;继承的基本概念与定义1.1 继承的概念1.2 继承的定义 第二章&#xff1a;继承中的访问权限2.1 基类成员在派生类中的访问权限2.2 基类与派生类对象的赋值转换2.2.1 派生类对象赋值给基类对象2.2.2 基类…

Spark练习-RDD创建,读取hdfs上的数据,指定rdd分区

目录 RDD的创建 读取HDFS上文件数据 RDD分区指定 RDD的创建 将python数据转为rdd # 将Python数据转为rdd data [1,2,3,4] res sum(data) # 使用python的方法计算时&#xff0c;采用的单机资源计算&#xff0c;如果数据量较大时&#xff0c;可以将python数据转为spark的r…

QD1-P2 HTML 编辑器:HBuilderX

本节学习&#xff1a; HTML课程内容介绍HBuilderX编辑器的使用 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p2 HTML 内容 基础语法 标签整体架构DOCTYPE 常用标签 标题和水平线段落和换行列表div 和 span格式化标签图片超链接标签表格表单字符实体 编辑器 HBuilder…

C/C++逆向:函数逆向分析-总体流程(整型指针)

函数的初始化 在逆向工程中&#xff0c;函数的初始化操作是函数在开始执行时&#xff0c;为正确运行而进行的准备工作。通常&#xff0c;这些操作发生在函数的序言&#xff08;Prologue&#xff09;阶段&#xff0c;具体的内容和顺序会因编译器、调用约定和目标平台&#xff0…

【AIGC】ChatGPT提示词Prompt高效编写模式:思维链、Self-Consistency CoT与Zero-Shot CoT

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;思维链 (Chain of Thought, CoT)如何工作应用实例优势结论 &#x1f4af;一致性思维链 (Self-Consistency CoT)如何工作应用实例优势结论 &#x1f4af;零样本思维链 (Ze…

MC802单片机:触控未来,8位高性能与多IO接口的完美结合

MC802单片机&#xff1a;开启智能生活新篇章 MC802 &#xff08;2 Touch Key 4 I/O&#xff09; MC802是由厦门晶尊微电子科技有限公司&#xff08;ICman&#xff09;推出的一款高性能8位单片机&#xff0c;它集成了2个自校正容性触摸按键和4个I/O口&#xff0c;专为需要多…

地级市-制造业集聚水平数据(2008-2021年)

制造业集聚水平是衡量一个地区制造业发展程度的重要指标&#xff0c;它不仅反映了制造业在地理上的集中程度&#xff0c;还体现了该地区制造业的专业化水平。 制造业集聚水平通常通过以下几个量化指标来衡量&#xff1a; 年末单位从业人员数&#xff1a;反映了制造业的劳动力…

如何替换OCP节点(二):使用 antman脚本 | OceanBase应用实践

前言&#xff1a; OceanBase Cloud Platform&#xff08;简称OCP&#xff09;&#xff0c;是 OceanBase数据库的专属企业级数据库管理平台。 在实际生产环境中&#xff0c;OCP的安装通常是第一步&#xff0c;先搭建OCP平台&#xff0c;进而依赖OCP来创建、管理和监控我们的生…

02_安装jmeter

windows&#xff1a; 安装jdk1.8.0&#xff1a; 1、下载安装包&#xff0c;双击运行安装&#xff0c;点击“下一步”直到完成 2、配置环境变量&#xff1a; JAVA_HOME的值配置为jdk安装目录如D:\java\jdk1.8.0_201 系统变量的Path中添加"%JAVA_HOME%\bin" 3、验证安装…

海外市场充电桩需求激增:充电基础设施展望

报告显示&#xff0c;在大多数欧盟国家的路网中&#xff0c;充电桩数量存在不足、不支持快速充电且分布不均匀的问题。具体而言&#xff0c;有6个欧洲国家的平均每百公里充电桩数量不足1个&#xff0c;17个国家的平均每百公里充电桩数量少于5个&#xff0c;仅有5个国家的平均每…

【Axure原型分享】标签管理列表

今天和大家分享通过标签管理列表的原型模板&#xff0c;包括增删改查搜索筛选排序分页翻页等效果&#xff0c;这个模板是用中继器制作的&#xff0c;所以使用也很方便&#xff0c;初始数据我们只要在中继器表格里填写即可&#xff0c;具体效果可以观看下方视频或者打开预览地址…

单片机(学习)2024.10.11

目录 按键 按键原理 按键消抖 1.延时消抖 2.抬手检测 通信 1.通信是什么 2.电平信号和差分信号 3.通信的分类 (1)时钟信号划分 同步通信 异步通信 (2)通信方式划分 串行通信 并行通信 (3)通信方向划分 单工 半双工 全双工 4.USART和UART&#xff08;串口通信&a…