Sous Windows, TensorFlow signale l'une ou les deux erreurs suivantes après l'exécution d'une import tensorflow
instruction:
No module named "_pywrap_tensorflow"
DLL load failed.
Sous Windows, TensorFlow signale l'une ou les deux erreurs suivantes après l'exécution d'une import tensorflow
instruction:
No module named "_pywrap_tensorflow"
DLL load failed.
Réponses:
Le problème était la bibliothèque cuDNN pour moi - pour une raison quelconque, cudnn-8.0-windows10-x64-v6.0 ne fonctionnait PAS - j'ai utilisé cudnn-8.0-windows10-x64-v5.1 - TOUT BON!
Ma configuration fonctionnant avec Win10 64 et la Nvidia GTX780M:
Si vous exécutez Windows 32, assurez-vous d'obtenir les versions 32 bits des fichiers mentionnés ci-dessus.
Dans mon cas, le fichier "cudnn64_6.dll" dans le dossier / bin a dû être renommé en "cudnn64_5.dll" pour que l'erreur disparaisse. J'ai facilement passé deux heures à comprendre cela et j'ai suivi le guide d'installation officiel à la lettre. Cela est vrai pour l'installation via pip (officiellement pris en charge) et conda (pris en charge par la communauté).
cudnn64_6.dll
pas cudnn64_5.dll
.
cudnn64_7.dll
en cudnn64_6.dll
aide.
L'une ou l'autre des erreurs indique que votre système n'a pas été installé MSVCP140.DLL
, ce que TensorFlow requiert.
Pour corriger cette erreur:
MSVCP140.DLL
est dans votre %PATH%
variable.MSVCP140.DLL
n'est pas le cas %PATH%
, installez le
redistribuable Visual C ++ 2015 (version x64), qui contient cette DLL.Pour tensorflow avec CPU uniquement:
J'avais installé tensorflow en utilisant la commande:
pip3 install --upgrade tensorflow
Cela a installé tensorflow 1.7
mais n'a pas pu importer le tensorflow de Withing en python 3.6.5 amd64
utilisant:
import tensorflow as tf
Donc, j'ai rétrogradé la version tensorflow de 1.7
à en 1.5
utilisant la commande suivante:
pip3 install tensorflow==1.5
Cela a désinstallé la version précédente et installé 1.5
. Maintenant ça marche.
Il semble que mon CPU ne prend pas en charge le jeu d'instructions AVX nécessaire danstensorflow 1.7
J'avais MSVCP140.DLL
dans les dossiers système et .DLL dans la variable PATHEXT dans la variable d'environnement.
J'ai Win7 Pro 64 bits sur processeur AMD, pas de GPU. Je suivais les instructions sous «Installation avec pip natif» à https://www.tensorflow.org/install/install_windows . L'étape d'installation s'est bien déroulée mais la tentative d'importer tensorflow a produit le tristement célèbre:
ImportError: No module named '_pywrap_tensorflow_internal'
Cela semble être l'une de ces situations où beaucoup de choses indépendantes peuvent mal tourner, en fonction de la configuration, qui aboutissent toutes à la même erreur.
Dans mon cas, l'installation de MSVCP140.DLL était la réponse.
Vous avez MSVCP140.DLL
déjà si
C:\Windows\System32\MSVCP140.DLL
, ETC:\Windows\SysWOW64\MSVCP140.DLL
.Je l'ai installé manuellement, ce qui n'était pas nécessaire (le redistribuable n'est pas tout le désordre de développement de Visual C ++ et n'est pas grand). Utilisez le lien publié plus tôt dans ce fil pour l'installer: Visual C ++ 2015 redistribuable .
En outre, je vous recommande de remplacer le répertoire d'installation par défaut pour Python et de le placer n'importe où C:\Program Files
, car Windows tente de protéger les fichiers en écriture, ce qui pose des problèmes plus tard.
TensorFlow
requiert MSVCP140.DLL
, qui peut ne pas être installé sur votre système. Pour le résoudre, ouvrez le terminal et tapez ou collez ce lien:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
Notez que ceci consiste à installer la version CPU uniquement de TensorFlow.
Pour ceux qui utilisent du matériel plus ancien:
Vous pouvez obtenir cette même erreur en raison d'un processeur plus ancien utilisant tensorflow-gpu 1.6.
Si votre processeur a été fabriqué avant 2011, votre version max tensorflow-gpu est 1.5.
Tensorflow 1.6 nécessite des instructions AVX sur votre processeur. Vérifié ici: documentation Tensorflow Github
Processeurs compatibles AVX: Processeurs Wiki AVX
Ce que j'ai fait dans mon environnement conda pour tensorflow:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
Le problème pour moi était la bibliothèque cuDNN qui ne correspondait pas aux exigences de la carte graphique. J'ai téléchargé la version 6.0 mais pour ma GTX980ti mais la capacité de calcul recommandée sur le site Web nvidia était 5.1 ( http://developer.nvidia.com/cuda-gpus ) donc j'ai téléchargé 5.1 et remplacé la version 6.0 et dès que j'ai ' ai fait que cela a commencé à fonctionner.
Après de nombreux essais et erreurs, et en vous assurant que VC ++ 2015 Redistributable , cuDNN DLL et toutes les autres dépendances sont accessibles à partir de PATH, il semble que le GPU Tensorflow ne fonctionne qu'avec Python 3.5.2
(au moment de la rédaction de cet article)
Donc si vous utilisez Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
Ensuite, ouvrez l'interpréteur python et vérifiez
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Appareil trouvé 0 avec les propriétés:
nom: GeForce 940M
majeur: 5 mineur: 0
memoryClockRate (GHz)
1.176 pciBusID 0000: 06: 00.0
Mémoire totale: 2.00GiB
Mémoire libre: 1.66GiB
Crédits: ce guide soigné
Pour chaque version de Tensorflow, il nécessite une version différente de CuDnn. Sur www.tensorflow.org , ils n'en ont pas parlé dans le guide d'installation!
Mon cas utilise la version 1.3 de tensorflow qui utilise cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Veuillez vérifier votre version tensorfow et la version cuDNN si elles correspondent.
Et veuillez définir l'environnement de chemin pour cuDNN, si cela ne fonctionne toujours pas, veuillez vérifier la réponse de @ Chris Han .
J'ai publié une approche générale pour résoudre le problème «Échec du chargement de la DLL» dans cet article sur les systèmes Windows. Pour référence:
Utilisez l'analyseur de dépendances DLL Dépendances pour analyser
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
et déterminer la DLL manquante exacte (indiquée par un à?
côté de la DLL). Le chemin du fichier .pyd est basé sur la version du GPU TensorFlow 1.9 que j'ai installée. Je ne suis pas sûr que le nom et le chemin soient les mêmes dans les autres versions de TensorFlow.Recherchez des informations sur la DLL manquante et installez le package approprié pour résoudre le problème.
All files (*.*)
côté du nom de fichier au lieu de simplement exe files (*.exe, *.dll)
.
On peut être tenté de garder le Powershell / cmd ouvert sous Windows. J'ai passé un temps raisonnable jusqu'à ce que je décide de fermer et de rouvrir mon Powershell pour me rendre compte que j'ai tout bien fait.
Dll introuvable. Installez Visual C ++ 2015 redistribuable pour corriger.
Le problème était la bibliothèque cuDNN pour moi. J'ai pu exécuter le code de test après avoir ajouté le répertoire (éventuellement le dossier bin) de la DLL cuDNN (pas le fichier LIB) dans le PATH Windows.
Pour référence, j'ai installé TensorFlow à partir de la source à l'aide de PIP et de mon système d'exploitation: Windows 7 et IDE: Visual Studio 2015.
Avec TensorFlow version 1.3.0, vous devez utiliser Cudnn 6.0 au lieu de Cudnn 5.0 car Cudnn 5.0 donne cette erreur. N'oubliez pas d'ajouter la variable de chemin à Cudnn 6.0. Avec cudnn64_6.dll votre Tensorflow fonctionnera correctement. Lisez le lien ci-dessous. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
Mes deux centimes:
J'ai eu une tonne de problèmes en essayant d'installer correctement mon CUDA 8.0 sur Windows 7. J'avais une version précédente installée et je voulais mettre à niveau donc je l'ai désinstallée et j'ai essayé d'installer CUDA 8.0 (pour tensorflow 1.3). L'installation a échoué à chaque fois, j'ai essayé de rétrograder vers CUDA 7.5 et j'ai pu l'installer mais j'ai eu une tonne de problèmes avec tensorflow (similaire au problème PATH décrit ici). En bref: ce qui a fonctionné pour moi était:
1) Désinstallez TOUS les composants NVIDIA (à l'exception du pilote graphique d'affichage)
2) Téléchargez la boîte à outils CUDA 8.0 (et le correctif) https://developer.nvidia.com/cuda-downloads
3) Vérifiez le CheckSum MD5 (j'ai utilisé MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533 mais tout ferait l'affaire) pour vous assurer qu'ils allaient bien (c'est arrivé plusieurs fois que l'installateur n'a pas été téléchargé correctement car mon routeur WiFi apparemment).
4) Exécutez le programme d'installation de la boîte à outils CUDA en tant que root
5) téléchargez le cudnn 8.0 v6 et ajoutez son emplacement à la variable PATH https://developer.nvidia.com/rdp/cudnn-download
J'espère que cela aide et évite quelques maux de tête ...
REMARQUE: ce script m'a beaucoup aidé à déboguer le problème! (Merci mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Je vais essayer de donner la solution qui a fonctionné pour moi. Il semble que différents ensembles de problèmes peuvent conduire à cette situation.
Le logiciel 32 bits fonctionne sous OS 64 bits. J'ai installé anaconda-3 (32 bits) dans mon système d'exploitation 64 bits. Cela fonctionnait parfaitement bien. J'ai décidé d'installer tensorflow sur ma machine et il ne s'installerait pas au début. J'utilisais l'environnement conda pour installer tensorflow et j'ai obtenu cette erreur.
La solution est que si vous exécutez un système d'exploitation 64 bits, installez un anaconda 64 bits et si un système d'exploitation 32 bits, un anaconda 32 bits . Suivez ensuite la procédure standard mentionnée sur le site Web tensorflow pour Windows (installation anaconda). Cela a permis d'installer tensorflow sans aucun problème.
ma réponse est pour les utilisateurs de Windows 10 uniquement car j'ai essayé ce qui suit sur Windows 10. En étendant certaines des réponses ci-dessus, je suggère ceci: Si vous utilisez anaconda, vous pouvez tout éviter et installer simplement anaconda-navigator en utilisant la commande
conda install -c anaconda anaconda-navigator
Ensuite, vous pouvez lancer le navigateur à partir de l'invite de commande en utilisant la commande
anaconda-navigator
En exécutant cette commande, vous obtenez une interface graphique simple où vous pouvez créer un environnement virtuel, créer l'environnement avec python = 3.5.2 et installer le module tensorflow-gpu ou tensorflow en recherchant le module dans la zone de recherche à l'aide de l'interface graphique, cela prendra également soin d'installer les fichiers cuda corrects pour vous. Utiliser le navigateur anaconda est la solution la plus simple.
Si vous n'utilisez pas anaconda, faites attention aux points suivants
tensorflow-gpu 1.3 nécessite python 3.5.2, le kit de développement cuda 8.0 et cudaDNN 6.0, donc lors de l'installation, assurez-vous d'exécuter la commande
pip install tensorflow-gpu==1.3
tensorflow-gpu 1.2.1 ou moins nécessite python 3.5.2, cuda development kit 8.0 et cudaDNN 5.1 donc lors de l'installation, assurez-vous d'exécuter la commande
pip install tensorflow-gpu==1.2.1
Vous trouverez ci-dessous les étapes à suivre pour les deux processus ci-dessus. Configuration de vos variables de chemin Vous devez disposer des variables système suivantes
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"
Votre PATHTEXT doit inclure ".DLL" avec d'autres extensions
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"
Ajoutez également ce qui suit à votre chemin
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 vous obtenez des erreurs, vous pouvez télécharger le code ci-dessous par mrry, ce code vérifiera votre configuration et vous dira si quelque chose ne va pas https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Références: http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html
La référence ci-dessus est très utile. Veuillez commenter les améliorations apportées à cette réponse. J'espère que cela aide, merci.
Pour les personnes qui trouvent cette publication en 2019, cette erreur peut également se produire car la version 3.7 de Python ne prend pas en charge TensorFlow (voir https://www.tensorflow.org/install/pip ). Alors, vérifiez la version Python:
python --version
S'il est supérieur à 3,6, il doit être rétrogradé à 3,6. Pour Anaconda:
conda install python=3.6
Ensuite, installez TensorFlow.
pip install tensorflow
Btw, je n'avais pas la version GPU, donc il n'y avait pas de problèmes liés à CUDA dans mon cas.
Ran dans le même problème ( en 2019/09/09 ) lors de l'enquête [SO]: Erreur lors de l'entraînement à l'aide de l'API estimator dans tensorflow .
Installer:
Erreur :
[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.
En regardant le module "défectueux" (grâce à Dependency Walker ), il s'avère que ce n'est pas lui-même qui manque, mais certaines de ses dépendances (les fichiers cu * _ 100 .dll ).
Vérifiez [SO]: Python Ctypes - le chargement de dll lève OSError: [WinError 193]% 1 n'est pas une application Win32 valide (réponse de @ CristiFati) (la section Conclusions à la fin) pour plus de détails sur ce type d'erreurs.
J'avais une ancienne version de CUDA Toolkit ( 8 ), et par conséquent, les fichiers cu * _ 80 .dll .
La mise à niveau vers TensorFlow-GPU 1. 14 .0 ( "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu
), a rendu l'erreur un peu plus claire (et également plus courte):
[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
Étapes :
Après les étapes ci-dessus et en définissant les chemins corrects, cela a fonctionné:
[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!!!