其他分享
首页 > 其他分享> > pytorch 11 mae、mse、BCELoss、BCEWithLogitsLoss和CrossEntropyLoss等loss的使用

pytorch 11 mae、mse、BCELoss、BCEWithLogitsLoss和CrossEntropyLoss等loss的使用

作者:互联网

在深度学习任务中,根据loss的设计可以简单的分为线性回归、逻辑回归和softmax回归。

一、线性回归loss

其中线性回归是指拟合一个线性函数,通常用mse、mae来评价模型的拟合效果,此外mse、mae还可以作为loss训练模型。需要格外注意的是loss值的大小毫无意义,只有梯度值才是决定模型学习的方向。只是,一般情况下loss与梯度呈现正相关,loss大,则梯度也大。在线性回归中,y_pred的shape与y_true是一模一样的。需要注意pytorch的系统函数中在线性回归中对label的的数值类型没有限制。

1.1 mse的使用

当用mse为评价指标时,才用考虑异常值取平方的影响。做loss时,其导数是2*w,对于梯度的影响并没有像loss那样离谱。

梯度大的时候对异常值敏感,(1000-100)=900mse loss=(1000-10)^2=8100 
mse loss下梯度值为 2*1000-2*10=1980,可以看出离群点影响大【可以检出异常值,低漏检高误检】,或许会导致梯度爆炸
当离群点是本身就存在异常数据,是可取的(过度关注异常点数据)
梯度值大于x的本身值,容易梯度下降过程中导致震荡(需要吧学习率调小)

import torch
from torch import nn
torch.manual_seed(50) #随机种子确保每次input tensor值是一样的
preds = torch.randn((4,), dtype=torc

标签:11,loss,梯度,回归,torch,CrossEntropyLoss,线性,mse
来源: https://blog.csdn.net/a486259/article/details/122309180