交叉熵损失和NLL损失之间的区别

总结:

交叉熵 = NLL + SOFTMAX Layer

NLL损失

torch.nn.NLLLoss(weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')

常用于多分类(设为C类)问题,且可以对每个分类提供相应的权重,这对于非平衡数据集的处理非常有用。

输入的数据为一阶张量,数据为对数化的概率,并且nll损失需要一个softmax层,如果不想自己创建该层,则使用交叉熵损失。

输出的数据为在[0,C-1]范围内的一个类别的数据,如:0,1,……,C-1.但是也可以指定ignore_index,就可以忽视某个类。

计算的过程如下

例子:

#一阶的一个计算的例子
#指定了一个softmax层
import torch
m = torch.nn.LogSoftmax(dim = 1)
loss = torch.nn.NLLLoss()
input = torch.randn(3,5,requires_grad = True)
target = torch.tensor([1,0,4])
output = loss(m(input),target)
output.backward()

交叉熵损失

torch.nn.CrossEntropyLoss(weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')

常用于多分类(设为C类)问题,且可以对每个分类提供相应的权重,这对于非平衡数据集的处理非常有用。

输入的数据是没有经过标准化的每一类的“打分”。

输出的数据为在[0,C-1]范围内的一个类别的数据,如:0,1,……,C-1.但是也可以指定ignore_index,就可以忽视某个类。

计算的过程如下

例子:

#一阶的一个计算的例子
import torch
loss2 = torch.nn.CrossEntropyLoss()
input = torch.randn(3,5,requires_grad = True)
target = torch.tensor([1,0,4])
output2 = loss2(m(input),target)
output2.backward()

pytorch关于NLL的文档

pytorch关于交叉熵的文档

交叉熵损失和NLL损失的区别相关推荐

  1. 【算法】交叉熵损失和KL散度

    参考资料: https://blog.csdn.net/b1055077005/article/details/100152102 https://zhuanlan.zhihu.com/p/35709 ...

  2. RankNet学习思路+损函感悟+\pi \xu 学xi+交叉熵损函详

    文章目录 RankNet学习思路 canci 损失函数感悟 排序学习实践---ranknet方法 1 背景 2 排序学习 2.1 point wise过程 2.2 point wise缺点 2.3 p ...

  3. 为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解

    0.sigmoid.softmax和交叉熵损失函数的概念理解 sigmoid.softmax和交叉熵损失函数 1.使用场景 在二分类问题中,神经网络输出层只有一个神经元,表示预测输出 是正类 的概率 ...

  4. 交叉熵损失函数VS均方差损失函数

    均方差损失函数和交叉熵损失函数是比较常用的损失函数 分类中常用交叉熵? MSE 均方误差损失也是一种比较常见的损失函数,其定义为: Cross Entropy Loss Function 二分类 在二 ...

  5. 为什么交叉熵可以用来当损失?与MMD的区别?

    为什么交叉熵可以用来当损失 主要写一下思路,不做具体的详解. 1. 信息量-log(p)---->信息熵-plog(p) (信息量的期望)     此时只有一个分布 2. 进一步引入KL散度,此 ...

  6. Pytorch踩坑记之交叉熵(nn.CrossEntropy,nn.NLLLoss,nn.BCELoss的区别和使用)

    目录 nn.Softmax和nn.LogSoftmax nn.NLLLoss nn.CrossEntropy nn.BCELoss 总结 在Pytorch中的交叉熵函数的血泪史要从nn.CrossEn ...

  7. 图像分类_03分类器及损失:线性分类+ SVM损失+Softmax 分类+交叉熵损失

    2.3.1 线性分类 2.3.1.1 线性分类解释 上图图中的权重计算结果结果并不好,权重会给我们的猫图像分配⼀个⾮常低的猫分数.得出的结果偏向于狗. 如果可视化分类,我们为了⽅便,将⼀个图⽚理解成⼀ ...

  8. 人脸识别-Loss-2010:Softmax Loss(Softmax激活函数 + “交叉熵损失函数”)【样本3真实标签为c_5,则样本3的损失:loss_3=-log(\hat{y}_5^3)】

    一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等. 全连接层:等号左边部分就是全连接层做的事, W W W 是全连接层的参数,我们也称为权值, X X X 是全连接层的输 ...

  9. 常用损失函数:交叉熵损失

    目录 什么是损失函数 均方误差与交叉熵 为什么要使用交叉熵 交叉熵与KL散度之间的关系 参考文献 什么是损失函数 对于损失函数网上已经有充分的解释:"机器学习中所有的算法都需要最大化或最小化 ...

最新文章

  1. Oculus和虚拟现实的无限可能
  2. ide setting
  3. 使用ORACLE生成文本文件
  4. raft引入no-op解决了什么问题
  5. django-oscar-paypal出现UnicodeEncodeError: 'latin-1' codec can't encode characters in position XXXX
  6. JS DOM事件(常用消息、常用事件、addEventListener、removeEventListener)
  7. Vuex 的简单模拟、了解Vuex
  8. matlab做挖掘机仿真,基于Proe_Adams_Matlab挖掘机的机电液一体化仿真
  9. win 7计算机图标变了,Win7美化攻略:替换imageres.dll,图标全变样
  10. hdu2825(AC 自动机)
  11. Centos7查看硬盘容量
  12. 统计与分布之伯努利分布与二项分布
  13. 基于CQRS的架构在答题PK小游戏中的实践案例
  14. 微信小程序精品demo:面包旅行:界面设计,文本展示,
  15. 使用canvas在前端实现图片合成
  16. nginx api接口代理配置细节
  17. 个人python学习(10)
  18. 二值图像、8位灰度图像和彩色图像!
  19. js中创建对象的5种方法
  20. 如何设计推荐系统架构?

热门文章

  1. 华为,在行星的十字路口
  2. arap deformation 网格变形可视化
  3. 3D激光SLAM:Livox激光雷达硬件时间同步
  4. 广和通入选中国移动5G物联网开放实验室首批优选产品名录
  5. 关于Dict2Anki插件不能导入欧路词典的问题
  6. AI工程师的笔记本环境配置
  7. arduino / VScode+platformIO搭建esp32/esp8266编译环境(一篇足矣)
  8. 美容店管理软件如何开通模板消息?
  9. cpuz检测硬件真假_我想问下,买个二手电脑,用CPuz检测的信息会不会造假,有没有可能是刷出来的那种...
  10. python 文档生成_文档生成器 mkdocs