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

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

猜你喜欢

转载自blog.csdn.net/flyingluohaipeng/article/details/128996516