Unter Windows wird beim Ausführen von "Tensorflow importieren" kein Modul mit dem Namen "_pywrap_tensorflow" generiert

87

Unter Windows meldet TensorFlow nach dem Ausführen einer import tensorflowAnweisung einen oder beide der folgenden Fehler :

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

Antworten:

78

Das Problem war die cuDNN-Bibliothek für mich - aus irgendeinem Grund funktionierte cudnn-8.0-windows10-x64-v6.0 NICHT - ich habe cudnn-8.0-windows10-x64-v5.1 verwendet - ALLES GUT!

Mein Setup mit Win10 64 und der Nvidia GTX780M:

  • Stellen Sie sicher, dass Sie die lib MSVCP140.DLL haben, indem Sie Ihr System / Ihren Pfad überprüfen - falls nicht hier ab
  • Führen Sie die Windows - Installationsprogramm für Python 3.5.3-amd64 von hier - Versuchen Sie nicht , neuere Versionen , da sie wird wahrscheinlich nicht funktionieren
  • Holen Sie sich das cuDNN v5.1 für CUDA 8.0 von hier - legen Sie es in Ihrem Benutzerordner oder an einem anderen bekannten Ort ab (Sie benötigen dies in Ihrem Pfad).
  • Holen Sie sich CUDA 8.0 x86_64 von hier
  • Stellen Sie PATH vars wie erwartet so ein, dass sie auf die cuDNN-Bibliotheken und Python verweisen (der Python-Pfad sollte während der Python-Installation hinzugefügt werden).
  • Stellen Sie sicher, dass ".DLL" in Ihrer PATHEXT-Variablen enthalten ist
  • Wenn Sie Tensorflow 1.3 verwenden, möchten Sie cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705 verwenden

Wenn Sie Windows 32 ausführen, stellen Sie sicher, dass Sie die 32-Bit-Versionen der oben genannten Dateien erhalten.

DropHit
quelle
8
Für die meisten mag dies offensichtlich sein, aber die CUDA-DLL lautet 'cudnn64_5.dll' und der Ordner, in dem sie sich befindet, muss sich im Pfad befinden. Nicht der übergeordnete Ordner. Ich habe es in '% USERPROFILE% \ AppData \ Local \ cuda \ bin;' abgelegt.
Großartigkeit
6
Denken Sie nach dem Hinzufügen zum PATH daran, die Eingabeaufforderung zu schließen und erneut zu öffnen. Es lohnt sich auch, "cudnn64_5.dll" in Ihre Eingabeaufforderung einzugeben, um sicherzustellen, dass Sie die richtigen Pfadeinstellungen vorgenommen haben.
Sean Colombo
9
Ich habe nur 4 Stunden das Debuggen, wenn Sie tensorflow verwenden 1.3 dann Sie cudnn64_6.dll verwenden möchten github.com/tensorflow/tensorflow/issues/7705
Chris Barrett
2
Chris Barrets Kommentar hat es gelöst - wenn Sie nach August 2017 installieren, benötigen Sie wahrscheinlich cuDNN v6,0 nicht 5 oder 7.
user1761806
2
In meinem Fall hat auch Python 3.5.4 funktioniert. Und ich konnte cuda 8.0 erst installieren, als ich vs17 entfernte und Visual Studio 15 (win10) installierte. Es ist wirklich lächerlich, dass ich nacheinander alte Versionen finden und installieren musste.
Margincall
21

In meinem Fall musste die Datei "cudnn64_6.dll" im Ordner / bin in "cudnn64_5.dll" umbenannt werden, damit der Fehler behoben werden konnte. Ich verbrachte leicht zwei Stunden damit, dies herauszufinden, und folgte der offiziellen Installationsanleitung für den Brief. Dies gilt für die Installation über pip (offiziell unterstützt) und conda (Community unterstützt).

Vitaly
quelle
1
Das war mein Fall. TensorFlow erfordert "cuDNN v5.1". Wenn Sie jedoch cuDNN v6.0 installieren, lautet der Dateiname der cudnn-DLL-Datei cudnn64_6.dllnicht cudnn64_5.dll.
Naetmul
1
Wenn Sie Tensorflow 1.3 verwenden, möchten Sie cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705
Chris Barrett
Ich verwende Tensorflow 1.3 und musste von cudnn64_7.dll (derzeit die neueste Version) zu cudnn64_6.dll wechseln, wie @ChrisBarrett sagt, damit es funktioniert.
Javier Cabero
1
Bei Tensorflow 1.3 und cudNN 7 hilft eine ähnliche Umbenennung cudnn64_7.dllin cudnn64_6.dll.
Smarty77
12

