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) 处理特殊情况下的数据载入需求。

相关推荐
德迅云安全—珍珍3 小时前
2026 年网络安全预测:AI 全面融入实战的 100+行业洞察
人工智能·安全·web安全
cnxy1884 小时前
围棋对弈Python程序开发完整指南:步骤4 - 提子逻辑和劫争规则实现
开发语言·python·机器学习
数新网络5 小时前
CyberScheduler —— 打破数据调度边界的核心引擎
人工智能
TheSumSt5 小时前
Python丨课程笔记Part3:语法进阶部分(控制结构与基础数据结构)
数据结构·笔记·python
Codebee5 小时前
Ooder框架8步编码流程实战 - DSM组件UI统计模块深度解析
人工智能
ha_lydms5 小时前
5、Spark函数_s/t
java·大数据·python·spark·数据处理·maxcompute·spark 函数
Deepoch5 小时前
智能升级新范式:Deepoc开发板如何重塑康复辅具产业生态
人工智能·具身模型·deepoc·智能轮椅
赋创小助手5 小时前
融合与跃迁:NVIDIA、Groq 与下一代 AI 推理架构的博弈与机遇
服务器·人工智能·深度学习·神经网络·语言模型·自然语言处理·架构
静听松涛1335 小时前
多智能体协作中的通信协议演化
人工智能
基咯咯6 小时前
Google Health AI发布MedASR:Conformer 医疗语音识别如何服务临床口述与对话转写
人工智能