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

使用DatasetFromFolder()函数加载图像数据集的Python代码示例

发布时间:2023-12-24 07:38:12

DatasetFromFolder()是一个用于加载图像数据集的PyTorch函数。该函数根据指定的文件夹路径,自动将文件夹内的图像数据转换为PyTorch中的Dataset对象,方便进行后续的数据处理和训练。

下面是使用DatasetFromFolder()函数加载图像数据集的Python代码示例:

import torch
from torchvision import transforms
from torchvision.datasets import DatasetFolder
from torch.utils.data import DataLoader

def main():
    # 定义数据预处理的transform对象
    transform = transforms.Compose([
        transforms.Resize((256, 256)),  # 将图像的尺寸调整为256x256
        transforms.ToTensor(),  # 将图像转换为Tensor类型
        transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])  # 将图像像素值进行归一化
    ])

    # 创建Dataset对象
    dataset = DatasetFolder(root='path/to/folder', transform=transform)

    # 创建DataLoader对象
    dataloader = DataLoader(dataset, batch_size=32, shuffle=True)

    # 遍历数据集
    for images, labels in dataloader:
        # 在此处进行模型训练或其他数据处理操作
        pass

if __name__ == '__main__':
    main()

在以上代码中,首先我们定义了一个transform对象,用于对图像数据进行预处理操作。在这个例子中,我们将图像的尺寸调整为256x256,并将图像转换为Tensor类型,并对图像像素值进行归一化操作。

接下来,我们创建了一个DatasetFolder对象,通过指定数据集所在的文件夹路径来加载图像数据集。DatasetFolder是PyTorch中自带的一个用于加载带有文件夹结构的数据集的类。

最后,我们使用DataLoader对象来批量加载数据,在每一次迭代中,会返回一个batch的图像数据以及对应的标签,可以在其中进行模型训练或其他数据处理操作。

值得注意的是,为了使用DatasetFolder,我们需要将数据集按照一定的文件夹结构进行组织。例如,如果我们有一个包含两个类别(如猫和狗)的图像数据集,可以按照以下方式组织文件夹结构:

path/to/folder/
   |-- cat/
   |    |-- cat_image1.jpg
   |    |-- cat_image2.jpg
   |    |-- ...
   |
   |-- dog/
        |-- dog_image1.jpg
        |-- dog_image2.jpg
        |-- ...

以上就是使用DatasetFromFolder()函数加载图像数据集的示例代码。通过该代码,我们可以方便地加载并处理图像数据集,为后续的模型训练或其他任务提供便利。