Sous Windows, l'exécution de «import tensorflow» génère l'erreur Aucun module nommé «_pywrap_tensorflow»

87

Sous Windows, TensorFlow signale l'une ou les deux erreurs suivantes après l'exécution d'une import tensorflowinstruction:

  • No module named "_pywrap_tensorflow"
  • DLL load failed.
Barry Rosenberg
la source

Réponses:

78

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:

  • Assurez-vous d'avoir la lib MSVCP140.DLL en vérifiant votre système / chemin - sinon obtenez-le ici
  • Exécutez le programme d'installation de Windows pour python 3.5.3-amd64 à partir d' ici - N'essayez PAS de versions plus récentes car elles ne fonctionneront probablement pas
  • Obtenez le cuDNN v5.1 pour CUDA 8.0 à partir d' ici - placez-le sous votre dossier utilisateurs ou dans un autre emplacement connu (vous en aurez besoin dans votre chemin)
  • Obtenez CUDA 8.0 x86_64 à partir d' ici
  • Définissez les variables PATH comme prévu pour qu'elles pointent vers les bibliothèques cuDNN et python (le chemin 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 exécutez Windows 32, assurez-vous d'obtenir les versions 32 bits des fichiers mentionnés ci-dessus.

DropHit
la source
8
Cela peut être évident pour la plupart, mais la DLL CUDA est «cudnn64_5.dll» et le dossier dans lequel elle se trouve doit être dans le chemin .. pas dans le dossier parent. Je l'ai déposé dans '% USERPROFILE% \ AppData \ Local \ cuda \ bin;'
Awesomeness
6
Après avoir ajouté au PATH, n'oubliez pas de fermer votre invite de commande et de l'ouvrir à nouveau. En outre, il vaut la peine de taper "cudnn64_5.dll" dans votre invite de commande pour vous assurer que vous avez les bons paramètres de chemin.
Sean Colombo
9
Je viens de passer 4 heures à déboguer ceci, si vous utilisez tensorflow 1.3, vous voulez utiliser cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705
Chris Barrett
2
Le commentaire de Chris Barret l'a résolu - si vous installez après août 2017, il y a de fortes chances que vous ayez besoin de cuDNN v6,0 et non de 5 ou 7.
user1761806
2
Dans mon cas, python 3.5.4 a également fonctionné. Et je n'ai pas pu installer cuda 8.0 avant de supprimer vs17 et d'installer Visual Studio 15 (win10). C'est vraiment ridicule de devoir trouver et installer les anciennes versions une par une.
margincall le
21

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

Vitaly
la source
1
C'était mon cas. TensorFlow requiert "cuDNN v5.1" mais si vous installez cuDNN v6.0, le nom de fichier du fichier dll cudnn ne le sera cudnn64_6.dllpas cudnn64_5.dll.
Naetmul
1
Si vous utilisez tensorflow 1.3, vous souhaitez utiliser cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705
Chris Barrett
J'utilise tensorflow 1.3 et j'ai dû passer de cudnn64_7.dll (version la plus récente actuellement) à cudnn64_6.dll comme le dit @ChrisBarrett pour que cela fonctionne.
Javier Cabero
1
Dans le cas de tensorflow 1.3 et cudNN 7, renommer de la même manière cudnn64_7.dllen cudnn64_6.dllaide.
Smarty77
12

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:

  1. Déterminez si MSVCP140.DLLest dans votre %PATH%variable.
  2. Si ce MSVCP140.DLLn'est pas le cas %PATH%, installez le redistribuable Visual C ++ 2015 (version x64), qui contient cette DLL.
Barry Rosenberg
la source
1
Cela peut ou non résoudre son problème (en fonction du processeur par rapport au GPU) et bien que la DLL Windows soit nécessaire, cela pourrait également être un autre problème - voir la réponse ci-dessous. Je n'ai eu aucun problème avec la dll Windows, mais j'ai eu un problème avec cuDNN v6.0
DropHit
7
Vous pouvez vérifier si MSVCP140.dll est dans votre chemin en tapant ce qui suit à l'invite de commande: où MSVCP140.DLL
nickandross
Le lien vous amène à la version 2010. Vise-t-on la version 2015 ou 2010?
DAG du
10

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 amd64utilisant:

import tensorflow as tf

Donc, j'ai rétrogradé la version tensorflow de 1.7à en 1.5utilisant 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.DLLdans les dossiers système et .DLL dans la variable PATHEXT dans la variable d'environnement.

Rakibul Haq
la source
mon système: Windows 8.1, Python 3.6.5 64 bits, pas de GPU.
Rakibul Haq
Il faudra peut-être mettre à jour, car depuis la version 2.0.0, tensorflow-gpu est intégré dans l'installation régulière - voir ici: github.com/fo40225/tensorflow-windows-wheel Peut-être que vous voulez considérer ma réponse ici où la compatibilité entre différents les versions de python et tensorflow sont expliquées: stackoverflow.com/questions/45749992/…
Cadoiz le
10

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.DLLdéjà si

  1. vous avez un fichier C:\Windows\System32\MSVCP140.DLL, ET
  2. si vous avez un système 64 bits, vous en avez également C:\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.

