Я пытаюсь использовать Unet ++ для семантической сегментации.
shape: [N, H, W] i.e: [16, 256, 256]
target shape: [N, 1, H, W] i.e: [16, 1, 256, 256]
output shape: [N, 1, H, W] i.e: [16, 1, 256, 256]
loss function: BCEWithLogitsLoss
Я обучил свою модель с использованием этой модели архитектуры с deepsupervision . И он отлично работает для 2 классов.
Теперь я пытаюсь использовать эту обученную модель для 3 классов .
Я преобразовал свою маскузначение в пикселях уже соответствует значению класса. Итак, новая форма цели становится [N, H, W] i.e: [16, 256, 256]
Теперь я не понимаю, как я мог бы использовать эту же модель для 3 класса . Как и в архитектуре модели, out_channels = 1, который является фиксированным.
Я пробовал с
class_number = 3
model.final1.out_channels = class_number
model.final2.out_channels = class_number
model.final3.out_channels = class_number
model.final4.out_channels = class_number
Но похоже, что он все еще генерирует вывод в [16, 1, 256, 256]
, который я надеялся получить [16, 3, 256, 256]
Я новичок в PyTorch,Так что ваши предложения будут высоко оценены.
Заранее спасибо.