2016-06-21 18 views
3

Ich habe TF 0.8 auf Python3, MacOSX El Capitan installiert.Tensorflow GPU-Setup: Fehler mit CUDA auf PyCharm

Wenn ein einfacher Test-Code für TF Laufen bekomme ich diese Meldung:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so, 10): 
Library not loaded: @rpath/libcudart.7.5.dylib 
    Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so 
    Reason: image not found 

Mein Bash_profile sich wie folgt:

export PATH=/usr/local/bin:$PATH 
export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.5/lib:/usr/local/cuda/lib 
  • in /Developer/NVIDIA/CUDA-7.5/ Ich habe eine Datei namens libcudart.7.5.dylib
  • in/usr/local/cuda/lib Ich habe ein Alias ​​libcudart.7.5.dylib

ich genannt habe mehrere Permutationen von .bash_profile ohne Erfolg versucht. Eine Idee, was könnte falsch sein?

Beachten Sie, dass ich meine GPU mit Theano erfolgreich verwenden kann, also gibt es keinen Grund zu glauben, dass die GPU/cuDNN/CUDA Installation fehlerhaft sein könnte.

Antwort

12

Wenn Sie diese Fehler sind immer sicher, dass Sie installiert CUDA, cuDNN korrekt wie in den Tensorflow Anweisungen installieren beschrieben. Notieren Sie die Version von TF, CUDA, cuDNN, die Sie installieren und welche Python-Version Sie verwenden.

Dateinamen, Pfade usw. variieren häufig, daher können kleine Fehler in Dateinamen und Pfaden in Ihrem Fall erforderlich sein, wenn Fehler auftreten. Manchmal ist es für andere schwierig, Ihnen zu helfen, da Ihr System möglicherweise eine sehr spezifische Pfad-Einstellung/Version hat, die von jemandem in einem Forum nicht verstanden werden kann.

Wenn Sie immer genau die Fehler, die ich in den OP zu beschreiben bin, einen Schritt zurück und überprüfen:

  • geschieht dies in PyCharm ist?
  • passiert das in iPython in PyCharm?
  • passiert es in beiden?
  • geschieht dies in iPython im Terminal?

In meinem Fall geschah es nur in PyCharm. In iPython außerhalb von PyCharm (das ist mit dem Mac 'Terminal' Software) alles hat gut funktioniert. Bei iPython in PyCharm oder beim Ausführen der Testdatei über PyCharm würde ich den Fehler erhalten. Dies bedeutet, dass es etwas mit PyCharm zu tun hat, nicht mit der Tensorflow-Installation.

Stellen Sie sicher, dass Ihr DYLD_LIBRARY_PATH korrekt auf die Datei libcudart.7.5.dylib zeigt. Navigieren Sie dort mit dem Finder, führen Sie eine Spotlight-Suche durch und suchen Sie die Datei oder deren Alias. Dann platzieren Sie diesen Pfad in Ihrem .bash_profile.In meinem Fall, das funktioniert:

export DYLD_LIBRARY_PATH=/usr/local/cuda/lib 

Wenn Ihr Problem ist PyCharm wird eine spezielle Konfiguration erforderlich. Gehe zur oberen rechten Ecke der GUI und klicke auf den grauen Pfeil nach unten.

enter image description here

Wählen Sie "Konfiguration bearbeiten". Sie werden eine Environment Option sehen, wo Sie auf das Feld ... klicken müssen und geben Sie die DYLD_LIBRARY_PATH ein, die für Ihren Fall gilt.

enter image description here

Beachten Sie, dass eine Umwelt Option für die spezifische Datei, die Sie gerade arbeiten, es gibt (es wird im linken Bereich markiert) und für Defaults (Put DYLD_... auch dort, wenn Sie Sie zukünftige Dateien wollen erstellen um das zu haben). Beachten Sie, dass Sie diese Konfig speichern müssen, sonst wird PyCharm nicht geschlossen.

enter image description here

+0

Danke. Dies scheint die Lösung zu sein, nach der ich gesucht habe. Das Problem, mit dem ich konfrontiert war, war, dass ich versuchte, die vordefinierte Umgebungsvariable $ CUDA_HOME/lib aus dem PyCharms Konfigurationseinstellungen-Dialog aufzurufen. Als ich zum vollen/usr/local/cuda/lib wechselte, fing alles an zu arbeiten. –

