pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值

这篇具有很好参考价值的文章主要介绍了pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pytorch中使用nn.CrossEntropyLoss()创建出来的交叉熵损失函数计算损失默认是求平均值的,即多个样本输入后获取的是一个均值标量,而不是样本大小的向量。

net = nn.Linear(4, 2)
loss = nn.CrossEntropyLoss()
X = torch.rand(10, 4)
y = torch.ones(10, dtype=torch.long)
y_hat = net(X)
l = loss(y_hat, y)
print(l)

打印的结果:tensor(0.7075, grad_fn=<NllLossBackward0>)

以上是对10个样本做的均值的标量

net = nn.Linear(4, 2)
loss = nn.CrossEntropyLoss(reduction='none')
X = torch.rand(10, 4)
y = torch.ones(10, dtype=torch.long)
y_hat = net(X)
l = loss(y_hat, y)
print(l)

在构造CrossEntropyLoss时候加入 reduction='none',就把默认求平均取消掉了

打印结果:

tensor([0.6459, 0.7372, 0.6373, 0.6843, 0.6251, 0.6555, 0.5510, 0.7016, 0.6975,
        0.6849], grad_fn=<NllLossBackward0>)

以上是10个样本各自的loss值

pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值,pytorch,人工智能,python,深度学习

上图是pytorch的CrossEntropyLoss的构造方法,默认是 reduction='mean'

此外,使用反向传播计算梯度也会发生变化,loss值调用backward()要求loss值是一个tensor标量,如果是reduction='none',loss值得到的是tensor向量,会报错。 loss值需要求和或者求平均得到标量再进行backward()的计算

l = loss(y_hat, y)
l.sum().backward()

至于为什么求和或者求平均都可以,首先要看下更新梯度的计算公式

pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值,pytorch,人工智能,python,深度学习

 求和学习率就调整的大一点,求均值的话学习率就可以小一点,总之就是除以样本数这个操作可以放到调整学习率中文章来源地址https://www.toymoban.com/news/detail-628108.html

到了这里,关于pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聊聊关于分类和分割的损失函数:nn.CrossEntropyLoss()

    目录 1. nn.CrossEntropyLoss() 2. 多分类中 nn.CrossEntropyLoss() 的应用 3. 分割中 nn.CrossEntropyLoss() 的应用 3.1 测试文件 3.2 输出可视化 3.3 softmax  3.4 log  3.5 CrossEntropyLoss 分类中,经常用 nn.CrossEntropyLoss() 交叉熵损失函数 y 为真实值 、 y(hat) 为预测值  这种采用了 one-hot 编码的形式,多

    2024年02月03日
    浏览(34)
  • loss = nn.CrossEntropyLoss(reduction=‘none‘)

    nn.CrossEntropyLoss() 函数是 PyTorch 中用于计算交叉熵损失的函数。 其中 reduction 参数用于 控制输出损失的形式 。 当 reduction=\\\'none\\\' 时,函数会输出一个形状为 (batch_size, num_classes) 的矩阵,表示 每个样本的每个类别的损失 。 当 reduction=\\\'sum\\\' 时,函数会对 矩阵求和 ,输出一个标量

    2024年02月14日
    浏览(38)
  • 交叉熵--损失函数

    目录 交叉熵(Cross Entropy) 【预备知识】 【信息量】 【信息熵】 【相对熵】 【交叉熵】 是Shannon信息论中一个重要概念, 主要用于度量两个概率分布间的差异性信息。 语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,

    2024年02月12日
    浏览(32)
  • 【深度学习】002-损失函数:MSE、交叉熵、铰链损失函数(Hinge Loss)

    目录 前言 一、均方误差损失函数(The Mean-Squared Loss)       1.1、从线性回归模型导出均方误差函数       1.2、均方误差函数的使用场景       1.3、均方误差函数的一些讨论 2、交叉熵损失函数(The Cross-Entropy Loss)       2.1、从softmax运算到交叉熵       2.2、信息论

    2024年02月05日
    浏览(46)
  • DDPM交叉熵损失函数推导

    K L rm KL K L 散度 由于以下推导需要用到 K L rm KL K L 散度,这里先简单介绍一下。 K L rm KL K L 散度一般用于度量两个概率分布函数之间的“距离”,其定义如下: K L [ P ( X ) ∣ ∣ Q ( X ) ] = ∑ x ∈ X [ P ( x ) log ⁡ P ( x ) Q ( x ) ] = E x ∼ P ( x ) [ log ⁡ P ( x ) Q ( x ) ] KLbig[P(X)||Q(X)

    2024年02月10日
    浏览(39)
  • 损失函数——交叉熵损失(Cross-entropy loss)

    交叉熵损失(Cross-entropy loss) 是深度学习中常用的一种损失函数,通常用于分类问题。它衡量了模型预测结果与实际结果之间的差距,是优化模型参数的关键指标之一。以下是交叉熵损失的详细介绍。 假设我们有一个分类问题,需要将输入数据x分为C个不同的类别。对于每个

    2024年02月02日
    浏览(50)
  • 交叉熵(Cross Entropy)损失函数

    交叉熵(Cross Entropy)损失函数是一种常用的损失函数,广泛应用于分类问题中,尤其是二分类问题和多分类问题。 假设有 N N N 个样本,每个样本有 C C C 个类别, y i ∈ { 0 , 1 } C y_i in {0,1}^C y i ​ ∈ { 0 , 1 } C 表示第 i i i 个样本的真实标签(one-hot编码), y i ^ ∈ [ 0 , 1 ]

    2024年02月09日
    浏览(42)
  • 交叉熵损失函数与参数更新计算实例(节点分类为例)

    对于下面这样一个图网络网络: 假如我们得到了节点i的嵌入表示 z i z_i z i ​ 数据如下: i d , x 0 , x 1 , x 2 , x 3 1 , 0.5 , 0.6 , 0.7 , 0.8 2 , 0.3 , 0.8 , 0.3 , 0.4 3 , 0.7 , 0.9 , 0.6 , 0.9 4 , 0.2 , 0.1 , 0.2 , 0.3 5 , 0.8 , 0.4 , 0.3 , 0.2 id,x_0,x_1,x_2,x_3\\\\ 1,0.5,0.6,0.7,0.8\\\\ 2,0.3,0.8,0.3,0.4\\\\ 3,0.7,0.9,0.6,0.9\\\\ 4,

    2024年02月01日
    浏览(46)
  • 【吴恩达·机器学习】第三章:分类任务:逻辑回归模型(交叉熵损失函数、决策边界、过拟合、正则化)

    博主简介: 努力学习的22级计算机科学与技术本科生一枚🌸 博主主页: @Yaoyao2024 每日一言🌼: 勇敢的人,不是不落泪的人,而是愿意含着泪继续奔跑的人。 ——《朗读者》 本系列博客文章是博主本人根据吴恩达老师2022年的机器学习课程所学而写,主要包括老师的核心讲义

    2024年02月19日
    浏览(59)
  • 深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

    深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测 在物理学中,“熵”被用来表示热力学系统所呈现的无序程度。香农将这一概念引入信息论领域,提出了“信息熵”概念,通过对数函数来测量信息的不确定性。交叉熵(

    2023年04月18日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包