你好世界又名。与仅具有一个节点的 DistributedDataParallel (DDP) 模型相比,具有前馈的 MNIST 的准确性较低

Hello World aka. MNIST with feed forward gets less accuracy in comparison of plain with DistributedDataParallel (DDP) model with only one node

这是对我在 Pytorch forum 中的问题的交叉 post。

当仅在一个节点上使用来自 PyTorch 的 DistributedDataParallel (DDP) 时,我希望它与没有 DistributedDataParallel.

的脚本相同

我使用三层前馈神经网络创建了一个简单的 MNIST 训练设置。如果使用相同的超参数、相同的时期和通常相同的代码但使用 DDP 库进行训练,它的准确率会显着降低(大约 10%)。

我创建了一个 GitHub repository 来演示我的问题。

我希望是库的使用错误,但我看不出有什么问题,而且我的大学已经审核了代码。此外,我在带有 CPU 的 macOS 和三种不同的 GPU/ubuntu 组合(一个带有 1080-Ti,一个带有 2080-Ti 和一个内置 P100 的集群)上进行了尝试,所有结果都相同.种子是固定的可重复性。

您在两个实验中使用了不同的批量大小:batch_size=128batch_size=32 分别用于 mnist-distributed.pymnist-plain.py。这表明您不会通过这两种训练获得相同的表现结果。