使用DatasetFromFolder()函数生成PyTorch中的文件夹数据集
发布时间:2023-12-24 07:37:53
在PyTorch中,可以使用torchvision.datasets.DatasetFolder类来创建文件夹数据集。该类是torch.utils.data.Dataset的子类,可以方便地从文件夹中加载数据。
torchvision.datasets.DatasetFolder类使用torchvision.datasets.DatasetFolder(root, loader, extensions=None, transform=None, target_transform=None, is_valid_file=None)进行实例化。下面是每个参数的详细说明:
- root:文件夹的根目录,其中包含带有目标类标签的子文件夹。
- loader:自定义函数,用于加载文件的数据。
- extensions:可选参数,用于筛选要加载的文件扩展名列表。
- transform:可选参数,用于对加载的数据执行转换操作。
- target_transform:可选参数,用于对目标类标签进行转换操作。
- is_valid_file:可选参数,用于过滤加载的文件。
下面是一个使用DatasetFolder类创建文件夹数据集的例子:
import torch
from torchvision.datasets import DatasetFolder
from torchvision.transforms import ToTensor
# 定义转换操作
transform = ToTensor()
# 创建文件夹数据集
dataset = DatasetFolder(
root='path/to/folder',
loader=torch.load,
extensions='.pt',
transform=transform
)
# 获取数据集的长度
print("数据集大小:", len(dataset))
# 获取 个样本
image, label = dataset[0]
print(" 个样本的尺寸:", image.size())
print(" 个样本的标签:", label)
在上述示例中,使用DatasetFolder类创建了一个文件夹数据集,将文件夹路径指定为root参数,并使用torch.load函数作为数据加载器。还使用.pt作为文件扩展名,并使用ToTensor()函数作为数据转换器。
然后,可以使用len(dataset)来获取数据集的长度,并使用dataset[index]获取指定索引的样本。在示例中,获取了 个样本的图像和标签。
