Unter Windows meldet TensorFlow nach dem Ausführen einer import tensorflow
Anweisung einen oder beide der folgenden Fehler :
No module named "_pywrap_tensorflow"
DLL load failed.
Unter Windows meldet TensorFlow nach dem Ausführen einer import tensorflow
Anweisung einen oder beide der folgenden Fehler :
No module named "_pywrap_tensorflow"
DLL load failed.
Antworten:
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:
Wenn Sie Windows 32 ausführen, stellen Sie sicher, dass Sie die 32-Bit-Versionen der oben genannten Dateien erhalten.
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).
cudnn64_6.dll
nicht cudnn64_5.dll
.
cudnn64_7.dll
in cudnn64_6.dll
.
Beide Fehler weisen darauf hin, dass Ihr System nicht installiert wurde MSVCP140.DLL
, was TensorFlow erfordert.
So beheben Sie diesen Fehler:
MSVCP140.DLL
Ihre %PATH%
Variable enthalten ist.MSVCP140.DLL
nicht in Ihrer ist %PATH%
, installieren Sie die
weitervertreibbare Visual C ++ 2015- Version (x64-Version), die diese DLL enthält.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 amd64
verwendete:
import tensorflow as tf
Also habe ich die Tensorflow-Version von 1.7
auf den 1.5
folgenden 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.DLL
in den Systemordnern und .DLL in der PATHEXT-Variablen in der Umgebungsvariablen.
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.DLL
schon wenn
C:\Windows\System32\MSVCP140.DLL
undC:\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.
TensorFlow
erfordert 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.
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
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.
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
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 .
In diesem Beitrag auf Windows-Systemen habe ich einen allgemeinen Ansatz zur Fehlerbehebung für das Problem "DLL-Laden fehlgeschlagen" veröffentlicht . Als Referenz:
Verwenden Sie den DLL-Abhängigkeitsanalysator Abhängigkeiten , um
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
die 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.Suchen Sie nach Informationen zur fehlenden DLL und installieren Sie das entsprechende Paket, um das Problem zu beheben.
All files (*.*)
neben nur Dateinamen auswählen müssen exe files (*.exe, *.dll)
.
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.
Dll nicht gefunden. Installieren Sie Visual C ++ 2015, um das Problem zu beheben.
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.
In TensorFlow Release 1.3.0 müssen Sie Cudnn 6.0 anstelle von Cudnn 5.0 verwenden, da Cudnn 5.0 diesen Fehler ausgibt. Vergessen Sie nicht, Cudnn 6.0 eine Pfadvariable hinzuzufügen. Mit cudnn64_6.dll funktioniert Ihr Tensorflow einwandfrei. Lesen Sie den Link unten. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
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
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.
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.
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.
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).
Ü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 :
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!!!