文章目录
一、transforms是什么?
transforms 对应 transform.py 文件。可以理解成一个工具箱,里面定义的各种类和方法,可以处理图片,对图片进行加工,得到我们想要的结果。
常用的输入图片对象的数据类型
PIL : Image.open()
tensor : ToTensor()
ndarrays: cv.imread()
常用的Transform有:
1.ToTensor() :将图片对象类型转为 tensor
2.Normalize() :对图像像素进行归一化计算
3.Resize():重新设置 PIL Image的大小,返回也是PIL Image格式
4.Compose(): 输入为 transforms类型参数的列表,
关于transforms的导入如下
from torchvisoin import transforms
二、Tensor
1.为何引入tensor类型的变量呢
深度学习引入tensor类型的变量是因为深度学习模型中涉及大量的矩阵运算和张量运算。Tensor(张量)是多维数组的抽象表示,可以表示各种数据类型,如标量(0维张量)、向量(1维张量)、矩阵(2维张量)以及更高维度的数组。在深度学习中,神经网络的参数和输入数据都可以表示为张量,通过张量操作可以高效地进行大规模数据的运算和处理。
Tensor数据类型还包装了神经网络需要的一些参数,如下图。
Tensor类型的变量具有以下优点:
- 支持并行计算:张量运算可以在GPU等并行计算设备上高效执行,加速深度学习模型的训练和推理过程。
- 灵活性:张量可以表示不同维度的数据,适用于各种深度学习任务,如图像处理、自然语言处理等。
- 数学表达能力:张量操作支持各种数学运算,如矩阵乘法、逐元素操作等,方便构建复杂的神经网络模型。
因此,引入tensor类型的变量可以更好地满足深度学习模型对数据表示和运算的需求,提高模型的效率和灵活性。
2.代码示例
代码如下(示例):
from torchvision import transforms
from PIL import Image
img_path = "S:/pythonProject/1.png"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor() #创建工具
tensor_img = tensor_trans(img