我正在使用Tensorflow MirroredStrategy在2个GPU上并行训练神经网络。使用单个GPU时,每个时期需要19秒才能完成,而使用2个GPU时,每个时期需要13秒才能完成。我对此并不感到惊讶,因为我知道由于在训练期间更新变量的all_reduce开销,缩放并不完美。
然而,在分布式训练的每个时期之后,有大约8秒的暂停。当使用单个GPU时,此暂停时间少于1秒。有没有人知道为什么在分发训练时,每个时代之后都会有这么长的停顿?
或者,有人能解释一下分布式训练在时代结束时会发生什么不同的情况吗?
发布于 2020-07-03 22:38:54
显然,这与在图形模式下运行TF有关。通过设置tf.compat.v1.enable_eager_execution(),这个问题就解决了。这也修复了导致问题的内存泄漏,所以暂停可能是由于TF复制了我想不到的东西而引起的。
https://stackoverflow.com/questions/62683947
复制相似问题