PyTorch学习笔记:nn.MarginRankingLoss——排序损失
创始人
2024-05-25 07:36:21
0

PyTorch学习笔记:nn.MarginRankingLoss——排序损失

torch.nn.MarginRankingLoss(margin=0.0, size_average=None, reduce=None, reduction='mean')

功能:创建一个排序损失函数,用于衡量输入x1x_1x1​与x2x_2x2​之间的排序损失(Ranking Loss),输入的第三个参数yyy控制顺序还是逆序,因此yyy的取值范围为y∈{1,−1}y\in\{1,-1\}y∈{1,−1}。

损失函数
loss(x1,x2,y)=max⁡(0,−y∗(x1−x2)+margin)loss(x_1,x_2,y)=\max(0,-y*(x_1-x_2)+\text{margin}) loss(x1​,x2​,y)=max(0,−y∗(x1​−x2​)+margin)
当期望x1>x2x_1>x_2x1​>x2​,即排序为顺序时,应该传入y=1y=1y=1;当期望x1

输入:

  • margin:差额值,具体用法如公式所示,如果该值越大,则表示期望x1x_1x1​与x2x_2x2​越远,即差额越大。输入数据类型为float,默认为0;
  • size_averagereduce已被弃用,具体功能由reduction替代
  • reduction:指定损失输出的形式,有三种选择:none|mean|sumnone:损失不做任何处理,直接输出一个数组;mean:将得到的损失求平均值再输出,会输出一个数;sum:将得到的损失求和再输出,会输出一个数

注意:

  • 输入的x1x_1x1​、x2x_2x2​与yyy必须是一维的数据,并且三个数据长度必须一致,数据长度表示batchbatchbatch大小

代码案例

一般用法

import torch
import torch.nn as nn# reduction设为none便于查看每个位置损失计算的结果
rankloss = nn.MarginRankingLoss(reduction='none')
x1 = torch.randn(10)
x2 = torch.randn(10)
# 随机生成10个0,1数据
y = torch.randint(0, 2, [10])
# 将y中数据为0的位置赋值为-1
y[y==0] = -1
loss = rankloss(x1, x2, y)
print(x1)
print(x2)
print(y)
print(loss)

输出

# x1
tensor([-1.2248, -1.4788,  0.1703,  0.1072, -0.2147,  0.7527, -1.2443,  0.8361, 0.3679,  0.5935])
# x2
tensor([-0.3616, -0.0333,  0.8483,  0.9880,  0.6980, -0.5157,  0.1767,  0.2060, -0.4908,  1.1774])
# y
tensor([ 1, -1,  1, -1,  1, -1,  1, -1,  1, -1])
# 对应位置的损失计算结果
tensor([0.8631, 0.0000, 0.6780, 0.0000, 0.9127, 1.2684, 1.4210, 0.6301, 0.0000, 0.0000])

官方文档

nn.MarginRankingLoss:https://pytorch.org/docs/stable/generated/torch.nn.MarginRankingLoss.html#torch.nn.MarginRankingLoss

初步完稿于:2022年2月6日

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...