Использование BCEWithLogitsLoss для задачи с несколькими метками PyTorch - PullRequest
0 голосов
/ 27 июня 2019

У меня есть набор данных, который содержит изображения и 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()

Будет ли этот подход правильным для мульти-лейблов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...