pytorch set_epoch()方法
在分布式模式下需要在每个 epoch 开始时调用set_epoch()方法然后再创建 DataLoader 迭代器以使shuffle操作能够在多个 epoch 中正常工作。 否则dataloader迭代器产生的数据将始终使用相同的顺序。sampler DistributedSampler(dataset) if is_distributed else None loader DataLoader(dataset, shuffle(sampler is None), samplersampler) for epoch in range(start_epoch, n_epochs): if is_distributed: sampler.set_epoch(epoch) train(loader)参考torch.utils.data — PyTorch 1.10.0 documentationPytorch DistributedDataParallel 数据采样 shuffle - 知乎更新这是19年12月的文章至今pytorch已经更新了不少所以还有没有用请读者自己实验。 ———————————————————————————————————————— 原文 一个比较蛋疼的问题就是我发…https://zhuanlan.zhihu.com/p/97115875