计算分割模型交叉熵损失时,输入的预测结果和标签tensor的形状不一样问题

self.seg = nn.CrossEntropyLoss()#分割loss

loss_seg_value = self.seg_ratio * self.seg.forward(mask_pred, mask_gt)

这个mask_pred是[1,4,224,224,128],因为分割区域有4个,预测会得到每个区域的概率,但是mask_gt是[1,224,224,128],没有进行one-hot编码,这两个可以直接输入nn.CrossEntropyLoss()里,交叉熵函数会自动处理。但是dice loss在pytorch库里没有,需要自己写,所以要将mask_gt进行one-hot编码后再算。

你可能感兴趣的:(深度学习,人工智能)