前言
之前我们在《pytorch框架学习(6)细节篇》里有提过torchvision.transforms.Compose可以用于对数据进行预处理。本片文章我们将系统的对transform进行学习。
** Transforms的结构**
我们打开transforms.py的源文件可以看到,文件中定义了非常多的class
** Transforms的作用**
transforms就相当于一个图像处理的工具箱,不同的class就是不同的工具。
** Transforms的用法**
transforms.Compose
将几个变换组合在一起。这个转换不支持torchscript
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]
Example:
>>> transforms.Compose([
>>> transforms.CenterCrop(10),
>>> transforms.ToTensor(),
>>> ])
注意:transforms.Compose的参数应该是一个list(列表)
transforms.ToTensor
转换一个’PIL.Image’或’numpy.ndarray’张量。这个转换不支持torchscript。
transforms.Normalize
用均值和标准差归一化tensor image。
transforms.Resize
调整输入图像的大小到给定的大小。
the image can be a PIL Image or a torch Tensor, in which case it is expected to have […, H, W] shape, where … means an arbitrary number of leading dimensions
- 这个地方要说一下,Resize使用的是双线性插值,如果是做分类问题,有可能出现分割标签出现问题的情况
总结来说,我们在调用这些包的时候,我们需要重点注意输入输出的type。