Ошибка загрузки DLL при импорте TensorFlow с поддержкой GPU

#windows #tensorflow #installation

#Windows #tensorflow #установка

Вопрос:

Я пытаюсь установить TensorFlow с поддержкой GPU в Windows 10, но при импорте я получаю сообщение об ошибке (показано ниже). Версия CPU работает нормально.

У меня есть

  • устанавливается tensorflow-gpu через pip
  • обновлены драйверы NVidia для моего GTX 1050 с помощью GeForce Experience
  • установлен CUDA 10.1 с помощью сетевого установщика NVidia
  • установлен cuDNN 7.5.0.56, заботясь о копировании каждого файла в нужную папку CUDA
  • установил TensorRT 5.1.2.2 с помощью zip-метода и снова скопировал соответствующие библиотеки DLL в CUDA

Это ошибка:

 > python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
Traceback (most recent call last):
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "C:UsersuserAppDataLocalProgramsPythonPython37libimp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "C:UsersuserAppDataLocalProgramsPythonPython37libimp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflow__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpython__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:UsersuserAppDataLocalProgramsPythonPython37libsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "C:UsersuserAppDataLocalProgramsPythonPython37libimp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "C:UsersuserAppDataLocalProgramsPythonPython37libimp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: The specified module could not be found.


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/errors

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
 

Моя переменная среды PATH (я удалил все записи, не принадлежащие Microsoft и NVidia):

 > echo $env:PATH.Split(';')
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1bin
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1libnvvp
C:Program FilesMicrosoft MPIBin
C:WINDOWSsystem32
C:WINDOWS
C:WINDOWSSystem32Wbem
C:WINDOWSSystem32WindowsPowerShellv1.0
C:WINDOWSSystem32OpenSSH
C:Program FilesMicrosoft SQL Server130ToolsBinn
C:Program Filesdotnet
C:Program Files (x86)dotnet
C:Program Files (x86)NVIDIA CorporationPhysXCommon
C:Program FilesNVIDIA CorporationNsight Compute 2019.1
C:Program FilesNVIDIA CorporationNVIDIA NvDLISR
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1extrasCUPTIlib64
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1include
C:Program FilesTensorRT-5.1.2.2lib
C:Program FilesTensorRT-5.1.2.2bin
C:toolscudabin
 

TensorRT установлен в C:Program FilesTensorRT-5.1.2.2 .

