Sous Windows, TensorFlow signale l'une des erreurs suivantes, ou les deux, après l'exécution d'une instruction import tensorflow
:
No module named "_pywrap_tensorflow"
DLL load failed.
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 va bien!
Ma configuration fonctionne avec Win10 64 et la Nvidia GTX780M:
Si vous utilisez Windows 32, veillez à vous procurer les versions 32 bits des fichiers mentionnés ci-dessus.
Dans mon cas, le fichier "cudnn64_6.dll" du dossier/bin a dû être renommé "cudnn64_5.dll" pour que l'erreur disparaisse. J'ai facilement passé deux heures à résoudre ce problème et j'ai suivi à la lettre le guide d'installation officiel. Ceci est vrai pour l'installation via pip (officiellement supporté) et conda (supporté par la communauté).
L'une ou l'autre erreur indique que votre système n'a pas installé MSVCP140.DLL
, Requis par TensorFlow.
Pour corriger cette erreur:
MSVCP140.DLL
est dans votre variable %PATH%
.MSVCP140.DLL
ne figure pas dans votre %PATH%
, installez le fichier Visual C++ 2015 redistributable (version x64), qui contient cette DLL.J'ai Win7 Pro 64 bits sur cpu AMD, pas de gpu. Je suivais les instructions sous "Installation avec le pip natif" à https://www.tensorflow.org/install/install_windows . L’étape de l’installation s’est bien déroulée, mais la tentative d’importation de tensorflow a donné l’infâme:
ImportError: Aucun module nommé '_pywrap_tensorflow_internal'
Cela semble être l’une de ces situations où beaucoup de problèmes non liés peuvent mal se passer, en fonction de la configuration, ce qui conduit tous à la même erreur.
Dans mon cas, installer MSVCP140.DLL était la solution.
Vous avez déjà MSVCP140.DLL si (a) vous avez un fichier C:\Windows\System43\MSVCP140.DLL, ET (b) si vous avez un système 64 bits, alors vous avez également C:\Windows\SysWOW64\MSVCP140. DLL.
Je l'ai installé manuellement, ce qui était inutile (le redistribuable ne concerne pas tout le désordre de développement Visual C++ et n'est pas volumineux). Utilisez le lien précédemment affiché dans ce fil de discussion pour l'installer: Visual C++ 2015 redistribuable .
De plus, je vous recommande de remplacer le répertoire d'installation par défaut pour Python et de le placer n'importe où, pas sous C:\Program Files, car Windows tente de protéger les fichiers en écriture, ce qui pose problème ultérieurement.
Pour tensorflow avec CPU uniquement:
J'avais installé tensorflow en utilisant la commande:
pip3 install --upgrade tensorflow
Cette installé tensorflow 1.7
Mais il n’est pas possible d’importer le tensorflow depuis python 3.6.5 AMD64
avec:
import tensorflow as tf
J'ai donc déclassé la version tensorflow de 1.7
à 1.5
à l'aide de 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 supporte pas l'instruction AVX set nécessaire dans tensorflow 1.7
J'ai eu MSVCP140.DLL
dans les dossiers système et .DLL dans la variable PATHEXT dans Variable d'environnement.
cUDNN provoque mon problème. La variable PATH ne fonctionne pas pour moi. Je dois copier les fichiers de mes dossiers CUDNN dans une structure de dossiers respectueuse CUDA 8.0.
TensorFlow
nécessite MSVCP140.DLL
, qui ne peut pas être installé sur votre système . Pour le résoudre, ouvrez le terminal en 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 de TensorFlow réservée à la CPU.
Pour ceux qui utilisent un matériel ancien:
Vous pouvez obtenir cette même erreur en raison de l’ancien processeur utilisant tensorflow-gpu 1.6.
Si votre processeur a été fabriqué avant 2011, votre version maximale de tensorflow-gpu est 1.5.
Tensorflow 1.6 nécessite des instructions AVX sur votre processeur. Vérifié ici: Documents Tensorflow Github
Processeurs compatibles AVX: Wiki Processeurs AVX
Ce que j'ai fait dans mon environnement conda pour tensorflow:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
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 depuis PATH, il semble que Tensorflow GPU fonctionne uniquement avec Python 3.5.2
(au moment d'écrire ces lignes)
Donc, si vous utilisez Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
Puis ouvrez l’interprète python et vérifiez
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Périphérique trouvé 0 avec 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 disponible: 1.66GiB
Crédits: ce guide soigné
Pour chaque version de Tensorflow, cela nécessite une version différente de CuDnn. Sur www.tensorflow.org, ils n’ont pas mentionné cela dans le guide d’installation!
Mon cas utilise la version 1.3 de tensorflow, qui utilise la méthode cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Veuillez vérifier votre version de tensorfow et votre version du réseau si elles correspondent.
Et s'il vous plaît définir l'environnement de chemin pour cuDNN, si cela ne fonctionne toujours pas, s'il vous plaît vérifier le commentaire de @Chris Han.
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 de nvidia était 5.1 ( http://developer.nvidia.com/cuda-gpus ). Dès que je l'ai fait, cela a commencé à fonctionner.
Si vous essayez d'installer un GPU tensorflow sous Windows, vous pouvez trouver this easy tutorial.
Remarque: Si vous utilisez PyCharm par exemple, vous devez remplacer l'interpréteur par l'environnement créé.
J'ai posté une approche générale pour résoudre le problème "Échec du chargement de DLL" dans cet article sur les systèmes Windows.
Utilisez l'analyseur de dépendances DLL Dependencies pour analyser <Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
et déterminer le DLL exact manquant (indiqué 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 sais pas si le nom et le chemin sont identiques dans les autres versions de TensorFlow.
Recherchez des informations sur la DLL manquante et installez le package approprié pour résoudre le problème.
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 fait correctement.
Mes deux centimes:
J'ai eu une tonne de problèmes pour essayer d'installer correctement CUDA 8.0 sous Windows 7. J'avais une version antérieure installée et je voulais effectuer une mise à niveau. Je l'ai donc désinstallée et j'ai essayé d'installer CUDA 8.0 (pour tensorflow 1.3). L'installation échouait à chaque fois, j'ai essayé de passer à CUDA 7.5 et j'ai pu l'installer, mais j'ai eu une tonne de problèmes de tensorflow (similaire au problème de PATH décrit ici). Longue histoire courte: ce qui a fonctionné pour moi a été:
1) Désinstallez chaque composant NVIDIA (sauf le pilote graphique d'affichage)
2) Télécharger CUDA Toolkit 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 le monde le ferait) pour s’assurer qu’ils allaient bien (le Il est arrivé plusieurs fois que le programme d’installation n’ait pas été téléchargé correctement car mon routeur WiFi était apparemment).
4) Exécutez le programme d'installation du toolkit 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 vous aidera et vous évitera des maux de tête ...
NOTE: Ce script m'a beaucoup aidé à résoudre le problème! (Merci, mrry) https://Gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
tensorflow 1.3 ne supporte pas cuda 9.0 yet . Je me dégrade en cuda 8.0 , alors cela fonctionne.
Je vais essayer de donner la solution qui a fonctionné pour moi. Il semble que différents problèmes puissent conduire à cette situation.
Le logiciel 32 bits fonctionne sous un système d'exploitation 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 l'installerait pas au début. J'utilisais conda environment pour installer tensorflow et j'ai eu cette erreur.
La solution est si vous utilisez un système d’exploitation 64 bits, installez anaconda 64 bits et si un système d’exploitation 32 bits, alors anaconda 32 bits . Suivez ensuite la procédure standard mentionnée sur le site Web tensorflow pour Windows (installation d’Anaconda). Cela a permis d'installer tensorflow sans aucun problème.
Avec la version 1.3.0 de TensorFlow, vous devez utiliser Cudnn 6.0 au lieu de Cudnn 5.0, car Cudnn 5.0 génère cette erreur. N'oubliez pas d'ajouter une 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
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 un dossier bin) du fichier cuDNN DLL (fichier non LIB) dans Windows PATH.
Pour référence, j'ai installé TensorFlow à partir de la source en utilisant PIP et mon système d'exploitation: Windows 7 et IDE: Visual Studio 2015.
DLL non trouvée. Installez Visual C++ 2015 redistribuable pour résoudre le problème.
Pour les personnes ayant trouvé cet article en 2019, cette erreur pourrait é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
Dans le cas où il est supérieur à 3,6, il devrait être abaissé à 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.