En Windows, TensorFlow informa uno o ambos de los siguientes errores después de ejecutar una import tensorflow
declaración:
No module named "_pywrap_tensorflow"
DLL load failed.
En Windows, TensorFlow informa uno o ambos de los siguientes errores después de ejecutar una import tensorflow
declaración:
No module named "_pywrap_tensorflow"
DLL load failed.
Respuestas:
El problema fue la biblioteca cuDNN para mí, por la razón que sea, cudnn-8.0-windows10-x64-v6.0 NO estaba funcionando, usé cudnn-8.0-windows10-x64-v5.1 - ¡TODO BIEN!
Mi configuración funciona con Win10 64 y Nvidia GTX780M:
Si ejecuta Windows 32, asegúrese de obtener las versiones de 32 bits de los archivos mencionados anteriormente.
En mi caso, el archivo "cudnn64_6.dll" en la carpeta / bin tuvo que ser renombrado a "cudnn64_5.dll" para que el error desapareciera. Pasé fácilmente dos horas para resolver esto, y seguí la guía de instalación oficial al pie de la letra. Esto es cierto para la instalación a través de pip (con soporte oficial) y conda (con soporte de la comunidad).
cudnn64_6.dll
no lo será cudnn64_5.dll
.
cudnn64_7.dll
a help cudnn64_6.dll
.
Cualquiera de los errores indica que su sistema no se ha instalado MSVCP140.DLL
, lo que requiere TensorFlow.
Para corregir este error:
MSVCP140.DLL
está en tu %PATH%
variable.MSVCP140.DLL
no está en su %PATH%
, instale
Visual C ++ 2015 redistribuible (versión x64), que contiene esta DLL.Solo para tensorflow con CPU:
Había instalado tensorflow usando el comando:
pip3 install --upgrade tensorflow
Esto instaló tensorflow 1.7
pero no pudo importar el tensorflow desde adentro python 3.6.5 amd64
usando:
import tensorflow as tf
Por lo tanto, cambié la versión de tensorflow 1.7
a 1.5
usando los siguientes comandos:
pip3 install tensorflow==1.5
Esto desinstaló la versión anterior y la instaló 1.5
. Ahora funciona.
Parece que mi CPU no admite el conjunto de instrucciones AVX que se necesita entensorflow 1.7
Tenía MSVCP140.DLL
en las carpetas del sistema y .DLL en la variable PATHEXT en Variable de entorno.
Tengo Win7 Pro de 64 bits en la cpu AMD, sin gpu. Estaba siguiendo las instrucciones en "Instalación con pip nativo" en https://www.tensorflow.org/install/install_windows . El paso de instalación salió bien, pero el intento de importar tensorflow produjo lo infame:
ImportError: No module named '_pywrap_tensorflow_internal'
Esta parece ser una de esas situaciones en las que muchas cosas no relacionadas pueden salir mal, dependiendo de la configuración, que caen en cascada hacia el mismo error.
En mi caso, instalar MSVCP140.DLL fue la respuesta.
Ya tienes MSVCP140.DLL
si
C:\Windows\System32\MSVCP140.DLL
, YC:\Windows\SysWOW64\MSVCP140.DLL
.Lo instalé manualmente, lo cual era innecesario (el redistribuible no es todo el lío de desarrollo de Visual C ++ y no es grande). Utilice el enlace publicado anteriormente en este hilo para instalarlo: Visual C ++ 2015 redistribuible .
Además, le recomiendo que anule el directorio de instalación predeterminado para Python y lo coloque en cualquier lugar que no sea debajo C:\Program Files
, porque Windows intenta proteger los archivos contra escritura allí, lo que causa problemas más adelante.
TensorFlow
requiere MSVCP140.DLL
, que puede no estar instalado en su sistema. Para solucionarlo abre la terminal y escribe o pega este enlace:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
Tenga en cuenta que esto es para instalar la versión solo para CPU de TensorFlow.
Para aquellos que utilizan hardware antiguo:
Es posible que obtenga este mismo error debido a que tiene una CPU más antigua con tensorflow-gpu 1.6.
Si su cpu se fabricó antes de 2011, entonces su versión máxima de tensorflow-gpu es 1.5.
Tensorflow 1.6 requiere instrucciones AVX en su cpu. Verificado aquí: documentos de Tensorflow Github
CPU habilitadas para AVX: CPU AVX Wiki
Lo que hice en mi entorno conda para tensorflow:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
El problema para mí fue la biblioteca cuDNN que no cumplía con los requisitos de la tarjeta gráfica. Descargué la versión 6.0 pero para mi GTX980ti, pero la capacidad de cálculo recomendada en el sitio web de nvidia era 5.1 ( http://developer.nvidia.com/cuda-gpus ), así que descargué 5.1 y reemplacé la versión 6.0 y tan pronto como ' He hecho que empezó a funcionar.
Después de mucho ensayo y error, y asegurándose de que VC ++ 2015 Redistributable , cuDNN DLL y todas las demás dependencias sean accesibles desde PATH, parece que Tensorflow GPU solo funciona con Python 3.5.2
(al momento de escribir este artículo)
Entonces, si estás usando Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
Luego abra el intérprete de Python y verifique
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Dispositivo encontrado 0 con propiedades:
nombre: GeForce 940M
mayor: 5 menor: 0
memoryClockRate (GHz) 1.176
pciBusID 0000: 06: 00.0
Memoria total: 2.00GiB
Memoria libre: 1.66GiB
Créditos: esta cuidada guía
Para cada versión de Tensorflow, requiere una versión diferente de CuDnn. ¡En www.tensorflow.org , no mencionaron eso en la guía de instalación!
Mi caso usa tensorflow versión 1.3 que usa cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Compruebe su versión de tensorfow y la versión cuDNN si coinciden.
Y configure el entorno de ruta para cuDNN, si aún no funciona, verifique la respuesta de @ Chris Han .
Publiqué un enfoque general para solucionar el problema "Error en la carga de DLL" en esta publicación en sistemas Windows. Para referencia:
Utilizar las DLL analizador dependencia Dependencias para analizar
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
y determinar la exacta DLL que falta (indicado por un?
lado de la DLL). La ruta del archivo .pyd se basa en la versión de GPU TensorFlow 1.9 que instalé. No estoy seguro de si el nombre y la ruta son los mismos en otras versiones de TensorFlow.Busque información de la DLL que falta e instale el paquete apropiado para resolver el problema.
All files (*.*)
junto al nombre del archivo en lugar de solo exe files (*.exe, *.dll)
.
Uno puede tener la tentación de mantener abierto Powershell / cmd en Windows. Pasé un tiempo razonable hasta que decidí cerrar y volver a abrir mi Powershell solo para darme cuenta de que había hecho todo bien.
Dll no encontrado. Instale Visual C ++ 2015 redistribuible para corregir.
El problema fue la biblioteca cuDNN para mí. Pude ejecutar el código de prueba después de agregar el directorio (posiblemente la carpeta bin) de la DLL cuDNN (no el archivo LIB) en la RUTA de Windows.
Como referencia, instalé TensorFlow desde la fuente usando PIP y mi sistema operativo: Windows 7 e IDE: Visual Studio 2015.
Con la versión 1.3.0 de TensorFlow, debe usar Cudnn 6.0 en lugar de Cudnn 5.0, ya que Cudnn 5.0 está dando este error. No olvide agregar la variable de ruta a Cudnn 6.0. Con cudnn64_6.dll, su Tensorflow funcionará bien. Lea el enlace a continuación. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
Mis dos centavos:
Tuve un montón de problemas al intentar instalar correctamente mi CUDA 8.0 en Windows 7. Tenía una versión anterior instalada y quería actualizarla, así que la desinstalé e intenté instalar CUDA 8.0 (para tensorflow 1.3). La instalación falló cada vez, intenté degradar a CUDA 7.5 y pude instalarlo, pero tuve muchos problemas con tensorflow (similar al problema PATH que se describe aquí). En pocas palabras: lo que funcionó para mí fue:
1) Desinstale TODOS los componentes de NVIDIA (excepto el controlador de gráficos de pantalla)
2) Descargue el kit de herramientas CUDA 8.0 (y el parche) https://developer.nvidia.com/cuda-downloads
3) Compruebe CheckSum MD5 (utilicé MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533 pero cualquiera serviría) para asegurarse de que estuvieran bien (sucedió varias veces que el instalador no se descargó correctamente porque aparentemente mi enrutador WiFi).
4) Ejecute el instalador del kit de herramientas CUDA como root
5) descargue cudnn 8.0 v6 y agregue su ubicación a la variable PATH https://developer.nvidia.com/rdp/cudnn-download
Espero que ayude y ahorre algunos dolores de cabeza ...
NOTA: ¡Este script me ayudó mucho a depurar el problema! (Gracias, señor) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Intentaré dar la solución que funcionó para mí. Parece que diferentes conjuntos de problemas pueden conducir a esta situación.
El software de 32 bits funciona en sistemas operativos de 64 bits. Instalé anaconda-3 (32 bits) en mi sistema operativo de 64 bits. Funcionaba perfectamente bien. Decidí instalar tensorflow en mi máquina y no se instalaría al principio. Estaba usando el entorno conda para instalar tensorflow y obtuve este error.
La solución es si tiene un sistema operativo de 64 bits, instale anaconda de 64 bits y si tiene un sistema operativo de 32 bits, entonces anaconda de 32 bits . Luego, siga el procedimiento estándar mencionado en el sitio web de tensorflow para Windows (instalación de anaconda). Esto hizo posible instalar tensorflow sin ningún problema.
mi respuesta es solo para usuarios de Windows 10, ya que probé lo siguiente en Windows 10. Extendiendo algunas de las respuestas anteriores, sugiero esto: si está usando anaconda, puede evitar todo y simplemente instalar anaconda-navigator usando el comando
conda install -c anaconda anaconda-navigator
Luego, puede iniciar el navegador desde el símbolo del sistema usando el comando
anaconda-navigator
Al ejecutar este comando, obtiene una interfaz gráfica de usuario simple en la que puede crear un entorno virtual, crear el entorno con python = 3.5.2 e instalar el módulo tensorflow-gpu o tensorflow buscando el módulo en el cuadro de búsqueda usando la interfaz gráfica de usuario, también se encargará de instalar los archivos cuda correctos para usted. Usar el navegador anaconda es la solución más simple.
Si no está usando anaconda, tenga cuidado con lo siguiente
tensorflow-gpu 1.3 requiere python 3.5.2, cuda development kit 8.0 y cudaDNN 6.0, por lo tanto, al instalar, asegúrese de ejecutar el comando
pip install tensorflow-gpu==1.3
tensorflow-gpu 1.2.1 o menos requiere python 3.5.2, cuda development kit 8.0 y cudaDNN 5.1, por lo tanto, al instalar, asegúrese de ejecutar el comando
pip install tensorflow-gpu==1.2.1
A continuación se muestran los pasos que debe seguir para los dos procesos anteriores Configuración de las variables de ruta Debe tener las siguientes variables del sistema
CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
CUDA_PATH_V8.0 = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
Tu PATHTEXT debe incluir ".DLL" junto con otras extensiones
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"
También agregue lo siguiente a su ruta
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64;
C:\Windows\SysWOW64;
C:\Windows\System32
Si recibe errores, puede descargar el siguiente código ejecutado por mrry, este código verificará su configuración y le dirá si algo está mal https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Referencias: http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html
La referencia anterior es muy útil. Comente las mejoras a esta respuesta. Espero que esto ayude, gracias.
Para las personas que encuentran esta publicación en 2019, este error también podría ocurrir porque la versión 3.7 de Python no es compatible con TensorFlow (consulte https://www.tensorflow.org/install/pip ). Entonces, verifique la versión de Python:
python --version
En caso de que sea mayor que 3.6, debería rebajarse a 3.6. Para Anaconda:
conda install python=3.6
Luego, instale TensorFlow.
pip install tensorflow
Por cierto, no tenía la versión de GPU, por lo que no hubo problemas relacionados con CUDA en mi caso.
Me encontré con el mismo problema ( en el 09/09/2019 ) mientras investigaba [SO]: Error durante el entrenamiento con la API de estimador en tensorflow .
Preparar:
Error :
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf"
Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.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 "<string>", line 1, in <module>
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.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.
Mirando el módulo "defectuoso" (gracias a Dependency Walker ), resulta que no es él mismo lo que falta, sino algunas de sus dependencias (los archivos cu * _ 100 .dll ).
Verifique [SO]: Python Ctypes - cargar dll arroja OSError: [WinError 193]% 1 no es una aplicación Win32 válida (la respuesta de @ CristiFati) (la sección de Conclusiones al final) para obtener más detalles sobre este tipo de errores.
Tenía una versión anterior de CUDA Toolkit ( 8 ) y, como consecuencia, el cu * _ 80 .dll archivos .
Actualizar a TensorFlow-GPU 1. 14 .0 ( "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu
), hizo que el error fuera un poco más claro (y también más corto):
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf"
Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 75, in preload_check
ctypes.WinDLL(build_info.cudart_dll_name)
File "c:\install\x64\python\python\03.07.03\Lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 28, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 30, in <module>
self_check.preload_check()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 82, in preload_check
% (build_info.cudart_dll_name, build_info.cuda_version_number))
ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
Pasos :
Después de los pasos anteriores, y también estableciendo las rutas correctas, funcionó:
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> set PATH=%PATH%;%CUDA_PATH%\bin;f:\Install\x64\NVidia\GPU Computing Toolkit\cuDNN\7.6\bin
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow;print(\"Success!!!\")"
Success!!!