python - 在 keras 中使用 multi_gpu_model 时出现 valueError
问题描述
我正在使用带有 4 个 Tesla K80 GPU 的谷歌云虚拟机。
我正在使用 multi_gpu_model 和 gpus=4 运行 keras 模型(因为我有 4 个 gpu)。但是,我收到以下错误
ValueError: 要使用 调用
multi_gpu_model
,gpus=4
我们希望以下设备可用:['/cpu:0', '/gpu:0', '/gpu:1', '/gpu:2', '/gpu:3' ]。然而这台机器只有:['/cpu:0', '/xla_cpu:0', '/xla_gpu:0', '/gpu:0']。尝试减少gpus
.
我可以看到这里只有两个 gpu,即'/xla_gpu:0', '/gpu:0'
. 所以,我尝试gpus = 2
并再次收到以下错误
ValueError:要调用
multi_gpu_model
,gpus=2
我们希望以下设备可用:['/cpu:0', '/gpu:0', '/gpu:1']。然而这台机器只有:['/cpu:0', '/xla_cpu:0', '/xla_gpu:0', '/gpu:0']。尝试减少gpus
.
谁能帮我解决这个错误。谢谢!
解决方案
看起来 Keras 只看到其中一个 GPU。
确保所有 4 个 GPU 都可以访问,您可以device_lib
与 TensorFlow 一起使用。
from tensorflow.python.client import device_lib
def get_available_gpus():
local_device_protos = device_lib.list_local_devices()
return [x.name for x in local_device_protos if x.device_type == 'GPU']
您可能需要在您的实例上手动安装或更新 GPU 驱动程序。在这里咨询。
推荐阅读
- angular - 在角度 2 中显示组件时如何绕过路由器插座?
- s4sdk - 无法在具有 oAuth2SAMLBearerAssertion 身份验证的云代工环境中使用 S4Hana SDK 执行 odata 调用
- c# - 需要帮助从可能为空值的列表创建数据表
- scala - How the number of Tasks and Partitions is set when using MemoryStream?
- python - python 3 summing numbers from input
- create-table - Greenplum creates a partition table is very slow
- github - 无法将代码推送到 gitlab 存储库
- javascript - React/Redux 中的通用化简器/动作
- ms-access-2016 - 我想有条件地为 ms-access 中的自动编号或编号添加前缀
- sql - 根据条件为其他列选择一个列值