作者:dghghjkk_952 | 来源:互联网 | 2022-12-18 17:25
MultiLabelSoftMarginLoss针对multi-labelone-versus-all(多分类,且每个样本只能属于一个类)的情形。loss的计算公式如下:其中,x是
MultiLabelSoftMarginLoss针对multi-label one-versus-all(多分类,且每个样本只能属于一个类)的情形。
loss的计算公式如下:
![pytorch中的loss函数(1):MultiLabelSoftMarginLoss pytorch中的loss函数(1):MultiLabelSoftMarginLoss](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpVNU1pOWxNekF4TXpjMU9UVXlPR1UzWkdWaE0yRTBaV1l6T1RZNU16Y3dPRGhrTUM1bmFXWT0=)
其中,x是模型预测的标签,x的shape是(N,C),N表示batch size,C是分类数;y是真实标签,shape也是(N,C),
。
的值域是(0,
);
的值域是(1,
);
的值域是(0,1);
的值域是(-
,0),函数曲线如图1所示:
图1为了看得更清楚一点,再画一下[-10,10]范围内的曲线,如图2:
图2当y[i]=1得时候,x[i]越大==》
越大==》loss越小(因为
前面有个负号);
的函数曲线如图3所示:
![pytorch中的loss函数(1):MultiLabelSoftMarginLoss pytorch中的loss函数(1):MultiLabelSoftMarginLoss](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THprd05pODRZV000TURNeU9URXpNVFV6WkdZMU4yRTFaamxrTkRJME5UQmxaV0UwTWk1d2JtYz0=)
[-10,10]范围内的曲线,如图4所示:
![pytorch中的loss函数(1):MultiLabelSoftMarginLoss pytorch中的loss函数(1):MultiLabelSoftMarginLoss](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRME15OWxZelpqWm1Rek9XTTVNRFk1WXpZM1lqUTRaamRtTXpBMU1UbGpZVEZsTXk1d2JtYz0=)
当y[i]=0得时候,x[i]越小==》
越大==》loss越小(因为
前面有个负号);