Transforms的结构和用法

目录

一、Transforms是什么?

二、使用步骤

1.引入库

2.tensor数据类型

2.1 transforms该如何使用

2.2 为什么需要tensors数据类型。


一、Transforms是什么?

Transforms主要是对图片进行一些变换,一般用于数据预处理,数据在读取到pytorch之后通常都需要对数据进行预处理,包括尺寸缩放、转换张量、数据中心化或标准化等等,这些操作都是通过transforms进行的。

二、使用步骤

1.引入库

代码如下(示例):

from torchvision import transforms

从torchvision中引用transforms函数。

注:transforms.py就像是一个工具箱,里面有很多工具:
 ToTensor()的使用:这个模块的主要作用主要就是将 PIL Image 或者numpy.ndarry 的图像类型转变成tensor的类型格式;
 Resize()的使用:输入一张图片,将图片转变为指定的大小。如果只传入一个参数,就将最小边变成size,最大边等比例变成原来最小边的倍数;

2.tensor数据类型

通过transforms.Totensor去解决两个问题:(1)transforms该如何使用;(2)我们为什么需要tensors数据类型。

2.1 transforms该如何使用

从transforms中选择一个class,首先对它创建,根据创建的工具知道需要什么东西,返回出结果。
可以理解为,transforms.py是一个工具箱,里面有很多工具,像ToTensor/Resize等,可以将这些工具看成模板,利用这些模板来创建我们需要的工具,根据这些工具的使用方法,输入数据,输出结果。

代码如下(示例):

(PIL Image数据处理):
from PIL import Image
from torchvision import transforms

img_path = "train/ants/0013035.jpg"
img = Image.open(img_path)

tensor_trans = transforms.ToTensor() # 引用transforms中的totensor,返回的是totensor的
对象。可以理解为用tensor_trans 接收totensor的对象。
tensor_img = tensor_trans(img)  # 将img图片转换成tensor格式。(鼠标放括号里,ctrl+p可
以查看需要什么括号里需要什么参数。)
print(tensor_img)  # 查看tensor_img的数据类型

numpy.ndarrary数据处理:(最常用的是opencv)
可以在python console中调试,代码如下:
import cv2
img_path = "train/ants/0013035.jpg"
cv_img = cv2.imread(img_path)
print(type(cv_img))


2.2 为什么需要tensors数据类型。


因为在神经网络当中,肯定要将数据转化为tensor的类型,才能继续处理,进行训练。

你可能感兴趣的:(PyTorch学习,python,开发语言)