valueError при использовании multi_gpu_model в керасе - PullRequest
0 голосов
/ 23 октября 2018

Я использую облачную виртуальную машину Google с 4 графическими процессорами Tesla K80.

Я использую модель keras, используя multi_gpu_model с gpus = 4 (так как у меня 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.

Может кто-нибудь помочь мне с ошибкой.Спасибо!

Ответы [ 4 ]

0 голосов
/ 18 мая 2019

Это может быть вызвано использованием tensorflow вместо tensorflow-gpu.

Один из способов исправить это заключается в следующем:

$ pip uninstall tensorflow
$ pip install tensorflow-gpu

Дополнительную информацию можно найти здесь: https://stackoverflow.com/a/42652258/6543020

0 голосов
/ 23 октября 2018

TensorFlow видит только один графический процессор (устройства gpu и xla_gpu являются двумя бэкэндами для одного физического устройства).Вы устанавливаете CUDA_VISIBLE_DEVICES?Nvidia-smi показывает все графические процессоры?

0 голосов
/ 19 апреля 2019

Вы можете проверить весь список устройств, используя следующий код:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()
0 голосов
/ 23 октября 2018

Похоже, что Keras видит только один из графических процессоров.

Убедитесь, что все 4 графических процессора доступны, вы можете использовать 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']

Возможно, вам потребуетсявручную установить или обновить драйверы графического процессора на вашем экземпляре.Проконсультируйтесь здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...