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是基于同一个数学公式的,他们的功能是完全相同的。
上一篇: GMM
下一篇: Ant1-D3bug