使用DatasetFromFolder()函数加载数据集中的文件夹数据集
发布时间:2023-12-24 07:38:42
DatasetFromFolder()是PyTorch中用于加载文件夹数据集的函数。它将一个文件夹中的图像数据加载为PyTorch中的Dataset对象,可以方便地进行数据预处理和数据增强操作。
使用DatasetFromFolder()函数需要先安装torchvision库,可以使用以下命令进行安装:
pip install torchvision
下面是一个使用DatasetFromFolder()函数加载数据集的示例:
import torchvision.transforms as transforms
from torchvision.datasets import DatasetFromFolder
from torch.utils.data import DataLoader
# 数据预处理
transform = transforms.Compose([
transforms.Resize((256, 256)), # 调整图像大小为256x256
transforms.RandomCrop((224, 224)), # 随机裁剪图像为224x224
transforms.RandomHorizontalFlip(), # 随机水平翻转图像
transforms.ToTensor(), # 将图像转换为Tensor
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), # 图像标准化
])
# 加载训练集数据
train_dataset = DatasetFromFolder(root='train/', transform=transform)
train_loader = DataLoader(dataset=train_dataset, batch_size=32, shuffle=True)
# 加载验证集数据
valid_dataset = DatasetFromFolder(root='valid/', transform=transform)
valid_loader = DataLoader(dataset=valid_dataset, batch_size=32, shuffle=False)
# 加载测试集数据
test_dataset = DatasetFromFolder(root='test/', transform=transform)
test_loader = DataLoader(dataset=test_dataset, batch_size=32, shuffle=False)
在上述示例中,我们先定义了一个数据预处理的transform对象,其中包含了图像大小调整、随机裁剪、随机水平翻转、图像转换为Tensor和图像标准化的操作。
然后,我们使用DatasetFromFolder()函数分别加载了训练集、验证集和测试集的数据。其中,root参数指定数据集所在的文件夹路径,transform参数指定数据预处理的操作。加载完成后,我们可以使用DataLoader对象将数据集的样本划分为mini-batch,并在训练过程中进行迭代。
需要注意的是,在加载数据集时,文件夹的结构应满足以下形式:
root/
class1/
image1.jpg
image2.jpg
...
class2/
image1.jpg
image2.jpg
...
...
具体而言,root路径下应包含每个类别的子文件夹,每个子文件夹中放置该类别的图像文件。
通过使用DatasetFromFolder()函数,我们可以方便地加载文件夹数据集,并对图像进行预处理和增强,以便用于训练、验证和测试模型。
