多GPU训练Keras

时间:2019-06-18 16:31:27

标签: keras deep-learning

我对Keras相当陌生,想在4 Gpu的模型上训练我的模型。 不幸的是,批次大小为4(输入形状256x265x32)时出现内存不足错误。

现在Iam想知道虽然批处理大小为2,但是否可以在所有4个GPU上进行训练?

谢谢,

问候

迈克尔

1 个答案:

答案 0 :(得分:0)

是的,使用它们的multi_gpu API(https://keras.io/utils/#multi_gpu_model)很容易。

下面的代码应该可以解决这个问题,并自动将批处理拆分为多个子批处理,并在最后进行连接:

keras.utils.multi_gpu_model(model, gpus=None, cpu_merge=True, cpu_relocation=False)

您将遇到的唯一问题是批处理规范化,它将不会使用整个批处理,而只会使用这些小的子批处理。同样,小批量(例如批量大小<8)的批量归一化效果也不佳。因此,我建议不要对此类问题使用批处理规范。