torchvision库学习之transforms.Compose(模块)
一、简介
transforms.Compose
是 torchvision
库中的一个模块,用于将多个图像变换操作组合在一起。它允许用户将一系列图像变换操作按顺序应用于图像数据,简化了数据预处理流程。
二、语法和参数
语法
transforms.Compose(transforms)
参数
transforms
:一个包含多个图像变换操作的列表,这些操作将按顺序应用于输入图像。
三、实例
3.1 将图像转换为张量并归一化
- 代码
from torchvision import transforms
from PIL import Image
import torch
# 定义变换操作
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# 加载图像
image = Image.open('2015_00097.jpg')
# 应用变换操作
transformed_image = transform(image)
# 输出变换后的张量
print(transformed_image.shape)
- 输出
# 输出一个归一化后的张量,形状为 (3, H, W)
3.2 图像随机裁剪和水平翻转
- 代码
from torchvision import transforms
from PIL import Image
# 定义变换操作
transform = transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip()
])
# 加载图像
image = Image.open('example.jpg')
# 应用变换操作
transformed_image = transform(image)
# 显示变换后的图像
transformed_image.show()
- 输出
# 显示一个随机裁剪并水平翻转后的图像
四、注意事项
transforms.Compose
中的变换操作将按顺序应用,因此顺序非常重要。- 确保输入图像的格式与变换操作的要求一致,例如
transforms.ToTensor()
期望输入是 PIL 图像。 - 在使用
transforms.Normalize
时,需要提供正确的均值和标准差,这些值通常根据预训练模型的要求来设置。