首页 > 解决方案 > Keras + 多处理 - 正确生成会话,但只有一个处理器

问题描述

我对 Keras 和多处理有疑问。我已经搜索了很多,我发现了很多相同主题的问题:

(还有更多)

我尝试了这些解决方案,所以基本上在多处理实例化后导入 Keras。实际上,我看到了这条消息:

Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend.
Using TensorFlow backend. 

在此消息仅打印一次之前,因此我假设后端不同,但是,我的进程在同一核心上运行。如果再次运行主进程,它会创建更多在同一处理器中运行的进程。似乎有些东西阻止了不同处理器上的执行。

关于如何解决它的任何想法?

PS:我正在使用我链接的第二个解决方案,特别是以下内容:

DO NOT LOAD KERAS TO YOUR MAIN ENVIRONMENT

标签: pythontensorflowkerasmultiprocessing

解决方案


问题出在 and 的安装tensorflowkeras。实现并行化的方法是正确的。

tensorflow文档明确指出,强烈建议使用该软件包安装该软件包,pip因为该conda软件包仅由社区维护(https://www.tensorflow.org/install/pip)。

我解决了卸载kerastensorflow重新安装它们的问题:

pip install tensorflow
pip install keras

推荐阅读