我需要解决一个多类别标签问题,即:每张测试图像可以被分配1到10个非互斥的标签。
然而,我在使用 MultiLabelMarginCriterion 时遇到了问题,因为它不被 cunn 支持。因此,我正在寻找替代方法。以下两种方法是否有效?
-
计算训练集中所有标签的排列组合(约150种),并训练一个分类器来识别这150个类别。然而,我认为测试集中新的标签组合(训练集中未出现的)将无法被识别。
-
使用 BCECriterion 训练10个独立的二元分类器。即:每个标签训练一个分类器。将每张测试图像通过每个分类器并合并结果。然而,训练大量的卷积神经网络非常耗时。
回答:
我找到的最佳解决方案是使用 MSECriterion,其中目标和预测都是由1和-1组成的数组,分别表示标签的存在或不存在。