返回顶部
首页 > 资讯 > 精选 >怎么在pytorch中使用MSELoss计算平均
  • 158
分享到

怎么在pytorch中使用MSELoss计算平均

2023-06-15 01:06:05 158人浏览 安东尼
摘要

本篇文章为大家展示了怎么在PyTorch中使用MSELoss计算平均,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。给定损失函数的输入y,pred,shape均为bxc。若设定loss_fn = to

本篇文章为大家展示了怎么在PyTorch中使用MSELoss计算平均,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

给定损失函数的输入y,pred,shape均为bxc。

若设定loss_fn = torch.nn.MSELoss(reduction='mean'),最终的输出值其实是(y - pred)每个元素数字的平方之和除以(bxc),也就是在batch和特征维度上都取了平均。

如果只想在batch上做平均,可以这样写:

loss_fn = torch.nn.MSELoss(reduction='sum')loss = loss_fn(pred, y) / pred.size(0)

补充:PyTorch中MSELoss的使用

参数

torch.nn.MSELoss(size_average=None, reduce=None, reduction: str = 'mean')

size_average和reduce在当前版本的pytorch已经不建议使用了,只设置reduction就行了。

reduction的可选参数有:'none' 、'mean' 、'sum'

reduction='none':求所有对应位置的差的平方,返回的仍然是一个和原来形状一样的矩阵。

reduction='mean':求所有对应位置差的平方的均值,返回的是一个标量。

reduction='sum':求所有对应位置差的平方的和,返回的是一个标量。

更多可查看官方文档

举例

首先假设有三个数据样本分别经过神经网络运算,得到三个输出与其标签分别是:

y_pre = torch.Tensor([[1, 2, 3],                      [2, 1, 3],                      [3, 1, 2]])y_label = torch.Tensor([[1, 0, 0],                        [0, 1, 0],                        [0, 0, 1]])

如果reduction='none':

criterion1 = nn.MSELoss(reduction='none')loss1 = criterion1(x, y)print(loss1)

则输出:

tensor([[0., 4., 9.],

[4., 0., 9.],

[9., 1., 1.]])

如果reduction='mean':

criterion2 = nn.MSELoss(reduction='mean')loss2 = criterion2(x, y)print(loss2)

则输出:

tensor(4.1111)

如果reduction='sum':

criterion3 = nn.MSELoss(reduction='sum')loss3 = criterion3(x, y)print(loss3)

则输出:

tensor(37.)

在反向传播时的使用

一般在反向传播时,都是先求loss,再使用loss.backward()求loss对每个参数 w_ij和b的偏导数(也可以理解为梯度)。

这里要注意的是,只有标量才能执行backward()函数,因此在反向传播中reduction不能设为'none'。

但具体设置为'sum'还是'mean'都是可以的。

若设置为'sum',则有Loss=loss_1+loss_2+loss_3,表示总的Loss由每个实例的loss_i构成,在通过Loss求梯度时,将每个loss_i的梯度也都考虑进去了。

若设置为'mean',则相比'sum'相当于Loss变成了Loss*(1/i),这在参数更新时影响不大,因为有学习率a的存在。

pytorch的优点

1.PyTorch是相当简洁且高效快速的框架;2.设计追求最少的封装;3.设计符合人类思维,它让用户尽可能地专注于实现自己的想法;4.与Google的Tensorflow类似,FaiR的支持足以确保PyTorch获得持续的开发更新;5.PyTorch作者亲自维护的论坛 供用户交流和求教问题6.入门简单

上述内容就是怎么在pytorch中使用MSELoss计算平均,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在pytorch中使用MSELoss计算平均