Beide Fehler weisen darauf hin, dass Ihr System nicht installiert wurde MSVCP140.DLL, was TensorFlow erfordert.

So beheben Sie diesen Fehler:

  1. Bestimmen Sie, ob MSVCP140.DLLIhre %PATH%Variable enthalten ist.
  2. Wenn dies MSVCP140.DLLnicht in Ihrer ist %PATH%, installieren Sie die weitervertreibbare Visual C ++ 2015- Version (x64-Version), die diese DLL enthält.
Barry Rosenberg
quelle
1
Dies kann sein Problem beheben oder nicht (abhängig von CPU oder GPU) und obwohl die Windows-DLL benötigt wird, könnte es auch ein anderes Problem sein - siehe Antwort unten. Ich hatte keine Probleme mit der Windows-DLL, sondern ein Problem mit cuDNN v6.0
DropHit
7
Sie können überprüfen, ob sich MSVCP140.dll in Ihrem Pfad befindet, indem Sie an der Eingabeaufforderung Folgendes
eingeben
Der Link führt Sie zur Version 2010. Streben wir die Version 2015 oder 2010 an?
DAG
10

Nur für Tensorflow mit CPU:


Ich hatte Tensorflow mit dem folgenden Befehl installiert:

pip3 install --upgrade tensorflow

Dies installiert, tensorflow 1.7
konnte aber den Tensorflow nicht importieren, indem er Folgendes python 3.6.5 amd64verwendete:

import tensorflow as tf

Also habe ich die Tensorflow-Version von 1.7auf den 1.5folgenden Befehl herabgestuft :

pip3 install tensorflow==1.5

Dadurch wurde die vorherige Version deinstalliert und installiert 1.5. Jetzt gehts.

Meine CPU unterstützt anscheinend nicht den AVX-Befehlssatz , der in benötigt wirdtensorflow 1.7

Ich hatte MSVCP140.DLLin den Systemordnern und .DLL in der PATHEXT-Variablen in der Umgebungsvariablen.

Rakibul Haq
quelle
Mein System: Windows 8.1, Python 3.6.5 64 Bit, keine GPU.
Rakibul Haq
Möglicherweise muss aktualisiert werden, da seit Version 2.0.0 Tensorflow-GPU in die reguläre Installation integriert ist - siehe hier: github.com/fo40225/tensorflow-windows-wheel Vielleicht möchten Sie meine Antwort hier betrachten, wo die Kompatibilität zwischen verschiedenen Versionen von Python und Tensorflow werden erklärt: stackoverflow.com/questions/45749992/…
Cadoiz
10

Ich habe Win7 Pro 64-Bit auf AMD-CPU, keine GPU. Ich habe die Anweisungen unter "Installation mit nativem Pip" unter https://www.tensorflow.org/install/install_windows befolgt . Der Installationsschritt verlief in Ordnung, aber der Versuch, Tensorflow zu importieren, führte zu dem berüchtigten Ergebnis:

ImportError: No module named '_pywrap_tensorflow_internal'

Dies scheint eine dieser Situationen zu sein, in denen abhängig von der Konfiguration viele nicht zusammenhängende Dinge schief gehen können, die alle zu demselben Fehler führen.

In meinem Fall war die Installation von MSVCP140.DLL die Antwort.

Du hast MSVCP140.DLLschon wenn

  1. Sie haben eine Datei C:\Windows\System32\MSVCP140.DLLund
  2. Wenn Sie ein 64-Bit-System haben, haben Sie zusätzlich C:\Windows\SysWOW64\MSVCP140.DLL.

Ich habe es manuell installiert, was unnötig war (die weitervertreibbare Datei ist nicht das gesamte Visual C ++ - Entwicklungsproblem und nicht groß). Verwenden Sie den zuvor in diesem Thread veröffentlichten Link, um ihn zu installieren: Visual C ++ 2015 redistributable .

