我对Keras相当陌生,想在4 Gpu的模型上训练我的模型。 不幸的是,批次大小为4(输入形状256x265x32)时出现内存不足错误。
现在Iam想知道虽然批处理大小为2,但是否可以在所有4个GPU上进行训练?
谢谢,
问候
迈克尔
答案 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)的批量归一化效果也不佳。因此,我建议不要对此类问题使用批处理规范。