当前位置: 首页 > news >正文

分类损失函数 (一) torch.nn.CrossEntropyLoss()

1、交叉熵

  • 是一种用于衡量两个概率分布之间的距离或相似性的度量方法。
  • 机器学习中,交叉熵常用于损失函数,用于评估模型的预测结果和实际标签的差异。
  • 公式:Loss(y,{y}') =-\sum (y[i]]*log({y[i]]}']))  

      y:真是标签的概率分布,y':模型预测的概率分布

  • 交叉熵损失函数的目的:是最小化预测概率分布和真是概率分布之间的差异,使模型能够更好的学习到数据的内在规律和特征。

2、torch.nn.CrossEntropyLoss()

  • 多分类的损失函数
  • CrossEntropyLoss()包含两部分,softmax和交叉熵计算
  • softmax将预测值转化为概率值
  •  softmax =\frac{exp(x_{i}))}{\sum exp(x_{i}))}        
  • torch.nn.CrossEntropyLoss(logits,target)

        其中logits预测值是网络输出:[[0.8, 0.5, 0.2, 0.5],
                                                         [0.2, 0.9, 0.3, 0.2],
                                                         [0.4, 0.3, 0.7, 0.1],
                                                         [0.1, 0.2, 0.4, 0.8]]

       其中target标签可以是:列表:torch.tensor([[1, 0, 0, 0],
                                                                             [0, 1, 0, 0],
                                                                             [0, 1, 0, 0],
                                                                             [0, 0, 0, 1]], dtype=torch.float)

                                            索引:torch.tensor([0,1, 1, 3], dtype=torch.long)

3、torch.nn.BCEWithLogitsLoss()

  • BCEWithLogitsLoss()用于二元分类的损失函数。
  • BCEWithLogitsLoss()包含两部分:Sigmoid层(将输出映射在[0,1]范围内)和BEC损失。
  • 优点:采用Sigmoid激活函数,可以避免梯度消失和爆炸。
  • torch.nn.BCEWithLogitsLoss()(logits,target)

       logits:网络输出,没有进行Sigmoid:tensor([ 0.5555, -0.2509,  1.3131])

       target:标签:tensor([0., 0., 1.], dtype=torch.float)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 机械学习—零基础学习日志(高数09——函数图形)
  • 【iOS】——探究isKindOfClass和isMemberOfClass底层实现
  • 基于电鸿(电力鸿蒙)的边缘计算网关,支持定制
  • vite + vue3 + uniapp 项目从零搭建
  • 面试题 17.14.最小K个数
  • Django+vue自动化测试平台(28)-- ADB获取设备信息
  • 前端面试 vue 接口权限控制
  • 【WPF开发】控件介绍-ComboBox
  • 《昇思25天学习打卡营第25天|文本解码原理--以MindNLP为例》
  • lse:一款专为渗透测试和CTF设计的Linux枚举工具
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • linux协议栈之FDB表
  • 【Spring Boot 中的 `banner.txt` 和 `logback-spring.xml` 配置】
  • 安装caffe-CPU版本并进行训练
  • 谷粒商城实战笔记-52~53-商品服务-API-三级分类-新增-修改
  • 【node学习】协程
  • quasar-framework cnodejs社区
  • vue的全局变量和全局拦截请求器
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 简析gRPC client 连接管理
  • 你不可错过的前端面试题(一)
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 山寨一个 Promise
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • #define 用法
  • #git 撤消对文件的更改
  • (1) caustics\
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)认识微服务
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)jdk与jre的区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net Memory Profiler的使用举例
  • .net 使用ajax控件后如何调用前端脚本
  • .net 怎么循环得到数组里的值_关于js数组
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @Autowired多个相同类型bean装配问题
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Transient注解
  • [20190113]四校联考
  • [2669]2-2 Time类的定义
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Angular 基础] - 指令(directives)
  • [ANT] 项目中应用ANT
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例