2017-10-21 246 views
2

如何编程keras或tensorflow以划分多GPU上的训练,假设您处于一个amaozn ec2实例,其中有8个GPU,并且您希望使用它们全部训练得更快,但是您的代码仅适用于单个CPU或GPU?使用多个GPU训练一个模型

+0

这是有点广泛的这个网站。您要求我们为您设计解决方案。 https://stackoverflow.com/help/how-to-ask – jdv

回答

2

是的,可以在多个GPU上运行Keras模型。这只能在TensorFlow后端暂时使用,因为Theano功能还是比较新的。我们正考虑在不久的将来在Theano添加对多GPU的支持(它应该相当简单)。

使用TensorFlow后端,您可以像使用纯TensorFlow一样完成此任务:在定义Keras图层时使用with tf.device(d)scope。

最初来自here

+1

作为对此答案的补充,您可以在以下链接中查看答案。我们的想法是为每个图层组设置'tf.device('/ gpu:0'):'或'tf.device('/ gpu:1')'等。 https://stackoverflow.com/questions/46366216/tensorflow-is-it-possible-to-manually-decide-which-tensors-in-a-graph-go-to-th –

+0

@DanielMöller:谢谢! –