使用BCEWithLogitsLoss解决多标签问题PyTorch

时间:2019-06-27 18:57:28

标签: python pytorch

我有一个数据集,其中包含带有关联的标签和边界框的图像和xml文件。其中一些图像包含多个标签。

我设计了一个数据加载器,以从xml文件中提取注释。基于数据加载器,对于1批注释,输出如下所示:

{'boxes': tensor([[[444., 220.,  27.,  65.],
          [468., 220.,  26.,  66.],
          [415., 224.,  20.,  33.]]]), 
'id': tensor([[1., 1., 4.]])}

根据我的理解,我需要将BCEWithLogitsLoss用于多标签方法。

我遇到的问题是当有多个标签时如何计算损失。当是单个标签时,我将以下方法与CrossEntropy优化器结合使用:

    for i, data in enumerate(trainloader, 0):
        inputs, labels = data

        optimizer.zero_grad()
        outputs = net(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

这种方法是否适用于多标签?

0 个答案:

没有答案