深度学习入门文档深度页
Dataset 与 DataLoader
Dataset 定义单样本,DataLoader 负责抽样、组批、打乱和并行读取。
学习目标
- 写 Dataset
- 配置 DataLoader
- 理解 collate
为什么需要这个概念
正确数据管道与模型结构同等重要。
- 训练输入入口
- 支持大数据流式读取
学习前需要掌握
Tensor内容待补充
背景与问题
正确数据管道与模型结构同等重要。
概念定义
__getitem__ 返回单样本;batch 维由 DataLoader 的 collate 过程添加。
直观理解
Dataset 回答第 i 条是什么,DataLoader 回答如何凑一批。
核心原理
训练通常 shuffle,验证不 shuffle;预处理统计只来自训练集。
变长数据需 collate_fn、padding 与 mask;Windows workers 需 main 保护。
数学表达
核心公式
drop_last=False 时保留尾批。
变量含义
N样本数Bbatch size
计算步骤
- 1ceil=7
- 2尾批 7
代码对应位置
示例 1Dataset 与 DataLoader · PyTorch 示例:验证Dataset 与 DataLoader的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
N | 样本数 |
B | batch size |
完整数值示例
103 条数据
已知条件
- N=103,B=16
- 1
ceil=7
- 2
尾批 7
7 个 batch
处理前后对比
计算与实现步骤
- 1
实现 Dataset
- 2
划分索引
- 3
定义 transform
- 4
配置 loader
- 5
检查首批
- 6
逐批搬设备
代码实现
示例 1
Dataset 与 DataLoader · PyTorch 示例
Dataset 与 DataLoader · PyTorch 示例
PyTorch
example_01.py用途:验证Dataset 与 DataLoader的输入、计算和输出。
loader=DataLoader(dataset,batch_size=16,shuffle=True,num_workers=0)
x,y=next(iter(loader));print(x.shape,y.shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证Dataset 与 DataLoader的输入、计算和输出。
y- 目标标签或连续目标值。
Step 1 · 1–2 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
loader=DataLoader(dataset,batch_size=16,shuffle=True,num_workers=0)
x,y=next(iter(loader));print(x.shape,y.shape)预期输出或运行结果
首维最多 16。
常见错误 · 5 条
- 全数据拟合统计
- 验证随机增强
- 变长默认组批
- getitem 搬 GPU
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 图像/文本/表格训练
常见错误
全数据拟合统计
验证随机增强
变长默认组批
getitem 搬 GPU
文档来源
11_数据管道与预处理原始文档
学习资料/deeplearning/11_数据管道与预处理.md- §1 管道
- §2 Dataset
- §4 DataLoader
- §8 collate
- §10 Windows
常见问题
Dataset 返回 batch 吗?
通常返回单样本。
验证为何不随机增强?
保证评价确定且含义稳定。
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。