我正在处理多 GPU 服务器上的神经网络训练。我正在使用 TensorFlow 2.1 中的 MirroredStrategy API,我有点困惑。
我有 8 个 GPU(Nvidia V100 32GB)
- 我指定批量大小为 32(它是如何管理的?每个 gpu 将有一批 32 个样本?我应该将 256 指定为批量大小 -32x8- 吗?)
- 何时以及如何应用反向传播?我读过 MirroredStrategy 是同步的:这是否意味着在前向步骤之后所有批次都被分组为一批大小为 32x8 并在应用反向传播之后?还是按顺序对每批大小为 32 的批次应用一次反向支持?
我真的很想确定我向服务器提交了什么样的实验,因为每个训练作业都非常耗时,并且根据可用 GPU 的数量改变批量大小(和反向支持)会影响结果的正确性。
感谢您提供的任何帮助。