Tensorflow 2.2 и cudnn 8.0.3 не работают вместе должным образом. Он по-прежнему ищет dll-файлы cudnn 7.6.5.

У меня Tensorflow 2.2 и Cuda 10.1 с cuDnn 8.0.3.

Я не могу запустить свои сценарии, потому что он продолжает искать dll-файл cuDnn 7: cudnn64_7.dll Я получаю следующее:

Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found

Несмотря на то, что я установил недавно опубликованную версию cuDnn 8.0.3 для Cuda 10.1 (см. " rel="nofollow noreferrer">матрица поддержки cuDNN 8.x) Я вернулся к cuDNN 7.6.5, но надеялся получить cuDNN v8.0 в 5 раз быстрее, как утверждает NVIDIA.

Любая помощь или обходные пути о том, как это сделать? Поиск в Google дает мне буквально менее 5 результатов! как кажется, не многим довелось попробовать новую 8.0.3 (та, что для 10.1)


person salouri    schedule 15.09.2020    source источник
comment
когда бинарный файл (например, Tensorflow) компилируется, он связывается с различными библиотеками. В случае cudnn (а также cudart и других библиотек CUDA) конкретная версия (в некоторых пределах), с которой связан двоичный файл, является версией, которую вы должны предоставить. Вы не можете заменить cudnn64_8.dll, если двоичный файл TF был связан с cudnn64_7.dll. Чтобы эта замена заработала, вам придется перекомпилировать/пересборить двоичные файлы TF. Из сообщения об ошибке видно, что ваши конкретные двоичные файлы TF ожидают версию cudnn 7.x.   -  person Robert Crovella    schedule 16.09.2020
comment
Я просмотрел файлы lib моего проекта TF и ​​заменил все имена/конфигурации с 64_7 на 64_8. Тем не менее, я ничего не получил с этим. Интересно, поможет ли компиляция TF из исходного кода (хотя не поддерживается в Windows 10)   -  person salouri    schedule 16.09.2020
comment
та же проблема. Установил CUDA 10.1 + cuDnn 8.0.3 и та же ошибка   -  person Alex    schedule 17.11.2020


Ответы (1)


Была такая же проблема. 8.0.3 версия — это текущая и последняя поддерживаемая версия библиотеки для CUDA 10.1. Однако tensorflow создан для более ранней версии, поэтому вам придется использовать его.

Чтобы уточнить, если вы проверите эту страницу: https://www.tensorflow.org/install/source_windows#tested_build_configurations

+----------------------+----------------+-----------+-------------+-------+------+
|       Version        | Python version | Compiler  | Build tools | cuDNN | CUDA |
+----------------------+----------------+-----------+-------------+-------+------+
| tensorflow_gpu-2.3.0 | 3.5-3.8        | MSVC 2019 | Bazel 3.1.0 |   7.6 | 10.1 |
+----------------------+----------------+-----------+-------------+-------+------+

поэтому, если вы не собираете TF локально, вам нужно использовать поддерживаемую версию cudnn.

При этом, однако, если вы проверите последние выпуски TF: https://github.com/tensorflow/tensorflow/releases

вы увидите следующее примечание TensorFlow 2.4.0-rc1:

Пакеты пипов TensorFlow теперь создаются с помощью CUDA11 и cuDNN 8.0.2.

Вы можете использовать версию TF-кандидата на выпуск, но тогда вам также необходимо обновить CUDA до 11 (я предполагаю, что версия 11.0, поскольку постфикс не упоминается) и использовать файл cuDNN v8.0.2 (July 24th, 2020), for CUDA 11.0.

Только что проверил - эта установка работает. Вам просто нужно убедиться, что установлена ​​numpy версия 1.19.3, чтобы избежать проблемы, упомянутой в этих темах.

RuntimeError: текущая установка Numpy не проходит проверку работоспособности из-за ошибки в среде выполнения Windows

https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html

person Alex    schedule 17.11.2020
comment
Я принял ответ, хотя не могу его проверить. Исходя из моего опыта и опыта команды TF (github.com/tensorflow/tensorflow/issues /) TF2.3 и более поздние версии не будут поддерживать вычислительные возможности 5.0 моего графического процессора. Я пытался найти ссылку на какие-либо изменения в этом, но не нашел... - person salouri; 26.01.2021