【发布时间】:2021-11-21 15:48:16
【问题描述】:
当每个标签应该返回超过 1 个类别时,如何训练多标签分类模型? 例子: 图像分类有 2 个标签:4 类的样式和 5 类的布局。 列表中的图像应返回 2 种样式和 3 种布局,例如 [1 0 1 0] [1 1 0 0 1]
我的样品网:
class MyModel(nn.Module):
def __init__(self, n__classes=32):
super().__init__()
self.base_model = models.resnet50(pretrained=True).to(device)
last_channel = self.base_model.fc.in_features
self.base_model.fc = nn.Sequential()
self.layout = nn.Sequential(
nn.Dropout(0.2),
nn.Linear(last_channel, n_classes_layout),
nn.Sigmoid()
)
self.style = nn.Sequential(
nn.Dropout(0.2),
nn.Linear(last_channel, n_classes_style),
nn.Sigmoid()
)
def forward(self, x):
base = self.base_model(x)
return self.layout(base), self.style(base)
def loss_fn(outputs, targets):
o1, o2 = outputs
t1, t2 = targets
【问题讨论】:
-
这是多标签分类的定义,与多类不同,样本只能属于一个类。我建议您先做一些研究 - 这个问题对于 SO 来说太模糊和太宽泛了。
标签: deep-learning pytorch image-classification