Содержимое папки CUDA bin :

 PS C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1bin> ls


    Directory: C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1bin


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       18/04/2019     12:39                crt
-a----       09/02/2019     06:57         202752 bin2c.exe
-a----       09/02/2019     06:57       74850816 cublas64_10.dll
-a----       09/02/2019     06:57       36055552 cublasLt64_10.dll
-a----       09/02/2019     06:57         374272 cuda-memcheck.exe
-a----       09/02/2019     06:57        4320256 cudafe  .exe
-a----       09/02/2019     06:57         339968 cudart32_101.dll
-a----       09/02/2019     06:57         408064 cudart64_101.dll
-a----       18/04/2019     15:19      392566784 cudnn64_7.dll
-a----       09/02/2019     06:57      115644416 cufft64_10.dll
-a----       09/02/2019     06:57         225792 cufftw64_10.dll
-a----       09/02/2019     06:57        4785664 cuinj64_101.dll
-a----       09/02/2019     06:57        2074624 cuobjdump.exe
-a----       09/02/2019     06:57       49030656 curand64_10.dll
-a----       09/02/2019     06:57      171052032 cusolver64_10.dll
-a----       09/02/2019     06:57       87930368 cusparse64_10.dll
-a----       09/02/2019     06:57         285184 fatbinary.exe
-a----       09/02/2019     06:57        1323008 gpu-library-advisor.exe
-a----       09/02/2019     06:57         233472 nppc64_10.dll
-a----       09/02/2019     06:57       10049024 nppial64_10.dll
-a----       09/02/2019     06:57        3719680 nppicc64_10.dll
-a----       09/02/2019     06:57        1003008 nppicom64_10.dll
-a----       09/02/2019     06:57        7227904 nppidei64_10.dll
-a----       09/02/2019     06:57       46016512 nppif64_10.dll
-a----       09/02/2019     06:57       24603136 nppig64_10.dll
-a----       09/02/2019     06:57        5848064 nppim64_10.dll
-a----       09/02/2019     06:57       17426944 nppist64_10.dll
-a----       09/02/2019     06:57         194560 nppisu64_10.dll
-a----       09/02/2019     06:57        2610688 nppitc64_10.dll
-a----       09/02/2019     06:57        8202240 npps64_10.dll
-a----       09/02/2019     06:57         247296 nvblas64_10.dll
-a----       09/02/2019     06:57         384000 nvcc.exe
-a----       09/02/2019     06:57            310 nvcc.profile
-a----       09/02/2019     06:57       22919168 nvdisasm.exe
-a----       09/02/2019     06:57      149298688 nvgraph64_10.dll
-a----       18/04/2019     16:46      131539456 nvinfer.dll
-a----       18/04/2019     16:46        3663360 nvinfer_plugin.dll
-a----       09/02/2019     06:57        5960192 nvlink.exe
-a----       18/04/2019     16:46        4457472 nvonnxparser.dll
-a----       18/04/2019     16:46        2447872 nvparsers.dll
-a----       09/02/2019     06:57        4243456 nvprof.exe
-a----       09/02/2019     06:57         221696 nvprune.exe
-a----       09/02/2019     06:57        4580352 nvrtc-builtins64_101.dll
-a----       09/02/2019     06:57       15659520 nvrtc64_101_0.dll
-a----       09/02/2019     06:57             53 nvvp.bat
-a----       09/02/2019     06:57        5838336 ptxas.exe
 

И содержимое C:tools :

 PS C:tools> tree /F
Folder PATH listing
Volume serial number is 6A54-3EA7
C:.
└───cuda
    │   NVIDIA_SLA_cuDNN_Support.txt
    │
    ├───bin
    │       cudnn64_7.dll
    │
    ├───include
    │       cudnn.h
    │
    └───lib
        └───x64
                cudnn.lib
 

Комментарии:

1. Вы пробовали ссылку ?

2. @user1410665 Да. Некоторые исправили это, используя Anaconda, которую я не хочу использовать, или устанавливая определенные версии библиотек, но поскольку с тех пор TensorFlow изменил версии, цифры больше не верны. Я надеялся, что у кого-нибудь будет лучшее решение, чем пробовать все возможные комбинации версий вручную.

Ответ №1:

Проблема заключалась в том, что я установил CUDA 10.1 вместо 10.0. TensorFlow еще не совместим с 10.1.

Ответ №2:

Да, некоторые версии TensorFlow не поддерживают CUDA 10.1, в этом случае CUDA 10.0 или более поздней версии решит вашу проблему.

Ответ №3:

Вот как я решил эту проблему, если вы используете pip или pip3, у вас меньше шансов на успех в первый раз.

  • Удалите Python, CUDA, CuNN, Tensorflow-gpu (если вы уже установили)
  • Установите ANACONDA или MINICONDA
  • Откройте приглашение ANACONDA и выполните следующую команду:

conda create —name tf_gpu тензорный поток-gpu

  • Это создаст среду tf_gpu, в которой будут установлены все совместимые версии Python, CUDA, CuNN и Tensorflow
  • после установки всех пакетов откройте приглашение ANACONDA и введите следующую команду

conda активирует tf_gpu

  • Это изменит среду conda ‘(base)’ на ‘(tf_gpu)’
  • Затем введите python как обычно, чтобы активировать приглашение python
  • Если вы хотите деактивировать среду ‘tf_gpu’

conda деактивировать