【Pytorch】3.Transforms的运用

什么是Transforms

在PyTorch中,transforms是用于对数据进行预处理、增强和变换的操作集合。transforms通常用于数据载入和训练过程中,可以包括数据的归一化、裁剪、翻转、旋转、缩放等操作,以及将数据转换成PyTorch可以处理的Tensor格式。

Transforms的使用

首先导入包

py 复制代码
from torchvision import transforms

实际上是导入了一个文件,文件名为transforms,我们目前主要查看一下其中的ToTensor

我们可以查看一下其中的源码

我们可以看到这个类的主要作用是 将PIL Image或者是numpy.ndarray类型转化为tensor类型

其中的__call__方法,类似于c++重载()运算符

使用PIL image格式

具体的使用就可以通过

py 复制代码
from PIL import Image
from torchvision import transforms

img_path = "dataset/hymenoptera_data/train/ants/0013035.jpg"
PIL_img = Image.open(img_path)
tensor_tans = transforms.ToTensor()     # 通过transforms中的ToTensor类创建一个对象
img = tensor_tans(PIL_img)     # __call__方法类似于c++中重载了()运算符,我们只需要传入PIL_img格式的图像就可以输出tensor格式的图像

print(img)

我们就可以成功地转化为Tensor格式了

使用numpy.ndarray格式

首先我们要先通过pip安装opencv-python这个库,在终端输入

复制代码
pip install opencv-python

安装成功后导入包

py 复制代码
import cv2

然后使用

py 复制代码
cv_img = cv2.imread(img_path)

创建出来的图片格式就是numpy.ndarray格式

为什么要使用Tensor数据类型

Tensor数据类型包括了我们训练神经网络的一系列参数,以及训练神经网络所需要的格式,这是刚刚我们的格式所不具备的

相关推荐
天疆说11 小时前
Ubuntu 26.04 下 Intel Meteor Lake 核显 + NPU 驱动配置与 PyTorch NPU 推理实测
linux·pytorch·ubuntu
大数据专业的小沉14 小时前
解决PyCharm 2024.1 打开项目后持续卡顿,UI 无响应,编辑延迟明显
ide·python·pycharm
郝学胜_神的一滴16 小时前
Python 高级编程 027:四大推导式全攻略
python·pycharm
程序猿编码18 小时前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
zhangfeng113318 小时前
Windows AMD显卡跑PyTorch
人工智能·pytorch·windows
前进再前进1 天前
PyCharm 连接 HPC 时 Path to conda 一直转圈:一次 Remote Development 解决方案记录
pycharm
Swift社区2 天前
Python 开发环境怎么选?PyCharm、VS Code、Trae 谁更适合 AI 开发?
人工智能·python·pycharm
SMF19192 天前
【PyCharm】让 PyCharm 使用 .venv 虚拟环境
ide·python·pycharm
Eloudy2 天前
一键构建 pytorch cpp lib 前端和 wheel
人工智能·pytorch·gpu
FriendshipT2 天前
Ultralytics:解读 YOLO26 知识蒸馏
人工智能·pytorch·python·深度学习·yolo