PyTorch 分布式训练 --- 数据加载之DistributedSampler

在PyTorch的分布式数据并行(DDP)训练中,DistributedSampler确保测试数据集加载顺序固定,而训练数据集应设置shuffle为True。为了避免与sampler冲突,DataLoader中的shuffle应设为False。非DDP情况下,训练数据集需保持shuffle为True,测试数据集为False。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 一句话总结:

DDP中DistributedSampler保证测试数据集加载固定顺序,且在各个程序中都是一样时(因为shuffle=True时使用了随机种子,不保证在各个程序中测试数据集加载顺序都是一样),最好在DistributedSampler中保证参数shuflle=False,训练集需要保证shuffle=True(DistributedSampler中默认shuffle参数是True)。
DDP中在DataLoader中需要保证测试数据集和训练数据集都是shuffle=False(参数shuflle默认是False),因为有了sampler进行数据采样,如果shuffle=True会与sampler进行采样冲突,出现报错(DataLoader中默认shuflle参数是False)。如果不是DDP,则需要保证训练数据集的dataloader中shuffle参数是True,测试数据集的dataloader中shuffle参数是False。

2. 参考链接:

  1. Pytorch中DistributedSampler()中的随机因素
  2. Pytorch按照固定顺序加载样本
  3. Pytorch Distributed相关代码学习(一)
  4. [源码解析] PyTorch 分布式(1) — 数据加载之DistributedSampler
  5. 关于DistributedSampler理解
  6. pytorch分布式系列3——分布式训练时,torch.utils.data.distributed.DistributedSampler做了什么?
  7. pytorch 的 DataLoader中的shuffer与随机种子
  8. pytorch多GPU并行训练DistributedDataParallel应用和踩坑记录
  9. PyTorch多卡分布式训练DistributedDataParallel 使用方法
  10. 官方:https://pytorch.org/docs/stable/data.html#
  11. 官方:https://pytorch.org/tutorials/intermediate/ddp_tutorial.html
  12. 官方:https://pytorch.org/docs/stable/notes/ddp.html
  13. 关于pytorch中的distributedsampler函数使用
  14. Pytorch DistributedDataParallel 数据采样 shuffle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值