Außerdem empfehle ich, dass Sie das Standardinstallationsverzeichnis für Python überschreiben und an einer beliebigen Stelle ablegen C:\Program Files, da Windows versucht, Dateien dort schreibgeschützt zu machen, was später zu Problemen führt.

JWG
quelle
7

TensorFlowerfordert MSVCP140.DLL, die möglicherweise nicht auf Ihrem System installiert ist. Um das Problem zu lösen, öffnen Sie das Terminal und geben Sie diesen Link ein oder fügen Sie ihn ein:

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl 

Beachten Sie, dass hiermit nur die CPU-Version von TensorFlow installiert wird.

Fahtima
quelle
Für meine Konfiguration funktionierte folgende Binärdatei: storage.googleapis.com/tensorflow/windows/cpu/… - Überprüfen Sie pypi.python.org/pypi/tensorflow auf verfügbare erstellte Binärdateien. Ich habe nach ein paar gesucht, bis der "Tensorflow als tf importieren" erfolgreich war.
David
7

cuDNN verursacht mein Problem. Die Variable PATH funktioniert bei mir nicht. Ich muss die Dateien in meinen cuDNN-Ordnern in die entsprechende CUDA 8.0-Ordnerstruktur kopieren.

Chris Han
quelle
6

Für diejenigen, die auf älterer Hardware laufen:

Möglicherweise wird derselbe Fehler angezeigt, wenn eine ältere CPU Tensorflow-GPU 1.6 verwendet.

Wenn Ihre CPU vor 2011 hergestellt wurde, beträgt Ihre maximale Tensorflow-GPU-Version 1,5.

Für Tensorflow 1.6 sind AVX-Anweisungen auf Ihrer CPU erforderlich. Hier verifiziert: Tensorflow Github-Dokumente

AVX-fähige CPUs: Wiki AVX-CPUs

Was ich in meiner Conda-Umgebung für Tensorflow getan habe:

pip install --ignore-installed --upgrade tensorflow-gpu==1.5
Jasen
quelle
4

