Hello, i am new to Pytorch and i would like to use Pytorch for road segmentation. For image segmentation, do i need to transform the Ground Truth or label image with ToTensor() so it become 4 dimensions?, or just transform it to torch with long type value ? thanks for reply
If you are using e.g.
nn.CrossEntropyLoss as your criterion, your label image should contain the class indices and have the shape
[batch_size, height, width].
ToTensor() should not be called, since this would normalize the values to the range
Hey. thanks for your reply. So i followed your suggestion and my ground truth contains pixel with 0 and 255. i got an error in criterion steps
ValueError: Target size (torch.Size([1, 224, 224])) must be the same as input size (torch.Size([1, 2, 224, 224]))
does that mean that i have to transform my input image to Grayscale first ? because i notice the first dimension of RGB (3) became (2) in training steps .
Which criterion are you using?
The shape should be fine for a two class classification problem using
However, your target should contain the class indices in the range
[0, nb_classes-1], so
[0, 1] in your case.