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

通过DatasetFromFolder()函数快速处理图像数据集

发布时间:2023-12-24 07:36:27

DatasetFromFolder()函数是torchvision库中的一个函数,用来从文件夹中快速创建一个图像数据集。该函数可以方便地将图像数据集加载到内存中,并进行一些预处理操作,以便后续的模型训练或测试。

使用该函数需要安装torchvision库,可以通过以下命令进行安装:

pip install torchvision

下面我们来看一个使用例子,假设我们有一个包含两个类别的图像数据集,类别分别为cat和dog。数据集的文件结构如下所示:

dataset/
    cat/
        cat1.jpg
        cat2.jpg
        ...
    dog/
        dog1.jpg
        dog2.jpg
        ...

我们可以使用DatasetFromFolder()函数来加载这个数据集,并进行预处理。具体的代码如下所示:

import torch
import torchvision.transforms as transforms
from torchvision.datasets import DatasetFolder

# 定义图像的预处理操作
preprocess = transforms.Compose([
    transforms.Resize((256, 256)),  # 将图像大小调整为256x256
    transforms.ToTensor(),  # 将图像转换为tensor
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 归一化
])

# 加载图像数据集
dataset = DatasetFolder('dataset', loader=torchvision.datasets.folder.default_loader, extensions='.jpg', transform=preprocess)

# 打印数据集的类别和样本数量
print('类别:', dataset.classes)
print('样本数量:', len(dataset))

# 遍历数据集,并打印前5个样本的类别
for i in range(5):
    image, label = dataset[i]
    print('样本', i+1, '的类别:', dataset.classes[label])

在上面的代码中,我们首先定义了图像的预处理操作,包括将图像大小调整为256x256、转换为tensor以及归一化处理。然后,我们使用DatasetFolder()函数加载数据集,传入了数据集的文件夹路径、图像加载器、图像扩展名以及预处理操作。最后,我们打印了数据集的类别和样本数量,并遍历了数据集的前5个样本,打印了它们的类别。

使用DatasetFromFolder()函数可以快速方便地加载图像数据集,并进行预处理操作。它在深度学习中的应用非常广泛,可以用于图像分类、目标检测等任务中。希望通过上述的例子可以帮助你了解如何使用该函数。