Conda, Keras, cuDNN: показаны разные версии - PullRequest
2 голосов
/ 10 января 2020

Я использую Anaconda (в Ubuntu 18.04), и у меня есть среда с установленным Keras (и тензор-gpu). Вот разные версии:

  • Керас: 2.2.4
  • Tensorflow-GPU: 1.15.0
  • CuDNN: 7.6.5 для Cuda10.0.0
  • CudaToolKit: 10.0.130

Версия выбрана Кондой, но мне интересно, почему она загрузила 10.0, когда nvidia-smi показывает мне, что моя cuda должна быть (или есть?) 10.1:

NVIDIA-SMI 435.21 Версия драйвера: 435.21 Версия CUDA: 10.1

Но, забавный факт, когда я делаю nv cc - версия:

Инструменты компиляции Cuda, выпуск 9.1, V9.1.85

Итак, вот мой вопрос (ы): какую версию Cuda я использую? Какую версию Cuda я должен использовать? Anaconda обрабатывает Cuda в зависимости от среды?

PS: (это не мой вопрос, но почему я его задаю)

Я спрашиваю об этом, потому что я бегу в эту проблему:

tenenflow / stream_executor / cuda / cuda_dnn. cc: 329] Не удалось создать дескриптор cudnn: CUDNN_STATUS_INTERNAL_ERROR

Я искал решение ( не удалось создать дескриптор cudnn: CUDNN_STATUS_INTERNAL_ERROR ), но ни один ответ, который я пробовал, не сработал (удаление файлов, запуск в sudo и т. Д. c), поэтому я считаю, что это проблема совместимости

1 Ответ

0 голосов
/ 15 января 2020

Примечание: хотя я не рассматриваю этот ответ как РЕШЕНИЕ, он позволил мне продолжить работу над моим проектом, поэтому на данный момент он достаточно хорош.

  1. Переустановите Cuda 10.1 (не 10.2 в моем случай из-за какой-то проблемы с драйвером 440 для Steam) (проверьте, какая версия у вашего драйвера nvidia и обязательно установите правильную Cuda для этой версии)
  2. Следуйте инструкциям после установки: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post -installation-actions
  3. Используйте whereis cuda, чтобы узнать, остались ли в системе другие версии (в моем случае у меня была cuda-dev-9.1, которая объясняет, почему nv cc -V показывал эта версия)
  4. Удалить все старые версии
  5. Обычно nv cc -V и nvidia-smi должны показывать одну и ту же версию Cuda
  6. При необходимости переустановить cudnn

Теперь, это не исправляет ошибку:

Не удалось создать дескриптор cudnn: CUDNN_STATUS_INTERNAL_ERROR

Рабочее решение (но все же не удивительное) это добавить следующий код в верхней части Ваш файл python (я использую Keras, но он также работает только с TensorFlow):

from keras.backend.tensorflow_backend import set_session
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
set_session(sess)

И он (очевидно) работает!

Большое спасибо Беркаю за его поддержку!

(технически попробуйте удалить старые версии перед добавлением другой, но это тоже работает)

...