python - 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
解决方案
问题出在 and 的安装tensorflow
中keras
。实现并行化的方法是正确的。
该tensorflow
文档明确指出,强烈建议使用该软件包安装该软件包,pip
因为该conda
软件包仅由社区维护(https://www.tensorflow.org/install/pip)。
我解决了卸载keras
并tensorflow
重新安装它们的问题:
pip install tensorflow
pip install keras
推荐阅读
- apache - 如何为我的 jira 工具将 http 转换为 https
- javascript - 如何在 GET 方法中检查用户身份验证?
- firebase - 可调用函数支持缓存吗?
- environment-variables - 将 json 重命名为 *.environment.json 并且无法在邮递员中导入相同的内容
- java - 使用带有当前日期和 dob 和枚举的休眠保存学生
- centos - eth1接口在ifconfig中不可见,在centos6中无法与其他服务器交互
- java - 尝试在网站完全打开之前输入登录凭据时出现“无警报打开”
- java - 方法.matches String false,如何匹配true
- python - tensorflow sess.run() 真的可以释放python的GIL(全局解释器外观)吗?
- node.js - 如何在 Mongoose 上使用 .substr() 方法