用了一段时间PYTORCH,感觉这个开始用着很得劲的,所以把BUG梳理一下,再接再厉,祝大家写的一手好BUG,
并能调的通。- —— -
图像分割任务相对特殊的就是他的标签,是类别图,这也是pytorch有意思的一点。
pytorch的NLLLoss2d用来做n类图像分割,接受的每个数据的标签是 W x H 的标签图,每个像素上是该元素的类别号从0开始,到C-1,官方文档是这么描述的:
#Input: (N,C,H,W) where C = number of classes
#Target: (N,H,W) where each value is 0 <= targets[i] <= C-1
所以这种标签图mask在转tensor的时候不能用ToTensor,直接用torch.from_numpy(mask)就好啦。
下为我用的代码的这一部分(放在继承类class MyFolder(ImageFolder)的def __getitem__(self, index)里),写的不好,还请指正: