"""Convert a ``PIL Image`` or ``numpy.ndarray`` to tensor. Converts a PIL Image or numpy.ndarray (H x W x C) in the range [0, 255] to a torch.FloatTensor of shape (C x H x W) in the range [0.0, 1.0] if the PIL Image belongs to one of the modes (L, LA, P, I, F, RGB, YCbCr, RGBA, CMYK, 1) or if the numpy.ndarray has dtype = np.uint8 In the other cases, tensors are returned without scaling. """
也就是说,当该函数的输入为numpy.ndarray (H x W x C) np.uint8或者PIL Image(L, LA, P, I, F, RGB, YCbCr, RGBA, CMYK, 1)的时候,会对数据进行归一化处理。对于图像分割任务,一二分类为例,当类标为{0,1}的时候,满足以上条件,照样会对数据进行预处理。此时,类标就会变成很小的数,导致网络预测出的结果全为0。
在这学期刚开始的时候深入接触了TensorFlow的session和graph概念,虽然相比之前对Tensorflow有了更加深刻的理解。但是有的时候写起来代码还是不能随心所欲。幸好后来接触到了Pytorch框架,感觉设计的很少优雅,清晰易懂,想怎么写怎么写~再加上前段时间好好学习了什么是交叉熵。下面对Pytorch的损失函数进行详细的总结。其中大部分内容均来自于pytorch loss function 总结,然后会加上一些自己的看法。