我曾尝试使用keras训练三个UNet模型进行图像分割,以评估多GPU训练的效果。
- 使用1个批处理大小在1个GPU(P100)上训练了第一个模型。每个训练步骤约需254毫秒。 (请注意,这是一步,而不是时代)。
- 使用1个GPU(P100)使用2个批处理大小训练第二个模型。每个训练步骤约需399毫秒。
- 使用2个GPU(P100)使用2个批处理大小训练了第三种模型。每个训练步骤约需370毫秒。从逻辑上讲,这应该与第一种情况花费相同的时间,因为两个GPU并行处理一批,但花费了更多时间。
谁能说出多GPU训练是否减少了训练时间?作为参考,我使用keras尝试了所有模型。