(Tensorflow-GPU) importar tensorflow ImportError: no se pudo encontrar ‘cudnn64_7.dll’

Después de crear el entorno tensorflow bajo anaconda, instalé tensorflow-gpu. Luego intenté importar tensorflow para verificar si está correctamente instalado, pero obtuve este error:

ImportError: Could not find 'cudnn64_7.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Note that installing cuDNN is a separate step from installing CUDA, and this DLL is often found in a different directory from the CUDA DLLs. You may install the necessary DLL by downloading cuDNN 7 from this URL: https://developer.nvidia.com/cudnn 

La configuración es:

 NVIDIA GTX 1080 CUDA 9.0 cuDNN 6.0 tensorflow-gpu 1.5 

Las variables de entorno son:

 CUDA_PAT: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 CUDA_PATH_V9_0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 

Las variables% Path% son:

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp C:\Users\yshen\AppData\Local\cudnn-8.0-windows10-x64-v6.0\cuda\bin 

es obvio que instalé cuDNN6.0, no sé por qué el error muestra “No se pudo encontrar ‘cudnn64_7.dll'”. ¿Por qué busca automáticamente cudnn64_7.dll en lugar de cudnn64_6.dll?

También obtuve “ImportError: No pude encontrar ‘cudnn64_7.dll'” cuando instalé TensorFlow 1.8. Tengo ambiente de anaconda.

Pero después de instalar Nvidia cuDNN v7.1.3 (17 de abril de 2018), para CUDA 9.0, todo comenzó a funcionar. Tenga en cuenta que uno debe registrarse como desarrollador de Nvidia para poder descargar los paquetes de instalación.

Luego, solo siga las instrucciones en la página https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

Para ventanas:

3.3. Instalación de cuDNN en Windows Los siguientes pasos describen cómo construir un progtwig dependiente de cuDNN. En las siguientes secciones: su ruta de directorio CUDA se denomina C: \ Archivos de progtwig \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0 -tu ruta de directorio cuDNN se conoce como

  1. Navegue a su directorio que contiene cuDNN.

  2. Descomprima el paquete cuDNN. -cudnn-9.0-windows7-x64-v7.zip o -cudnn-9.0-windows10-x64-v7.zip

  3. Copie los siguientes archivos en el directorio de CUDA Toolkit. -Copia \ cuda \ bin \ cudnn64_7.dll a C: \ Archivos de progtwig \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0 \ bin. -Copia \ cuda \ include \ cudnn.h a C: \ Archivos de progtwig \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0 \ include. -Copia \ cuda \ lib \ x64 \ cudnn.lib a C: \ Archivos de progtwig \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0 \ lib \ x64.

  4. Configure las siguientes variables de entorno para que indiquen dónde se encuentra cuDNN. Para acceder al valor de la variable de entorno $ (CUDA_PATH), realice los siguientes pasos: -Abra un símbolo del sistema desde el menú Inicio. -Escribe Ejecutar y pulsa Intro. -Issue el comando sysdm.cpl de control. -Seleccione la pestaña Avanzado en la parte superior de la ventana. -Haga clic en Variables de entorno en la parte inferior de la ventana. -Asegúrese de establecer los siguientes valores: –Variable Name: CUDA_PATH –Variable Value: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0

  5. Incluya cudnn.lib en su proyecto de Visual Studio. -Abra el proyecto de Visual Studio y haga clic derecho en el nombre del proyecto. -Haga clic en Vinculador> Entrada> Dependencias Adicionales. -Agregar cudnn.lib y haga clic en Aceptar.

Según su respuesta anterior, parece que descubrió que tensorflow-gpu 1.5 precomstackdo no es compatible con CUDA 9.0 + CudNN 6.0. Hay dos soluciones posibles para su respuesta, si desea usar tensorflow-gpu 1.5:

1, actualice su cadena de herramientas CUDA a CUDA 9.0 + Cudnn 7.0 (actualmente Cudnn 7.0.5 para CUDA 9.0).

2, vuelva a comstackr el objective tensorflow-gpu 1.5 para CUDA 9.0 + cudnn 6.0.

Sugiero elegir la primera opción para mayor facilidad. Pero la página web oficial de tensorflow 1.5 dosis no niega la posibilidad de la opción 2: https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0

Sólo tienes que encontrar la solución:

Revisé \ tensorflow \ python \ platform \ build_info.py y encontré:

 msvcp_dll_name = 'msvcp140.dll' cudart_dll_name = 'cudart64_90.dll' cuda_version_number = '9.0' nvcuda_dll_name = 'nvcuda.dll' cudnn_dll_name = 'cudnn64_7.dll' cudnn_version_number = '7' 

Se asume que la versión cudnn es 7. Así que solo hay que corregirlo como:

 cudnn_dll_name = 'cudnn64_6.dll' cudnn_version_number = '6'