欢迎访问宙启技术站
智能推送

使用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]获取指定索引的样本。在示例中,获取了 个样本的图像和标签。