web-dev-qa-db-fra.com

Sous Windows, l'exécution de "import tensorflow" ne génère pas d'erreur de module nommé "_pywrap_tensorflow"

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.
71
Barry Rosenberg

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:

  • Assurez-vous d’avoir la lib MSVCP140.DLL en vérifiant votre système/chemin - sinon, récupérez-le ici
  • Exécutez le programme d’installation de Windows pour python 3.5.3-AMD64 à partir de ici - NE PAS essayer de nouvelles versions car elles ne fonctionneront probablement pas 
  • Récupérez le fichier cuDNN v5.1 pour CUDA 8.0 à partir de ici - placez-le dans votre dossier d’utilisateur ou dans un autre emplacement connu (vous en aurez besoin dans votre chemin).
  • Obtenez CUDA 8.0 x86_64 de ici
  • Définissez les variables PATH comme devant pointer sur les bibliothèques cuDNN et python (le chemin d'accès python doit être ajouté lors de l'installation de python)
  • Assurez-vous que ".DLL" est inclus dans votre variable PATHEXT
  • Si vous utilisez tensorflow 1.3, vous souhaitez utiliser cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705

Si vous utilisez Windows 32, veillez à vous procurer les versions 32 bits des fichiers mentionnés ci-dessus.

73
DropHit

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é).

20
Vitaly

L'une ou l'autre erreur indique que votre système n'a pas installé MSVCP140.DLL, Requis par TensorFlow.

Pour corriger cette erreur:

  1. Déterminez si MSVCP140.DLL est dans votre variable %PATH%.
  2. Si MSVCP140.DLL ne figure pas dans votre %PATH%, installez le fichier Visual C++ 2015 redistributable (version x64), qui contient cette DLL.
13
Barry Rosenberg

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.

8
JWG

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.

8
Rakibul Haq

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. 

7
Chris Han

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.  

6
Fahtima

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
5
Jasen

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é

4
Madhur

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.

3
nguyenhoai890

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.

3
Remus.A

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éé.

2
Wesam Na

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.

  1. 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.

  2. Recherchez des informations sur la DLL manquante et installez le package approprié pour résoudre le problème.

2
GZ0

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. 

2
Victor Grego

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

1
edgarbc

tensorflow 1.3 ne supporte pas cuda 9.0 yet . Je me dégrade en cuda 8.0 , alors cela fonctionne.

1
yichudu

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.

1
coderredoc

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

1
Shivam Panwar

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.

1
Cloud Cho

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.

0
Catalin Stoean