CrossEntropy Loss 计算实例讲解

news/2024/9/22 1:33:31/文章来源:https://www.cnblogs.com/elinablog/p/18384404

CrossEntropy Loss 计算过程全分析

  • 前提条件:分类标签labels和模型输出结果outputs = model(inputs)
  1. outputs为一个未经过 softmax 的 logits 向量 𝑧 = [𝑧1, 𝑧2, …, 𝑧C],对应每个类别 𝐶 的原始分数。e.g.,二分类问题,有两个原始分数(𝐶 等于2):
  2. 利用Softmax将outputs包含的所有原始分数转成一串概率分布:

    FYI: e指数的结果始终为正;根据公式也能看出来,每个类别的概率介于0,1之间,所有类别的概率加一起为1。
    举例说明:
  3. 利用one-hot编码将labels转成跟预测概率长度相等的向量,e.g.,label为1,经过one-hot编码之后为[0, 1]。
    FYI: Pytorch里面计算CrossEntropyLoss时,这个步骤自动执行。
  4. 仅考虑正确类别对应的预测概率(即 one-hot labels [0, 1]中的1对应的预测概率,于是下图的p值等于0.5403),并取其对数的负值,最终的交叉熵损失为:

    具体计算为:

⭐特别地,对于 batch size 大于1的情况,Pytorch在计算过程中会帮我们求平均:

练习:outputs为[[-0.0464, -0.0268], [-0.0234, -0.0091]],labels为[0, 1],请给我计算最终的交叉熵损失。


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

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

相关文章

【Linux网络编程】网络编程常见概念

【Linux网络编程】网络编程常见概念 阻塞与非阻塞 阻塞 IO:执行的系统调用可能因为无法立即完成而被操作系统挂起,直到等待的事件发生为止。如服务端的 accept(),在客户端未 connect() 时,其一直处于阻塞状态直至发生为止,但我们可以对监听的文件描述符通过 fcntl() 设置 …

【一】开始篇

概述 之前在暑假有空学习了一下mprpc项目,这是一个基于陈硕大佬写的muduo库、protobuf的分布式rpc框架,现在想整理一下内容(众所周知,学了不整理等于白学) 技术栈集群和分布式概念以及原理 RPC远程过程调用原理以及实现 Protobuf数据序列化和反序列化协议 Protobuf数据序列…

.net MAUI 发布时报错,无法识别指定的 RuntimeIdentifier“win10-x64”的原因

是因为MAUI项目引用了普通的C#类库导致的。MAUI只能引用MAUI类库,不能引用普通的类库。虽然能运行但打包时会报错。参考https://learn.microsoft.com/zh-cn/answers/questions/1685237/maui-net8-0-net8-0-targetframeworks。 这是MAUI类库

【Linux网络编程】字节序

【Linux网络编程】字节序 字节序 字节序就是字节在内存中存储的顺序,如32位整数0x01234567,在内存中存储时,有如下两种顺序:大端序将数值的高位存储在低位地址中,小端序则相反。 网络字节序 网络中传输数据均采用大端序。 Linux字节序转换函数 在 #include <netinet/in…

简化登录流程,助力应用建立用户体系

随着智能手机和移动应用的普及,用户需要在不同的应用中注册和登录账号,传统的账号注册和登录流程需要用户输入用户名和密码,这不仅繁琐而且容易造成用户流失。 华为账号服务(Account Kit)提供简单、快速、安全的登录功能,让用户快捷地使用华为账号登录应用。用户授权后,…

【SQL练习】demo1

为了适应技术发展的需求,SQL 标准于 2016 年增加了以下 JSON 功能: JSON 对象的存储与检索。将 JSON 对象表示成 SQL 数据。将 SQL 数据表示成 JSON 对象。如今,主流关系型数据库都增加了原生 JSON 数据类型和相关函数的支持,使得我们可以将 SQL 的强大功能与 JSON 文档存储…

Spring Boot 整合 Kafka

项目目录结构pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Kafka Starter --><dependency><groupId&…

.NET8 接入qwen2大语言模型

前言 dotnet8项目接入qwen大模型,这个主要用到了大模型管理工具叫做 ollama 有了它,接入大模型so easy。使用ollama可以接入很多大模型,详见:https://ollama.com/library 环境vs2022 preview dotent8 Windows 10 企业版1、下载ollama https://github.com/ollama/ollama安装…

实践项目-模拟公司自动化运维

(20240828,准备更新PostgreSQL部分) 大纲环境配置 系统:Debian 12.06 环境:阿里云ECS 以及 虚拟机序号 IP地址 域名 主机名1 192.168.100.12 k8s-master.yourname.com k8s-master2 192.168.100.15 k8s-node1.yourname.com k8s-node13 192.168.100.16 k8s-node2.yourname.c…

解决方案 | QTTabBar工具栏命令按钮设置everything、filelocator在当前文件夹下面搜索

备忘 everything 命令行参数参考 -path(是everythin参数) 表示在哪个位置(即哪个文件夹)下面搜索,这里%c%是qttabbar的参数,表示当前文件夹 https://www.voidtools.com/zh-cn/support/everything/command_line_interface/===================== filelocatorpro 命令行参数…

基于Ubuntu部署企业级kubernetes集群---k8s集群容器运行时Containerd准备

1.Containerd部署文件获取 1.下载 Containerd 文件wget https://github.com/containerd/containerd/releases/download/v1.7.21/cri-containerd-1.7.21-linux-amd64.tar.gz2.查看下载的文件 3.解压到当前文件到根目录下tar xf cri-containerd-1.7.21-linux-amd64.tar.gz -C /…

EMC/EMI详解

EMC/EMI详解 EMI(干扰)和EMS(抗扰)基础知识与整改流程 EMC主要包含两大项:EMI(干扰)和EMS(产品抗干扰和敏感度)。EMI(Electromagnetic Interference),表示电磁干扰(电磁干涉、电磁妨碍)的术语。由于发射电磁波会导致干扰,所以经常与Emission(辐射、发射)这一术…