Das Problem für mich war die cuDNN-Bibliothek, die nicht den Anforderungen der Grafikkarte entsprach. Ich habe die 6.0-Version heruntergeladen, aber für meine GTX980ti, aber die empfohlene Rechenfunktion auf der nvidia-Website war 5.1 ( http://developer.nvidia.com/cuda-gpus ), also habe ich 5.1 heruntergeladen und die 6.0-Version ersetzt, und sobald ich ' Ich habe getan, dass es angefangen hat zu funktionieren.

Remus.A
quelle
4

Nach langem Ausprobieren und dem Sicherstellen , dass VC ++ 2015 Redistributable , cuDNN DLL und alle anderen Abhängigkeiten über PATH zugänglich sind, sieht es so aus, als ob die Tensorflow-GPU nur mit Python funktioniert 3.5.2(zum jetzigen Zeitpunkt ).

Also, wenn Sie verwenden Anaconda

  • conda create -n tensorflow-gpu python=3.5.2
  • activate tensorflow-gpu
  • pip install tensorflow-gpu

Öffnen Sie dann den Python-Interpreter und überprüfen Sie ihn

>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Gefundenes Gerät 0 mit Eigenschaften:
Name: GeForce 940M
Dur: 5 Moll: 0
memoryClockRate (GHz) 1.176
pciBusID 0000: 06: 00.0
Gesamtspeicher: 2.00GiB
Freier Speicher: 1.66GiB

Credits: diese nette Anleitung

Madhur
quelle
4

Für jede Tensorflow-Version ist eine andere Version von CuDnn erforderlich. Auf www.tensorflow.org haben sie dies im Installationshandbuch nicht erwähnt!

In meinem Fall wird Tensorflow Version 1.3 verwendet, die cuDNN 6 verwendet. Https://github.com/tensorflow/tensorflow/releases .

Bitte überprüfen Sie Ihre Tensorfow-Version und Ihre cuDNN-Version, wenn sie übereinstimmen.

Und bitte stellen Sie die Pfadumgebung für cuDNN ein. Wenn dies immer noch nicht funktioniert, überprüfen Sie bitte die Antwort von @ Chris Han .

nguyenhoai890
quelle
3

In diesem Beitrag auf Windows-Systemen habe ich einen allgemeinen Ansatz zur Fehlerbehebung für das Problem "DLL-Laden fehlgeschlagen" veröffentlicht . Als Referenz:

  1. Verwenden Sie den DLL-Abhängigkeitsanalysator Abhängigkeiten , um <Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyddie genaue fehlende DLL zu analysieren und zu bestimmen (angezeigt durch ein ?neben der DLL). Der Pfad der .pyd-Datei basiert auf der von mir installierten TensorFlow 1.9-GPU-Version. Ich bin nicht sicher, ob der Name und der Pfad in anderen TensorFlow-Versionen identisch sind.

  2. Suchen Sie nach Informationen zur fehlenden DLL und installieren Sie das entsprechende Paket, um das Problem zu beheben.

GZ0
quelle
1
Ich mag diesen Ansatz, da er explizit zeigt, welche DLLs fehlen. Es wurde herausgefunden, dass Tensorflow 1.11 nach CUDA 9-DLLs sucht und nicht nach CUDA 10-Bibliotheken zu suchen scheint.
Padmalcom
1
Vielen Dank für Ihren Vorschlag! Auf meinem Computer bestand das Problem darin, dass Tensorflow nach DLLs suchte, die mit CUDA takeit v9 geliefert wurden, aber ich installierte das CUDA Toolkit v10
Floris Devreese
Das ist unglaublich nützlich. Beachten Sie, dass Sie All files (*.*)neben nur Dateinamen auswählen müssen exe files (*.exe, *.dll).
Cadoiz
2

Man könnte versucht sein, Powershell / cmd unter Windows offen zu halten. Ich habe angemessene Zeit damit verbracht, meine Powershell zu schließen und wieder zu öffnen, nur um festzustellen, dass ich alles richtig gemacht habe.

Victor Silva
quelle
2

Wenn Sie versuchen, die Tensorflow-GPU unter Windows zu installieren, finden Sie dieses einfache, interessante Tutorial.

Hinweis: Wenn Sie beispielsweise PyCharm verwenden, müssen Sie den Interpreter in die erstellte Conda-Umgebung ändern.

Wesam Na
quelle
1

Dll nicht gefunden. Installieren Sie Visual C ++ 2015, um das Problem zu beheben.

Nacho González-Valdizán
quelle
Ich bin mir nicht sicher, ob dies genau abgedeckt ist - je nach Szenario - siehe obige Antwort zu cuDNN v6.0 - und möchte möglicherweise auch den Link zu der von Ihnen erwähnten Bibliothek einfügen (was ich hier direkt tun werde microsoft.com/en-us/download/). details.aspx? id = 48145 vs this quick klappentext :)
DropHit
1

Das Problem war die cuDNN-Bibliothek für mich. Ich konnte den Testcode ausführen, nachdem ich das Verzeichnis (möglicherweise den Ordner bin) der cuDNN-DLL (keine LIB-Datei) im Windows-Pfad hinzugefügt hatte.

Als Referenz habe ich TensorFlow von der Quelle mit PIP und meinem Betriebssystem installiert: Windows 7 und IDE: Visual Studio 2015.

Cloud Cho
quelle
1

Meine zwei Cent:

Ich hatte eine Menge Probleme beim Versuch, mein CUDA 8.0 unter Windows 7 ordnungsgemäß zu installieren. Ich hatte eine frühere Version installiert und wollte ein Upgrade durchführen, also habe ich es deinstalliert und versucht, CUDA 8.0 (für Tensorflow 1.3) zu installieren. Die Installation schlug jedes Mal fehl, ich versuchte ein Downgrade auf CUDA 7.5 und konnte es installieren, hatte aber eine Menge Probleme mit Tensorflow (ähnlich dem hier beschriebenen PATH-Problem). Lange Rede, kurzer Sinn: Was für mich funktioniert hat, war:

1) Deinstallieren Sie JEDE NVIDIA-Komponente (mit Ausnahme des Display-Grafiktreibers).

2) Laden Sie das CUDA Toolkit 8.0 (und den Patch) https://developer.nvidia.com/cuda-downloads herunter