JWG
la source
7

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

Fahtima
la source
Pour ma configuration, le binaire qui a travaillé était: storage.googleapis.com/tensorflow/windows/cpu/... - Check pypi.python.org/pypi/tensorflow pour les binaires compilés disponibles. J'ai vérifié quelques-uns d'entre eux jusqu'à ce que le "import tensorflow as tf" réussisse.
David
7

cuDNN cause 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.

Chris Han
la source
6

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
Jasen
la source
4

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.

Remus.A
la source
4

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é

Madhur
la source
4

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 .

nguyenhoai890
la source
3

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:

  1. Utilisez l'analyseur de dépendances DLL Dépendances pour analyser <Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pydet 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.

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

GZ0
la source
1
J'aime cette approche car elle montre explicitement les DLL manquantes. Nous avons découvert que tensorflow 1.11 recherche les dll CUDA 9 et ne semble pas rechercher les bibliothèques CUDA 10.
padmalcom
1
Merci beaucoup pour votre suggestion! Sur ma machine, le problème était que tensorflow recherchait les DLL fournies avec CUDA takeit v9, mais j'ai installé CUDA toolkit v10
Floris Devreese
C'est incroyablement utile. Notez que vous devez sélectionner à All files (*.*)côté du nom de fichier au lieu de simplement exe files (*.exe, *.dll).
Cadoiz le
2

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.

Victor Silva
la source
2

Si vous essayez d'installer le GPU tensorflow sous Windows, vous pouvez trouver ce tutoriel simple et intéressant.

Remarque: Si vous utilisez PyCharm par exemple, vous devez changer l'interpréteur pour l'environnement conda créé.

Wesam Na
la source
1

Dll introuvable. Installez Visual C ++ 2015 redistribuable pour corriger.

Nacho González-Valdizán
la source
Je ne suis pas sûr que cela le couvre exactement - selon le scénario - voir la réponse ci-dessus relative à cuDNN v6.0 - peut également vouloir inclure le lien vers la bibliothèque que vous mentionnez (ce que je vais faire ici microsoft.com/en-us/download/ details.aspx? id = 48145 vs ce texte de présentation rapide :)
DropHit
1

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.

Cloud Cho
la source
1

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

Edgarbc
la source
1

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.

utilisateur2736738
la source
1

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.

M2compétences
la source
L'option anaconda sonne bien, mais en regardant anaconda.org/anaconda/tensorflow-gpu, la version tensorflow-gpu pour Windows semble être 1.1, quel moyen d'obtenir le 1.3 via anaconda?
ftiaronsem
@ftiaronsem Il n'y a aucun moyen d'installer 1.3 en utilisant le navigateur anaconda si vous voulez 1.3 puis suivez le lien de référence et prenez note pour utiliser cudaDNN 6.0
M2skills
1

tensorflow 1.3 ne prend pas encore en charge cuda 9.0 . Je dégrade en cuda 8.0 , puis ça marche.

Yichudu
la source
1

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.

Catalin Stoean
la source
1
J'ai fait ça, j'ai toujours le même problème
RollRoll
Cela a fonctionné pour moi sur deux ordinateurs différents utilisés par mes étudiants. Nous avons toujours eu le problème après avoir essayé les solutions ci-dessus. Dans votre cas, il peut s'agir d'une situation décrite ci-dessus.
Catalin Stoean
0

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

Img0

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 :

  • Désinstaller toute version de CUDA Toolkit (facultatif)
  • Installez [nVidia.Developer]: Archive CUDA Toolkit 10.0
    • Assurez-vous d'installer la v10.0 (contre laquelle cette version de TensorFlow-GPU a été compilée ). J'ai installé la v10. 1 (qui était la dernière, et également la version recommandée au moment de la réponse), et les noms .dll ne correspondaient pas ( cu * _10 1 .dll ). Comme je ne voulais pas installer la v10.0 , j'ai créé des liens symboliques (avec les noms "corrects") vers les fichiers existants, et cela a fonctionné. Mais gardez à l'esprit que cela n'est pas pris en charge !!! Vous pouvez rencontrer des comportements amusants (y compris des plantages) . Ceci est une solution de contournement (boiteux) ( gainarie )
    • De plus, une version cuDNN compatible (c'est-à-dire pour une version spécifique de CUDA Toolkit ) ( [nVidia.Developer]: cuDNN Archive ) est requise. Pour accéder à l' URL de téléchargement , un abonnement nVidia est requis

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!!!
CristiFati
la source