如何在不同的GPU上独立于不同的数据并行运行相同的Keras模型?

时间:2018-08-09 00:35:58

标签: python tensorflow parallel-processing keras

假设我有一个keras模型model0model1以及数据集data0data1的两个实例。如果我有两个或多个GPU,有没有一种方法可以训练{{1}上的model0上的data0和{{1}上的GPU0上的model1 } 在平行下?到目前为止,我发现的所有方法都将单个模型的训练划分为多个GPU。

谢谢!

1 个答案:

答案 0 :(得分:1)

多处理怎么样?

您只需在多处理池中执行两次功能即可:

您需要考虑的事情:

  • 必须在函数中定义或加载您的模型
  • 您需要一个掩盖GPU的参数。可以通过设置环境变量CUDA_VISIBLE_DEVICES来掩盖(您也必须在函数内部执行此操作)
  • 您可以通过参数传递不同的训练数据
  • 最好将生成的模型保存到不同的文件中,然后从主程序加载

因此,基本上在主程序和多处理工具中的函数之间传递keras / tensorflow会话是一个难题。但是,如果将函数中所有与keras / tensorflow相关的内容保持不变,并以不同的方式屏蔽GPU,那么您就很好了。