欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CV计算机视觉(2)——图像分类中的多标签分类任务

程序员文章站 2024-03-25 08:13:22
...

多标签任务

每个图片有多个标签,而且标签个数不固定,如果一共有C类,那么每张图片最多可以有2的C次方个标签。其编码方式也可采用ONEHOT编码,只不过向量中有多个位置是1.

多标签任务VS单标签任务

1.每张图片的类别数不固定,单标签每张图片只对应一个类别,多标签每张图片对应多个类别,好比一个是单选,一个是不定项多选
2.多标签的类别之间可能有依赖关系,而这些依赖关系不一定是先验的
3.多标签的标注难度大
4.多标签的输出维度高

多标签任务的pytorch接口实现

#MULTI-LABEL
#multi-labelSoftmarginloss
outputs = torch.randn(10,5) #十张图片,5个类别
labels = torch.FloatTensor(10,3).random_(2) #不定项选择生成labels
print(labels)
my_BCEloss = torch.nn.BCELoss(reduction='mean')
my_multisoftmaxloss = torch.nn.MultiLabelSoftMarginLoss(reduction='mean')
print(my_BCEloss(outputs,labels))
print(my_multisoftmaxloss(outputs,labels))

可以看出,pytorch提供的多标签接口MultiLabelSoftMarginLoss和二分类接口的BCEloss是基于同一个数学公式的,他们的功能是完全相同的。

相关标签: 14周AI人工智能

上一篇: GMM

下一篇: Ant1-D3bug