developer - TensorFlow en Windows: "No se pudo abrir la biblioteca CUDA cudnn64_5.dll"
install tensorflow windows (12)
Tensorflow acaba de lanzar el soporte de windows. Instalé la versión gpu y CUDA 8.0 y python 3.5. Sin embargo, después de importar el tensorflow recibí el siguiente error:
>>> import tensorflow
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library cublas64_80.dll locally
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:119] Couldn''t open CUDA library cudnn64_5.dll
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/cuda/cuda_dnn.cc:3459] Unable to load cuDNN DSO
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library cufft64_80.dll locally
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library nvcuda.dll locally
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library curand64_80.dll locally
¿Alguien puede ayudar? ¡Gracias!
Acabo de descargar el archivo cuda.dll de este sitio web: https://developer.nvidia.com/cudnn
y luego moví la carpeta descomprimida a donde estaban el resto de mis bibliotecas de anaconda.
Yo uso pycharm, por lo que fue fácil ver dónde se almacenaron todas las bibliotecas externas dentro de anaconda. ¡Espero que esto ayude!
Además de las respuestas anteriores, asegúrese de haber descargado la versión compatible de cuDNN. Actualmente, TensorFlow admite el cuDNN v.5.1 anterior, mientras que hay un cuDNN 6.0 más reciente disponible en el sitio de Nvidia. Tuve tales errores con 6.0. Cuando volví a 5.1 todo funcionó.
- Consulte los requisitos de TensorFlow aquí: https://www.tensorflow.org/install/install_windows
- Descargue la versión compatible de cuDNN desde aquí: https://developer.nvidia.com/rdp/cudnn-download
Como en mi prueba, encontré que TF 1.2 es compatible con cudnn 64_5, y TF 1.3 es compatible con cudnn 64_6. Espero que esto ayude. :)
Me tomó mucho en cuanto a .
Finalmente lo logré tomando los mismos stpes pero en orden.
Eliminado el tensorflow anterior de mi entorno conda.
Instalé CUDA v9.1 para Windows 8 (instalación estándar con la versión predeterminada de VisualStudio) y agregé "C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v9.1" a la ruta.
Descargó y extrajo cudnn-9.1-windows-7-x64 , lo movió a "Archivos de programa" y lo agregó a la ruta "C: / Archivos de programa / cuda / bin" .
- Instalé tensorflow con pip en mi entorno conda "pip install --ignore-instalado --upgrade tensorflow" .
Para aquellos de ustedes que aterrizan aquí por:
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:119] Couldn''t open CUDA library cublas64_80.dll
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/cuda/cuda_blas.cc:2294] Unable to load cuBLAS DSO.
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library cudnn64_5.dll locally
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:119] Couldn''t open CUDA library cufft64_80.dll
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/cuda/cuda_fft.cc:344] Unable to load cuFFT DSO.
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library nvcuda.dll locally
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/dso_loader.cc:119] Couldn''t open CUDA library curand64_80.dll
I c:/tf_jenkins/home/workspace/release-win/device/gpu/os/windows/tensorflow/stream_executor/cuda/cuda_rng.cc:338] Unable to load cuRAND DSO.
Necesitas agregar la ruta regular de CUDA. No sé por qué no los pusieron juntos como una descarga. Muy tonto.
C:/Users/user>set PATH=%PATH%;C:/tools/cuda/bin;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/bin
También asegúrese de que no haya cudnn64_5.dll
adicional (de la versión incorrecta) en otra ruta.
Entonces, si colocó la DLL en .../CUDA/v8.0/bin
en el pasado, recuerde que lo hizo y no puso una versión más nueva en .../CuDNN/v5.1/bin
sin eliminar la versión anterior desde el otro directorio.
También puede poner el cuda64_5.dll en el directorio C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v9.0 / bin y funciona bien.
Puede usar la carpeta GUI y cargar el archivo .dll en el directorio. Entonces no necesita definir el PATH cada vez que use Tensorflow.
Tuve este problema y me tomó varios intentos para resolverlo. Esta respuesta se aplica a Python 64 en Windows 64 También tengo VS2017 instalado con Python 3.6
Desde una máquina Windows 64 limpia Instale Visual Studio 2015 (nota: NO vs2017, al menos no todavía). La edición comunitaria es gratuita. Asegúrate de instalar el compilador de C ++. Necesitarás esto para compilar futuras librerías de python.
Esto también solucionará cualquier problema con msvcp140.dll o msvcrt * .dlls. Alternativamente, puede instalar VC Redistributable (pero recomiendo instalar VS2015 en su lugar, ya que esto le permitirá compilar e instalar futuras bibliotecas de Python).
Luego, instale VS2017 y esta vez también seleccione Python y Data Learning (el scikit). De manera predeterminada, se instalará Anaconda con Python 3.6 (construido con VS2015). También hay algunas características útiles.
* También asegúrese de tener una tarjeta Nvidia compatible (vea las respuestas anteriores)
Luego, asegúrese de tener los últimos controladores de Nvidia instalados en su computadora.
Luego, asegúrese de haber instalado las bibliotecas de Nvidia mencionadas por Google y otras, incluidas las bandejas Cuda.
* A partir de tensorflow 1.2, Python 3.6 es compatible, por lo que las notas sobre la creación de un entorno Python 3.5 ya no son necesarias
Hay algunos problemas que encontré con tensorflow 1.2. También probé tensorflow 1.31rc2 en mi entorno
Problema nº 1: cortafuegos (para quienes están detrás de un cortafuegos)
Esto evitará las instalaciones a través de "pip install". Para solucionar esto, agregue --trusted-host pypi.python.org
Por ejemplo
pip instala tensorflow-gpu --trusted-host pypi.python.org
Problema # 2 - Actualizar a numpy 1.13.1
La instalación de tensorflow se actualizará a una versión incompatible de numpy 1.13.1 (al menos en mi máquina con Windows). Para solucionar esto, descargue la rueda en http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy look para numpy-1.13.1 + mkl-cp36-cp36m-win_amd64.whl
Instale esta rueda antes de instalar tensorflow. Esto evitará que tensorflow instale una versión incompatible del paquete numpy 1.13.1
NOTA: vea cómo instalar ruedas en otras publicaciones (pip install fullpath_of_wheel)
NOTA: si ya ha instalado tensorflow, asegúrese de forzar una actualización usando la opción --upgrade con pip install)
Problema # 3 - paquetes de nvidia cuda en diferentes ubicaciones
Para comprobar si tiene los paquetes CU * .DLL adecuados, use el comando "dónde" (desde un indicador de comandos C: /)
donde cublas64_80.dll
donde cudnn64_5.dll
donde cufft64_80.dll
donde nvcuda.dll
donde curand64_80.dll
donde cusolver64_80.dll
Si su máquina es como la mía, encontrará esas DLL en varias ubicaciones y, a veces, ni siquiera existen. Por ejemplo, se encontró cublas64_80.dll en mi directorio c: / archivos de programa / Anaconda3 nvcuda.dll en mi c: / system32 / windows y así sucesivamente. Si tienes instalado matlab, tendrá su propia versión. CNTK tiene sus propias versiones también. Nvidia los pondrá en otro directorio. Este es otro problema más. Como lo mencionaron otros, algunos de los archivos DLL que necesita los proporciona Nvidia en un archivo zip.
En lugar de intentar arreglar tus rutas, te recomiendo que pruebes esto primero
Recoja las 6 dll mencionadas anteriormente y colóquelas en UN directorio como c: / tfexperiment
Luego cd en c: / tfexperiment
ejecute python.exe desde esta ubicación. Windows ahora buscará las dlls en la ruta actual primero
Ahora, una vez que Python carga, escribe
importar tensorflow como tf
debería funcionar para usted (con suerte). Esta fue la única forma en que pude hacer que funcionara en mi máquina. Si llega tan lejos, simplemente puede agregar c: / tfexperiment como su primera ruta en la variable de entorno de ruta. O puede averiguar el orden de ruta correcto.
Si TODAVÍA no funciona, puede ir un paso más allá descargando procmon.exe de Microsoft. Ejecute procmon.exe. Filtrar en el ejecutable python.exe (lo siento, no tengo tiempo para explicar cómo usar procmon). Ahora regrese a su indicador de python y escriba "importar tensorflow como tf" nuevamente. Procmon debería tener muchas líneas de información. Es posible que desee filtrar en loadimage. Esto te dirá qué archivos está cargando. Tenga en cuenta que las extensiones .pyd también son DLL. El último .dll que se cargó (o no se pudo cargar) es probablemente el que causó problemas.
Y puedes comprobar tu variable ambiental de esta manera:
import os
print("Environmental variable:", os.environ["PATH"])
C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;
Mi CUDA_path es "D: /CUDA/v8.0/bin", y no puedo encontrar mi CUDA_path aquí. Encontrará el archivo que falta aquí (como "cublas64_80.dll", "cudnn64_5.dll", etc.). La premisa es que habías terminado tu instalación de CUDA.
Si no puede encontrar su CUDA_path en la variable Ambiental, puede agregar su CUDA_path manualmente: (El orden del siguiente código es muy importante. Agregue la CUDA_path antes de importar TensorFlow ).
import os
os.environ["PATH"] += ";D:/CUDA/v8.0/bin;"
import tensorflow as tf
O puede agregar su CUDA_path en CMD temporalmente :
set PATH=%PATH%;"D:/CUDA/v8.0/bin"
python3 tensorflow_model.py
Funciona en mi computadora portátil (Windows10, Python3.6, Tensorflow-gpu == 1.5). Creo que estas dos formas son soluciones simples.
pip3 install --upgrade tensorflow
tensorflow-gpu
pip3 install --upgrade tensorflow
después de tensorflow-gpu
y funcionó bien.
Creo que es un problema solo cuando se intenta pip3 install --upgrade tensorflow-gpu
directamente.
TL; DR: para usar cuDNN con TensorFlow, el archivo cudnn64_5.dll
debe estar en un directorio que esté en su %PATH%
entorno %PATH%
. Tenga en cuenta que cuDNN es una descarga independiente de CUDA, y debe descargar la versión 5.1 de cuDNN.
En primer lugar, tenga en cuenta que cuDNN no se distribuye con el resto del kit de herramientas CUDA, por lo que deberá descargarlo por separado del sitio web de NVIDIA . En Windows, se distribuye como un archivo ZIP, por lo que debe extraerlo y encontrar el directorio que contiene cudnn64_5.dll
. Por ejemplo, si lo extrae en C:/tools/cuda
, la DLL estará en C:/tools/cuda/bin/cudnn64_5.dll
. Finalmente, puede agregarlo a su ruta escribiendo lo siguiente en el símbolo del sistema:
C:/> set PATH=%PATH%;C:/tools/cuda/bin
C:/> python
...
>>> import tensorflow as tf