def forward(self, input, target): # input.size = target.size and size=(N,1,128,128,128) N = target.size(0) # N is batchsize smooth = 1 input_flat = input.view(N, -1) target_flat = target.view(N, -1) intersection = input_flat * target_flat loss = 2 * (intersection.sum(1) + smooth) / (input_flat.sum(1) + target_flat.sum(1) + smooth) loss = 1 - loss.sum() / N return loss
Hello, I train a semantic segmentation model and I use above BinaryDiceLoss to backward model parameters. But my model loss does not decline. The data input to the model is correct because loss is decline when I user another loss to backward. I want to know how to deal with this problem? Thank you. I want to know if above BinaryDiceLoss is correct?