pytorch , 图片加载器使用举例
在PyTorch中,图片的加载通常通过使用torchvision
库的ImageFolder
或Dataset
以及DataLoader
类来完成。下面是一个简单示例,其中包括了图片的加载、转换以及批量读取:
import torch
from torchvision import datasets, transforms
# 定义一个transform来预处理你的数据
# 这里只做了ToTensor()转换,将图片从PIL格式转为Tensor,并将像素值正规化至[0,1]。
transform = transforms.Compose([transforms.ToTensor()])
# 使用ImageFolder加载数据,假设'path/to/data_directory'是你的数据目录,
# 并且该目录下有各个类别的子目录,每个子目录中是属于同一类别的所有图片。
dataset = datasets.ImageFolder('path/to/data_directory', transform=transform)
# 创建一个DataLoader,它可以高效地生成批次数据进行训练
dataloader = torch.utils.data.DataLoader(dataset, batch_size=32, shuffle=True)
# 你可以这样遍历批次数据:
for inputs, labels in dataloader:
# 在这里,inputs是一个尺寸为[batch_size, channels, height, width]的张量,
# labels是一个尺寸为[batch_size]的张量。
# 现在你可以在这里使用你的模型进行预测或训练等操作...
pass
请注意,你需要将'path/to/data_directory'
替换为你的实际图片数据目录。在这个目录下,应该有若干个子目录,每个子目录的名字是类别标签,里面包含属于该类别的所有图片。
此外,transforms.Compose()
函数允许你组合多种预处理操作。除了ToTensor()
,还有很多其他的转换可以使用,例如Normalize()
、Resize()
、RandomCrop()
等,可以根据需求进行添加。