PyTorch 图片预处理:加载、裁剪、缩放、标准化和打包
以下是一段示例代码,它会加载多张图片、裁剪、缩放、标准化、转换为张量并打包成数据集,以便输入到 PyTorch 模型中:
import os
from PIL import Image
import torch
from torchvision import transforms
# 设置路径和变换
data_dir = 'path/to/data'
transform = transforms.Compose([
transforms.CenterCrop(224), # 裁剪为 224x224 像素
transforms.Resize(256), # 缩放为 256x256 像素
transforms.ToTensor(), # 转换为张量
transforms.Normalize( # 标准化
mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]
)
])
# 加载图片并应用变换
dataset = []
for filename in os.listdir(data_dir):
if filename.endswith('.jpg'):
img = Image.open(os.path.join(data_dir, filename))
img = transform(img)
dataset.append(img)
# 打包成数据集并输入到 PyTorch 模型中
loader = torch.utils.data.DataLoader(dataset, batch_size=16, shuffle=True)
for batch in loader:
output = model(batch)
在这个示例代码中,我们:
- 设置了数据路径和变换(裁剪、缩放、标准化、转换为张量)。
- 遍历了数据目录,加载每张图片并应用变换。
- 将变换后的图片打包成数据集,使用 PyTorch 的 DataLoader 进行批量加载。
- 将每个批次输入到 PyTorch 模型中,进行预测或训练。
原文地址: https://www.cveoy.top/t/topic/nix6 著作权归作者所有。请勿转载和采集!