pytorch 数据载入

在PyTorch中,数据载入是训练深度学习模型的重要一环。

本文将介绍三种常用的数据载入方式:Dataset、DataLoader、以及自定义的数据加载器。

  1. 使用 Dataset 载入数据
    方法:

    from torch.utils.data import Dataset

    class CustomDataset(Dataset):
    def init(self, ...):
    # 初始化数据集
    # ...

    复制代码
     def __len__(self):
         # 返回数据集的大小
         return len(self.data)
    
     def __getitem__(self, idx):
         # 根据索引返回样本和标签
         return self.data[idx], self.labels[idx]

使用示例:

复制代码
custom_dataset = CustomDataset(...)
  1. 使用 DataLoader 加载数据集
    方法:

    from torch.utils.data import DataLoader

    data_loader = DataLoader(
    dataset,
    batch_size=32,
    shuffle=True,
    num_workers=4,
    drop_last=True,
    )

参数说明:

dataset: 要加载的数据集对象。

batch_size: 每个批次的样本数量。

shuffle: 是否在每个 epoch 开始时打乱数据。

num_workers: 用于数据加载的进程数。

drop_last: 是否丢弃最后一个不完整的批次。

使用示例:

复制代码
for data, labels in data_loader:
    # 训练模型的逻辑
  1. 使用自定义的 Data Loader
    方法:

    from torch.utils.data import DataLoader, IterableDataset

    class CustomDataLoader(IterableDataset):
    def init(self, ...):
    # 初始化数据加载器
    # ...

    复制代码
     def __iter__(self):
         # 返回一个迭代器
         return iter(self.data)

使用示例:

复制代码
custom_loader = CustomDataLoader(...)
for data in custom_loader:
    # 自定义数据处理逻辑

注意事项:

Dataset 和 DataLoader 是 PyTorch 提供的数据载入工具,通常能满足大多数情况。

自定义数据加载器 (IterableDataset) 可以用于特殊情况下的数据加载需求。

总结:

使用 Dataset 创建数据集对象,实现 lengetitem 方法。

使用 DataLoader 加载数据集,设置参数如 batch_size、shuffle 等。

可选地,使用自定义的数据加载器 (IterableDataset) 处理特殊情况下的数据载入需求。

相关推荐
无心水1 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 38--Allure 测试报告
python·学习·测试工具·pytest
小鸡吃米…7 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫8 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)8 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan8 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd9 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
njsgcs9 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue