I make a net for semantic segmentation . The loss function follow:
class CrossEntropyLoss2d(nn.Module):
def __init__(self, weight=None):
super().__init__()
self.loss = nn.NLLLoss2d(weight)
def forward(self, outputs, targets):
return self.loss(F.log_softmax(outputs), targets)
The value of loss function descend to 0.08,and the begining of training, the value is about 3.0
The dataset is pascal voc
My net output size is ( batch_size ,22,256,256) ,22 is class numbers.
Why I choose one channel of output, then I use transforms.ToPILImage(), the image.show() is a noisy.
I think the net is closed to convergence,but the decode image is a noisy
Please help me