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

使用DatasetFromFolder()函数加载数据集中的图像文件

发布时间:2023-12-24 07:37:45

要使用DatasetFromFolder()函数加载数据集中的图像文件,需要先安装和导入必要的库。

首先,需要导入以下库:

import torch
import torchvision.transforms as transforms
import torchvision.datasets as datasets

然后,可以使用以下代码创建DatasetFromFolder()函数:

class DatasetFromFolder(torch.utils.data.Dataset):
    def __init__(self, folder_path, transform=None):
        self.data = datasets.ImageFolder(root=folder_path, transform=transform)
        
    def __getitem__(self, index):
        return self.data[index]
    
    def __len__(self):
        return len(self.data)

DatasetFromFolder()类继承自torch.utils.data.Dataset类,重写了__init__(), __getitem__()__len__()方法来加载和返回图像数据。

参数说明:

- folder_path:数据集文件夹的路径。

- transform:要应用于图像数据的转换。例如,可以使用transforms.Compose()函数将数据调整为模型所需的大小和格式。

接下来,我们可以使用以下代码加载示例数据集并进行一些转换:

# 定义数据集文件夹路径和转换
folder_path = "path/to/dataset"  # 数据集文件夹路径
transform = transforms.Compose([
    transforms.Resize((224, 224)),  # 调整大小为224x224
    transforms.ToTensor(),  # 转换为张量
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 标准化
])

# 创建数据集对象
dataset = DatasetFromFolder(folder_path, transform=transform)

# 获取数据集的长度
dataset_length = len(dataset)
print("数据集长度:", dataset_length)

# 获取      个图像和标签
first_image, first_label = dataset[0]
print("      个图像:", first_image)
print("对应标签:", first_label)

在上述代码中,我们定义了数据集文件夹的路径folder_path和一个将被应用于图像数据的转换transform,其中包括将图像调整为224x224大小、转换为张量和进行标准化的操作。然后,我们根据指定的文件夹路径和转换创建了DatasetFromFolder对象,并打印出了数据集的长度和 个图像及其对应的标签。

这样,我们就可以使用DatasetFromFolder()函数加载数据集中的图像文件了。当然,在实际使用过程中,你可能需要根据自己的需求进行适当的调整和扩展。