【发布时间】:2020-03-24 10:51:42
【问题描述】:
我曾尝试使用 keras 训练三个 UNet 模型进行图像分割,以评估多 GPU 训练的效果。
- 第一个模型在 1 个 GPU (P100) 上使用 1 个批量大小进行训练。每个训练步骤耗时约 254 毫秒。 (注意这是一步,而不是时代)。
- 使用 1 个 GPU (P100) 使用 2 个批量大小训练第二个模型。每个训练步骤耗时约 399 毫秒。
- 第三个模型使用 2 个批量大小和 2 个 GPU (P100) 进行了训练。每个训练步骤耗时约 370 毫秒。从逻辑上讲,它应该花费与第一种情况相同的时间,因为两个 GPU 并行处理 1 个批次,但花费了更多时间。
谁能判断多 GPU 训练是否会缩短训练时间?作为参考,我尝试了所有使用 keras 的模型。
【问题讨论】:
-
你应该看看,给定相同的模型初始化,总收敛时间。否则对于multigpu模型的“什么是步骤”以及“什么是纪元”可能会有很多疑问。
-
@DanielMöller : 你能告诉我总收敛时间是什么意思吗?
-
你的意思是最低验证错误吗?
-
是的,模型达到预期效果所需的时间。 Srihari 在这里给出的答案似乎说了类似的话。
标签: tensorflow keras multi-gpu