3) Überprüfen Sie die CheckSum MD5 (ich habe MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533 verwendet, aber jeder würde dies tun), um sicherzustellen, dass sie in Ordnung sind (dies ist mehrmals passiert) Das Installationsprogramm wurde nicht ordnungsgemäß heruntergeladen, da mein WLAN-Router anscheinend).

4) Führen Sie das CUDA-Toolkit-Installationsprogramm als Root aus

5) Laden Sie cudnn 8.0 v6 herunter und fügen Sie seinen Speicherort der PATH-Variablen https://developer.nvidia.com/rdp/cudnn-download hinzu

Hoffe das hilft und erspart ein paar Kopfschmerzen ...

HINWEIS: Dieses Skript hat mir sehr geholfen, das Problem zu beheben! (Danke, mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

edgarbc
quelle
1

Ich werde versuchen, die Lösung zu geben, die für mich funktioniert hat. Es scheint, dass unterschiedliche Probleme zu dieser Situation führen können.

32-Bit-Software funktioniert unter 64-Bit-Betriebssystemen. Ich habe Anaconda-3 (32 Bit) in meinem 64-Bit-Betriebssystem installiert. Es hat einwandfrei funktioniert. Ich habe beschlossen, Tensorflow in meiner Maschine zu installieren, und es würde zunächst nicht installiert werden. Ich habe die conda-Umgebung verwendet, um tensorflow zu installieren, und habe diesen Fehler erhalten.

Die Lösung ist, wenn Sie ein 64-Bit-Betriebssystem ausführen, 64-Bit-Anaconda installieren und wenn 32-Bit-Betriebssystem, dann 32-Bit-Anaconda . Befolgen Sie dann das auf der Tensorflow-Website für Windows angegebene Standardverfahren (Anaconda-Installation). Dies ermöglichte die problemlose Installation von Tensorflow.

user2736738
quelle
1

Meine Antwort gilt nur für Windows 10-Benutzer, da ich unter Windows 10 Folgendes versucht habe. Wenn Sie einige der obigen Antworten erweitern, schlage ich Folgendes vor: Wenn Sie Anaconda verwenden, können Sie alles vermeiden und Anaconda-Navigator einfach mit dem Befehl installieren

conda install -c anaconda anaconda-navigator

Anschließend können Sie den Navigator mit dem Befehl an der Eingabeaufforderung starten

anaconda-navigator

Wenn Sie diesen Befehl ausführen, erhalten Sie eine einfache Benutzeroberfläche, in der Sie eine virtuelle Umgebung erstellen, die Umgebung mit python = 3.5.2 erstellen und das Modul tensorflow-gpu oder tensorflow installieren können, indem Sie das Modul im Suchfeld mit der Benutzeroberfläche suchen der richtigen Cuda-Dateien für Sie zu installieren. Die Verwendung von Anaconda Navigator ist die einfachste Lösung.

Wenn Sie keine Anakonda verwenden, beachten Sie Folgendes

Tensorflow-GPU 1.3 erfordert Python 3.5.2, Cuda Development Kit 8.0 und CudaDNN 6.0. Führen Sie daher bei der Installation den Befehl aus

pip install tensorflow-gpu==1.3

Tensorflow-GPU 1.2.1 oder weniger erfordert Python 3.5.2, Cuda Development Kit 8.0 und CudaDNN 5.1. Stellen Sie daher bei der Installation sicher, dass Sie den Befehl ausführen

pip install tensorflow-gpu==1.2.1

Im Folgenden finden Sie die Schritte, die Sie für beide oben genannten Prozesse ausführen müssen. Einrichten Ihrer Pfadvariablen Sie müssen über die folgenden Systemvariablen verfügen

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"

Ihr PATHTEXT muss ".DLL" zusammen mit anderen Erweiterungen enthalten

".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"

Fügen Sie Ihrem Pfad außerdem Folgendes hinzu

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        

Wenn Sie Fehler erhalten, können Sie den folgenden Code von mrry herunterladen. Dieser Code überprüft Ihr Setup und teilt Ihnen mit, ob etwas nicht stimmt. Https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

Referenzen: http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html

Die obige Referenz ist sehr nützlich. Bitte kommentieren Sie für Verbesserungen dieser Antwort. Hoffe das hilft, danke.

M2skills
quelle
Die Anakonda Option hört sich toll an , aber bei der Suche anaconda.org/anaconda/tensorflow-gpu die tensorflow-gpu - Version für Windows scheint 1.1 zu sein, jede mögliche Weise , die 1,3 bis Anakonda zu bekommen?
ftiaronsem
@ftiaronsem Es gibt keine Möglichkeit, 1.3 mit dem Anaconda-Navigator zu installieren, wenn Sie 1.3 möchten. Folgen Sie dann dem Referenzlink und notieren Sie sich die Verwendung von cudaDNN 6.0
M2skills
1

Tensorflow 1.3 unterstützt Cuda 9.0 noch nicht. Ich verschlechtere mich auf Cuda 8.0 , dann funktioniert es.

Yichudu
quelle
1

Für die Personen, die diesen Beitrag im Jahr 2019 finden, kann dieser Fehler auch auftreten, weil die Python-Version 3.7 TensorFlow nicht unterstützt (siehe https://www.tensorflow.org/install/pip ). Überprüfen Sie also die Python-Version:

python --version

Falls es größer als 3.6 ist, sollte es auf 3.6 herabgestuft werden. Für Anaconda:

conda install python=3.6

Installieren Sie dann TensorFlow.

pip install tensorflow

Übrigens hatte ich keine GPU-Version, daher gab es in meinem Fall keine CUDA-Probleme.

Catalin Stoean
quelle
1
Ich habe getan, dass ich immer noch das gleiche Problem habe
RollRoll
Dies funktionierte für mich auf zwei verschiedenen Computern, die von meinen Schülern verwendet wurden. Wir hatten immer noch das Problem, nachdem wir die obigen Lösungen ausprobiert hatten. In Ihrem Fall könnte es sich um eine oben beschriebene Situation handeln.
Catalin Stoean
0

Bei der Untersuchung von [SO] ist das gleiche Problem aufgetreten ( im Jahr 2019/09/09 ) : Fehler beim Training mit der Schätzer-API im Tensorflow .

Konfiguration:

Fehler :

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

Wenn man sich das "fehlerhafte" Modul ansieht (dank Dependency Walker ), stellt sich heraus, dass nicht selbst es fehlt, sondern einige seiner Abhängigkeiten (die cu * _ 100 .dll- Dateien).

Img0

Überprüfen Sie [SO]: Python Ctypes - Laden der DLL löst OSError aus: [WinError 193]% 1 ist keine gültige Win32-Anwendung (@ CristiFatis Antwort) ( Abschnitt Schlussfolgerungen am Ende), um weitere Details zu dieser Art von Fehlern zu erhalten.
Ich hatte eine ältere CUDA Toolkit- Version ( 8 ) und infolgedessen die cu * _ 80 .dll- Dateien.

Durch das Upgrade auf TensorFlow-GPU 1. 14 .0 ( "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu) wurde der Fehler etwas deutlicher (und auch kürzer):

[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

Schritte :

  • Deinstallieren Sie alle CUDA Toolkit- Versionen (optional).
  • Installieren Sie [nVidia.Developer]: CUDA Toolkit 10.0 Archive
    • Stellen Sie sicher, dass Sie Version 10.0 installieren (für die diese TensorFlow-GPU- Version erstellt wurde ). Ich habe v10 installiert . 1 (dies war die neueste und auch die empfohlene Version zum Antwortzeitpunkt ), und die DLL- Namen stimmten nicht überein ( cu * _10 1 DLL ). Da ich nicht installieren wollte v10.0 , habe ich einige Symlink s (mit dem „richtigen“ Namen) auf die vorhandenen Dateien, und es funktionierte. Aber denken Sie daran, dass dies nicht unterstützt wird !!! Es kann zu lustigem Verhalten kommen (einschließlich Abstürzen) . Dies ist eine (lahme) Problemumgehung ( Gainarie )
    • Darüber hinaus ist eine kompatible (dh für eine bestimmte CUDA Toolkit- Version) cuDNN- Version ( [nVidia.Developer]: cuDNN Archive ) erforderlich. Für den Zugriff auf die Download- URL ist eine nVidia- Mitgliedschaft erforderlich

Nach den obigen Schritten und dem Festlegen der richtigen Pfade hat es funktioniert:

[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
quelle