在深度学习和机器学习领域,DataLoader 是一个非常关键的组件,尤其是在使用 PyTorch 等框架时。DataLoader 负责在训练模型时批量加载数据,并提供多种配置选项来优化加载过程。
关键特性
batch_size: 每个批次的大小。
shuffle: 在每个 epoch 开始时是否打乱数据。
num_workers: 使用多少个子进程来加载数据。0 表示数据将在主进程中加载。
pin_memory: 如果设置为 True,数据加载器会在返回之前将张量复制到 CUDA 固定内存中,这样可以加快数据传输到 GPU 的速度。
drop_last: 如果数据集大小不能被 batch_size 整除,设置为 True 时会丢弃最后一个不完整的批次。
进阶用法
sampler: 允许你自定义数据的采样方式。
batch_sampler: 类似于 sampler,但是它返回一批数据的索引。
collate_fn: 用于处理不同长度的样本列表,使其可以被组合成一个批次。
persistent_workers: 如果设置为 True,数据加载器将会在迭代结束后保持工作进程活着,以加速下一次迭代。