赞
踩
在PyTorch中,transforms
模块主要用于对图像进行预处理和数据增强,以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等,以及对图像进行标准化处理。下面将详细介绍一些常用的transforms
操作及其应用。
transforms
操作torchvision.transforms
模块torchvision.transforms
模块提供了许多常用的图像转换函数,这些函数可以单独使用,也可以组合使用。
ToTensor: 将PIL图像或NumPy数组转换为Tensor。
from torchvision import transforms
transform = transforms.ToTensor()
Normalize: 对图像进行标准化处理,即减去均值并除以标准差。
transform = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
Resize: 调整图像大小。
transform = transforms.Resize((256, 256))
CenterCrop: 中心裁剪图像。
transform = transforms.CenterCrop(224)
RandomCrop: 随机裁剪图像。
transform = transforms.RandomCrop(224)
RandomHorizontalFlip: 随机水平翻转图像。
transform = transforms.RandomHorizontalFlip(p=0.5)
RandomRotation: 随机旋转图像。
transform = transforms.RandomRotation(degrees=30)
可以使用transforms.Compose
将多个转换操作组合在一起,形成一个转换流水线。
from torchvision import transforms
transform = transforms.Compose([
transforms.Resize((256, 256)),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
假设有一个图像数据集,并希望对其进行预处理和数据增强。可以使用上述转换操作来创建一个转换流水线,并将其应用于数据集。
from torchvision import datasets, transforms from torch.utils.data import DataLoader # 定义转换操作 transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.RandomCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 加载数据集 dataset = datasets.ImageFolder(root='path/to/dataset', transform=transform) dataloader = DataLoader(dataset, batch_size=32, shuffle=True) # 训练模型 for images, labels in dataloader: # 训练代码 pass
如果内置的转换操作不能满足需求,还可以自定义转换操作。自定义转换操作需要继承torchvision.transforms.Transform
类,并实现__call__
方法。
from torchvision import transforms
from PIL import Image
class CustomTransform(transforms.Transform):
def __call__(self, img):
# 自定义转换操作
img = img.filter(ImageFilter.GaussianBlur(radius=2))
return img
transform = transforms.Compose([
transforms.Resize((256, 256)),
CustomTransform(),
transforms.ToTensor()
])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。