我是新手,对分割模型不太了解。
我想使用 deeplabv3_resnet50 模型。
我的图像尺寸为 (256, 256, 3)
,标签尺寸为 (256, 256)
。标签中的每个像素都有一个类别值(0-4)。DataLoader 中设置的批量大小为 32。
因此,我的输入批量形状为 [32, 3, 256, 256]
,相应目标的形状为 [32, 256, 256]
。我认为这是正确的。
我试图使用 nn.BCEWithLogitsLoss()
。
- 这是我这种情况下正确的损失函数吗?还是应该使用
CrossEntropy
? - 如果这是正确的,那么模型的输出是
[32, 5, 256, 256]
。每个图像预测的形状为[5,256, 256]
,层 0 是否表示类别 0 的未归一化概率?为了使[32, 256, 256]
张量与目标匹配并输入到BCEWithLogitsLoss
中,是否需要将未归一化的概率转换为类别? - 如果我应该使用
CrossEntropy
,那么输出和标签的大小应该是多少?
谢谢大家。
[32, 256, 256]
(也许使用output.argmax(dim=1)),以匹配我的标签吗? - KKKcat