1.首先看源代码:
点transform进入的内容是:
在ctrl再选中圈出来的.transforms就可以了,进入transform.py文件,其实torchversion.transforms包 的实现就是在这个transform.py文件中
2.介绍Compose类:
这个类就是将多个transforms结合到一起,就像他举的例子一样,将ransforms.CenterCrop(10)和transforms.Totensor()两个transforms结合到一起,ransforms.CenterCrop(10)的输出就是transforms.Totensor()的输入。
3.ToTensor 类:
将一个 PIL.Image类型或者numpy.array类型的数据转换成为tensor类型
4. transforms 常用的类 :
5. 这里还有一些关于:
transforms中Normalize类:(11:29处):常见的Transforms(一)_哔哩哔哩_bilibili
transforms中Risize类:(0:0处)常见的Transforms(二)_哔哩哔哩_bilibili
RandomCrop类:(10:36处)常见的Transforms(二)_哔哩哔哩_bilibili
6. transform的用法:
(1)背景知识:什么是tensor数据类型:
为什么我们需要tensor数据类型:如下图所示:第一张图显示的是PIL.Image格式下的图的描述,第二章图显示的是tensor格式下的图的描述。我们可以明显发现 tensor数据类型包含了一些神经网络训练时需要的内容,如梯度grad等等
PIL.Image:
tensor格式:
(2)背景知识__call__()函数 是什么?
以下面这段代码为例可以解释一下:
简言之就是,如果有实现__call__()函数,那么就可以直接用实例传参数调用
(3)如何使用transform :
首先通过调用transform中的类来实例化一个实例,作为当下要使用的工具
(当然个各类实例化时需要的参数或者注意事项各不相同,需要自己查阅一下官方的文档)
然后利用这个实例化的工具对要处理的内容进行处理
- from torchvision import transforms
- from PIL import Image
-
- img_path = "2222.jpg" #图片的相对路径
- img = Image.open(img_path)
- print((img))
-
- tensor_trans = transforms.ToTensor() #调用transform中的ToTensor类,来实例化出一个实例tensor_trans,作为当下将PIL.Image转换为tensor类型数据所要使用的工具
-
- tensor_img = tensor_trans(img)
- print(tensor_img)