返回顶部
首页 > 资讯 > 后端开发 > Python >MSELoss详解+避坑指南
  • 752
分享到

MSELoss详解+避坑指南

深度学习人工智能pythonpytorchmatplotlib 2023-09-30 12:09:03 752人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

MSE均方损失函数应用: loss(xi,yi)=(xi−yi)2 loss(xi,yi)=(xi−yi)2 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。 很多的 loss 函数都有 size_averag

MSE均方损失函数应用:


loss(xi,yi)=(xi−yi)2
loss(xi,yi)=(xi−yi)2
这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。

很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。

(1)如果 reduce = False,那么 size_average 参数失效,直接返回向量形式的 loss
(2)如果 reduce = True,那么 loss 返回的是标量

a)如果 size_average = True,返回 loss.mean();b)如果 size_average = False,返回 loss.sum();


注意:默认情况下, reduce = True,size_average = True

MSE参数详解:

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

size_averagereduce在当前版本的PyTorch已经不建议使用了,只设置reduction就行了。

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

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

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

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

MSE避坑地方:

在pytorch中,经常使用nn.MSELoss作为损失函数,例如

loss=nn.MSELoss()input=torch.randn(3,5,requires_grad=True)target=torch.randn(3,5)error=loss(input,target)error.backward()


这个地方有一个巨坑,就是一定要小心input和target的位置,说的更具体一些,target一定需要是一个不能被训练更新的、requires_grad=False的值,否则会报错!!!

MSE与Cross entropy loss区别 

 


————————————————

参考链接:

https://blog.csdn.net/jzwong/article/details/104085769

Https://blog.csdn.net/hao5335156/article/details/81029791

来源地址:https://blog.csdn.net/Viviane_2022/article/details/128321350

--结束END--

本文标题: MSELoss详解+避坑指南

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

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

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作