Keras / Tensorflow не обнаружил графический процессор в экземпляре AWS ml.p2.xlarge, управляемом SageMaker - PullRequest
1 голос
/ 09 февраля 2020

Я использую пользовательский контейнер Docker для использования с SageMaker на экземпляре ml.p2.xlarge.

Базовое изображение - tiangolo / python - машинное обучение: cuda9.1- python3 .7 , которое обычно поставляется с необходимым инструментарием CUDA. Пакеты python устанавливаются через conda с использованием следующего минимализма environment.yaml:

dependencies:
  - boto3
  - joblib
  - keras
  - numpy
  - pandas
  - scikit-learn
  - scipy
  - tensorflow=2.0

Но когда я запускаю учебное задание для небольшого lenet5 CNN, я не вижу никакой активности GPU в журналы (и обучение длится столько же, сколько на экземпляре без графического процессора).

Больше беспокойства, len(tf.config.experimental.list_physical_devices('GPU') возвращает 0, а K.tensorflow_backend._get_available_gpus() пусто. Наконец, если я проверяю размещение устройства (используя tf.debugging.set_log_device_placement(True)) на базовой операции c, такой как следующее:

a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)

, я получаю

Executing op _MklMatMul in device /job:localhost/replica:0/task:0/device:CPU:0

Подтверждение того, что операция имеет происходит на процессоре.

Сначала я подумал, что мой сценарий использования слишком мал для запуска использования графического процессора, но кажется, что графический процессор вообще не обнаружен! Я пропускаю какие-либо шаги или компоненты, необходимые для этого, чтобы работать?

1 Ответ

2 голосов
/ 10 февраля 2020

Я рекомендую начать с предоставленных SageMaker сред, чтобы убедиться, что у вас есть протестированная, последняя и готовая к работе установка. В частности, для Tensorflow и Keras:

...