深度学习目标分类网络的数据集可以以多种格式存在,通常取决于数据集的规模和组织方式。以下是一些常见的数据集格式以及如何自定义读取和加载:

  1. 文件夹结构:

    • 描述: 每个类别的图像被存储在一个单独的文件夹中,文件夹的名称即为类别名称。
    • 自定义加载方法: 使用 PyTorch 的 datasets.ImageFolder 类。该类会自动为你处理数据加载和标签分配。
  2. CSV 文件:

    • 描述: 一个 CSV 文件包含图像文件路径和相应标签的信息。
    • CSV 格式: 例如,两列,一列是文件路径,另一列是标签。
      path,label
      /path/to/image1.jpg,0
      /path/to/image2.jpg,1
      ...
      
    • 自定义加载方法: 创建一个自定义的 Dataset 类,使用 Pandas 或 Python 内置的 CSV 模块加载 CSV 文件。
  3. JSON 文件:

    • 描述: 一个 JSON 文件包含图像文件路径和相应标签的信息。
    • JSON 格式: 例如,每个条目是一个包含文件路径和标签的字典。
      [
          {"path": "/path/to/image1.jpg", "label": 0},
          {"path": "/path/to/image2.jpg", "label": 1},
          ...
      ]
      
    • 自定义加载方法: 创建一个自定义的 Dataset 类,使用 Python 内置的 JSON 模块加载 JSON 文件。
  4. 文本文件(TXT):

    • 描述: 一个文本文件包含每行一个图像文件路径和相应标签的信息。
    • TXT 格式:
      /path/to/image1.jpg 0
      /path/to/image2.jpg 1
      ...
      
    • 自定义加载方法: 创建一个自定义的 Dataset 类,使用 Python 内置的文件操作加载 TXT 文件。

自定义数据集加载时,通常需要实现 __len____getitem__ 方法。下面是一个示例,展示如何自定义加载 CSV 文件格式的数据集:

import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
import pandas as pd
from PIL import Image

class CustomDataset(Dataset):
    def __init__(self, csv_file, transform=None):
        self.data_frame = pd.read_csv(csv_file)
        self.transform = transform

    def __len__(self):
        return len(self.data_frame)

    def __getitem__(self, idx):
        img_path = self.data_frame.iloc[idx, 0]
        label = self.data_frame.iloc[idx, 1]

        image = Image.open(img_path).convert('RGB')

        if self.transform:
            image = self.transform(image)

        return image, label

# 使用例子
data_transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
])

custom_dataset = CustomDataset(csv_file='path/to/your/dataset.csv', transform=data_transform)
data_loader = DataLoader(dataset=custom_dataset, batch_size=32, shuffle=True)

在上述代码中,csv_file 参数是包含图像路径和标签的 CSV 文件路径,transform 是用于数据预处理的转换。你可以根据你的数据集格式和需求进行适当的修改。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