本文链接: https://lsjlt.com/news/276451.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在pytorch中使用MSELoss计算平均
    本篇文章为大家展示了怎么在pytorch中使用MSELoss计算平均,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。给定损失函数的输入y,pred,shape均为bxc。若设定loss_fn = to...
    99+
    2023-06-15
  • pytorch MSELoss计算平均的实现方法
    给定损失函数的输入y,pred,shape均为bxc。 若设定loss_fn = torch.nn.MSELoss(reduction='mean'),最终的输出值其实是(y - p...
    99+
    2024-04-02
  • 在 PHP 中计算数字的平均数
    当我们在 PHP 中编码时,我们会遇到需要执行的不同数学运算。加法、减法、乘法和除法是原生的。一个典型的就是平均数,也叫均值。在本文中,我们考虑使用 PHP 内置函数来计算一组已知数字和一组连续数字的平均值...
    99+
    2024-02-27
  • java怎么计算数组的平均值
    要计算一个数组的平均值,可以使用以下Java代码: public class AverageCalculator { pub...
    99+
    2024-03-14
    java
  • 使用pytorch怎么计算 kl散度
    使用pytorch怎么计算 kl散度 ?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如果现在想用Y指导X,第一个参数要传X,第二个要传Y。就是被指导的放在前面,...
    99+
    2023-06-15
  • PyTorch中怎么使用GPU进行加速计算
    在PyTorch中使用GPU进行加速计算非常简单,只需按照以下步骤操作: 检查是否有可用的GPU 首先,检查是否有可用的GPU设...
    99+
    2024-03-05
    PyTorch
  • python怎么读取文件并计算平均值
    使用python读取文件并计算平均值的方法:1.新建python项目;2.使用open()函数打开文件;3.使用read()方法获取文件内容;4.遍历获取文件的总数和数量;5.两数相除求平均值;具体步骤如下:首先,打开python,并新建一...
    99+
    2024-04-02
  • r语言怎么计算数组的平均值
    在R语言中,可以使用mean()函数来计算数组的平均值。例如,对一个包含数字的数组进行平均值计算可以这样做: # 创建一个包含数字的...
    99+
    2024-03-06
    r语言
  • 数据库中如何使用计算列实现移动加权平均算法
    这篇文章给大家分享的是有关数据库中如何使用计算列实现移动加权平均算法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:if OBJECT_ID('tb&#...
    99+
    2024-04-02
  • 怎么用pytorch 计算Parameter和FLOP
    这篇文章主要介绍“怎么用pytorch 计算Parameter和FLOP”,在日常操作中,相信很多人在怎么用pytorch 计算Parameter和FLOP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用...
    99+
    2023-06-06
  • 怎么在函数计算中使用puppeteer
    这篇文章主要介绍了怎么在函数计算中使用puppeteer,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  使用 puppeteer 结合函数...
    99+
    2024-04-02
  • 怎么在Python中使用Operator计算函数
    怎么在Python中使用Operator计算函数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
  • 使用python怎么求列表平均值
    这期内容当中小编将会给大家带来有关使用python怎么求列表平均值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众...
    99+
    2023-06-14
  • BCELoss和BCEWithLogitsLoss怎么在Pytorch中使用
    BCELoss和BCEWithLogitsLoss怎么在Pytorch中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。BCELoss在图片多标签分类时,如果3张图片分3类,...
    99+
    2023-06-15
  • 怎么在pytorch中使用float64训练
    怎么在pytorch中使用float64训练?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。原因在于:使用float16训练模型,模型效果会有损失,而使用double(float...
    99+
    2023-06-15
  • Optimizer与optimizer.step()怎么在pytorch中使用
    今天就跟大家聊聊有关Optimizer与optimizer.step()怎么在pytorch中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当我们想指定每一层的学习率时:opti...
    99+
    2023-06-15
  • 使用python怎么求成绩求平均分
    这期内容当中小编将会给大家带来有关使用python怎么求成绩求平均分,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、l...
    99+
    2023-06-15
  • 怎么在python中使用defaultdict计算键值的和
    这篇文章将为大家详细讲解有关怎么在python中使用defaultdict计算键值的和,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python可以做什么Python是一种编程语言,内置了许...
    99+
    2023-06-14
  • 怎么在python中使用datime包计算时间差
    这篇文章将为大家详细讲解有关怎么在python中使用datime包计算时间差,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesuts...
    99+
    2023-06-14
  • 怎么在Java中使用线程计算数组和
    怎么在Java中使用线程计算数组和?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码一:五个线程交替累加计算数组之和,这种方法其实不如单线程直接累加快,因为交替累加需要前一...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作