+0

Das ist in der Tat die richtige Lösung, danke^_^ – Cesar

0

Können Sie TF 0.9 versuchen, das die MacOX GPU Unterstützung hinzufügt?

https://github.com/tensorflow/tensorflow/blob/r0.9/RELEASE.md

+0

danke @Yao - welche Installationsverfahren empfehlen Sie? – pepe

+0

Ich empfehle virtualenv Installation: https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#virtualenv-installation –

+0

Ich habe die gesamte Installation wieder von vorne - und bekomme genau den gleichen Fehler. Wenn Sie weitere Vorschläge haben, lassen Sie es mich wissen! – pepe

-1

denke ich, das Problem in der SIP (System Integritätsschutz). Eingeschränkte Prozesse werden mit gelöschten Umgebungsvariablen ausgeführt, und Sie haben diesen Fehler erhalten.

Sie müssen Recovery Mode gehen, starten Sie Klemme und Eingangs

$ csrutil disable 

, und starten Sie

+0

Kein Einfluss in meiner Situation. –

0

Es scheint, dass Sie nicht CUDA auf Ihrem System zu finden. Dies kann verschiedene Ursachen haben, z. B. die Installation von CUDA für eine Python-Version, während eine andere Version von Python ausgeführt wird, die die anderen installierten Versionen nicht kennt.

Bitte werfen Sie einen Blick auf meine Antwort hier.

https://stackoverflow.com/a/41073045/1831325

3

Als Erweiterung Antwort auf pepe, die die richtige ist, habe ich nichts dagegen, wenn die auf die ursprüngliche Antwort integriert folgt.

Ich möchte hinzufügen, dass, wenn Sie dies machen möchten permanent in PyCharm ändern (nur das aktuelle Projekt betrifft) und mit nicht für jede Netto-Datei zu tun, ist möglich, von der Schnittstelle oberhalb von pepe gezeigt , indem Sie unter "Default" den DYLD_LIBRARY_PATH setzen.

enter image description here

Beachten Sie, dass diese Änderung für sich allein nicht die Laufkonfiguration des aktuellen Skripts nicht verändert, die schließlich müssen noch manuell geändert werden (oder gelöscht und aus den neuen Vorgaben regeneriert) werden

0

in meinem Fall tensorflow Version 1.1 ist, geschieht der dlopen Fehler in beide

ipython und PyCharm

Umwelt: Cuda-Version: 8.0.62

cudnn Version: 6

Fehler ist ein wenig anders in PyCharm und ipython. Ich kann nicht zu sehr ins Detail remeber, aber ipython sagt, es gibt keine libcudnn.5.dylib, aber PyCharm sagt nur da Importfehler ist, Bild nicht Lösung gefunden:

  1. Herunterladen cudnn Version 5, von

https://developer.nvidia.com/rdp/cudnn-download

  1. Entpacken Sie den Code. Kopieren Sie lib/nach/usr/local/cuda/lib. Kopieren Sie umfassen/nach/usr/local/cuda/include

    unzip cuda.zip
    cd cuda
    sudo cp -r lib/usr/local/cuda/lib
    sudo cp include/cudnn.h/usr/local/cuda/include

  2. Fügen Sie den Verzeichnispfad lib zu Ihrem DYLD_LIBRARY_PATH hinzu. dies wie in meiner ~/.bash_profile:

    export DYLD_LIBRARY_PATH =/Developer/NVIDIA/CUDA-8.0/lib:/usr/local/cuda/lib $ {DYLD_LIBRARY_PATH: + $ {DYLD_LIBRARY_PATH}}

im tensorflow offiziellen Installationsanleitung, sagt sie cudnn 5.1 benötigen, so ist dies alles über sorglos.

https://www.tensorflow.org/install/install_mac

Anforderungen zum Ausführen von TensorFlow mit GPU-Unterstützung.

Wenn Sie mit GPU-Unterstützung installieren TensorFlow eines der in diesem Handbuch beschriebenen Mechanismen verwenden, dann wird die folgende NVIDIA-Software muss auf Ihrem System installiert sein:

...
Die Treiber NVIDIA mit CUDA Toolkit zugeordnet 8.0.
cuDNN v5.1. Einzelheiten finden Sie in der NVIDIA-Dokumentation.
...