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

相关推荐
weixin_468466852 分钟前
通义千问核心能力与实战表现深度评测
人工智能·深度学习·算法·ai·大模型
jerryinwuhan3 分钟前
marker BiBERTo解释
java·前端·人工智能
学习3人组4 分钟前
机器学习KNeighborsClassifier实现手写数字识别
人工智能·机器学习
掘金安东尼5 分钟前
如果你真能 7×24 小时运行最顶级的大模型,你会想用它来干嘛
人工智能
翼龙云_cloud5 分钟前
云服务器代理商:2026 年云计算趋势 AI 算力需求激增下的云服务器选择
服务器·人工智能·云计算·ai智能体
m沐沐5 分钟前
【机器学习】NLP---用 Python+TF-IDF 给《红楼梦》自动提取关键词
人工智能·python·机器学习·自然语言处理·nlp·中文分词·tf-idf
小脑斧1236 分钟前
自媒体内容工业化:基于AI Skills低代码实现穿搭账号矩阵自动化量产
人工智能·低代码·媒体·skills·openclaw·hermes·marvis
填满你的记忆6 分钟前
《为什么 MySQL 不适合做 AI 检索?》
数据库·人工智能·mysql·ai·向量数据库
Fleshy数模8 分钟前
深度学习核心:神经网络
python
威尔逊·柏斯科·希伯理8 分钟前
机器学习第二天(KNN)
人工智能·机器学习