Anaconda (ipython) -> Deep Dreams (with Caffe)

godlike

Warp drölf
Veteran
Registriert
13 Juli 2013
Beiträge
14.290
Ort
Topkekistan
Bin mal wieder dabei unter Windows das Google Deep Dream Script zum laufen zu bekommen. Nun habe ich das ganze mal so probiert:

Alles installiert, CUDA ebenso (Version 8 statt 7,5, könnte es daran liegen?) sowie die caffe-Pakete für CUDA und 3rd-Party Pakete. Ich starte also so wie im Tutorial, nutze aber das neuere Commando jupyter notebook dream.ipynb und bekomme die Meldung das in dem Pfad kein dream.ipynb vorhanden ist:

[C 21:00:28.974 NotebookApp] No such file or directory: C:\Users\****\dream.ipynb

Merke: Die Datei liegt ja unter C:\Anaconda\ so wie im Tutorial beschrieben.

Kopiere ich mir die dream.ipynb geht es schon einen Schritt weiter. Ich bekomme nach dem Ausführen des ersten Codeblocks dann halt

ImportError Traceback (most recent call last)
<ipython-input-1-65c745005da7> in <module>()
7 from google.protobuf import text_format
8
----> 9 import caffe
10
11 caffe.set_device(0)

C:\Anaconda\lib\site-packages\caffe\__init__.py in <module>()
----> 1 from .pycaffe import Net, SGDSolver
2 from ._caffe import set_mode_cpu, set_mode_gpu, set_device, Layer, get_solver
3 from .proto.caffe_pb2 import TRAIN, TEST
4 from .classifier import Classifier
5 from .detector import Detector

C:\Anaconda\lib\site-packages\caffe\pycaffe.py in <module>()
11 import numpy as np
12
---> 13 from ._caffe import Net, SGDSolver
14 import caffe.io
15

ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

Ist auch irgendwie nicht recht einleuchtend weil die Pfade zu den ganzen Modulen usw. ja passen. Einfach plump zum Testen die ganzen einzelnen Dateien und Unterordner direkt unter C:\Users\**** zu kopieren geht aber auch nicht. Das ist ja ein heilloses Durcheinander.

Meine Frage wäre nun wo ich in Anaconda die Pfade abändern kann? Oder in wie weit ich das sonst lösen kann. Jemand eine Idee?

Viele Grüße

godlike
 
Wenn ich richtig lese, da bin ich mir gerade nicht sicher, versucht das Skript aus ._caffe zu importieren und die gleichen Instanzen aus ".pycaffe".

Hast du Caffe.io installiert?

Ich bin mir gerade nicht sicher, aber vielleicht hilft dir das hier aus:


Hab zu lange nicht mehr Fehlermeldungen in Python Code gehabt, aber vielleicht können wir das Troubleshooten :T
 
  • Thread Starter Thread Starter
  • #3
Caffe installiert? Nun ja, hab wie im Tutorial das Paket Caffe für CUDA runter geladen genau wie die besagten 3rd Party Pakete und nach C:\Anaconda kopiert. So wie im Tutorial beschrieben.

PS:Kein Plan was ich mit dem Github-Teil anfangen könnte :D
 
Die gesuchte (und nicht gefundene) Datei ist wohl "_caffe.pyd" oder eine ihrer Abhängigkeiten. Liegt die wo sie soll (im site-packages/caffe Ordner)?

Und bevor du unnötig suchst: Diesen Teil vom Tutorial gelesen?
UPDATE: You will most likely need to reboot your system for CUDA to be found by Anaconda and Caffe. If you're having problems with a "DLL load failed" error, reboot your system and try again. Thanks to Lonnie Waugh for figuring this one out!
 
Also, ich hab mal eben gelesen das die Python Fehlermeldung sich von Oben nach unten lesen lässt, wobei der letzte Eintrag auf den Fehler zeigt.

Das heißt, das Caffe.io nicht installiert ist, aber diese Bibliotheken gebraucht werden.

Du hast das Tutorial gemacht, habe es mir angesehen, hast du dir diese "skurile" (ohne Angaben) 3rd Party Zeug heruntergeladen und es wie gewünscht kopiert?

So wie ich es sehe such das pyCaffe nach caffe.io DLLs/Bibliotheken, findet es aber nicht.
Das heißt wir müssen das Zeug von Github nachinstallieren - wenn jemand was anderes denkt, nur gern her damit. Ich bin mir gerade nicht 100% sicher woran es scheitert. Am/in den Umgebungsvariablen und einer fehlenden Installation, vom eben erwähnten, Caffe.io. ?
 
@theSplit
Der Fehler ist schon eine Zeile darüber (die mit dem Pfeil). Da versucht er '_caffe' aus dem aktuellen Package zu laden (also wohl die genannte .pyd). Dabei findet er entweder die .pyd nicht (dll-Datei mit anderer Endung, damit Python sie als Modul erkennt), oder die .pyd findet eine in ihr benötigte dll nicht.

@godlike
Das "3rdparty"-Paket enthält ja doch noch einige dll's Wo liegen die denn?
 
  • Thread Starter Thread Starter
  • #7
Die gesuchte (und nicht gefundene) Datei ist wohl "_caffe.pyd" oder eine ihrer Abhängigkeiten. Liegt die wo sie soll (im site-packages/caffe Ordner)?
Ja, das habe ich auch schon überprüft. Die Datei _caffe.pyd liegt im Verzeichnis C:\Anaconda\Lib\site-packages\caffe Da sind quasi die ganzen Caffe-Dateien enthalten. Der Pfad ist korrekt. Da liegen auch noch die ganzen anderen Caffe-Dateien falls du das mit Abhängigkeiten meinst.

Das sind quasi die Dateien aus dieser Passage des Tutorials:
Get the regular CUDA v7.5 enabled version of Caffe here:


and extract the file to the directory where you installed Anaconda, for instance (C:\Anaconda)

Und bevor du unnötig suchst: Diesen Teil vom Tutorial gelesen?
Jep, Neustart habe ich nach der CUDA Installation gemacht.

hast du dir diese "skurile" (ohne Angaben) 3rd Party Zeug heruntergeladen und es wie gewünscht kopiert?
+
Das "3rdparty"-Paket enthält ja doch noch einige dll's Wo liegen die denn?
Ja, die 3rd-Party Dateien habe ich wie im Tutorial angegeben auch nach C:\Anaconda kopiert. Sprich die dll liegen alle unter C:\Anaconda\*.dll usw.
 
Ich nehme an dort liegt auch die python.exe? Wenn ja passt das. Ansonsten kannst du noch versuchen, die dll-Dateien ins Verzeichnis der .pyd zu kopieren.
Die richtige Cuda-Version hast du (da gibts zwei unterschiedliche Pakete für 7.0 und 7.5)? Fehlt dir vielleicht noch die passende msvc-Runtime?

Alternativ: Probier mal die Version ohne CUDA. Wenn die funktionieren sollte wissen wir zumindest, dass er die Cuda-DLLs nicht findet.
 
  • Thread Starter Thread Starter
  • #9
Ich nehme an dort liegt auch die python.exe?
Exakt.

Ansonsten kannst du noch versuchen, die dll-Dateien ins Verzeichnis der .pyd zu kopieren.
Oke das wäre auch noch eine Möglichkeit. Werde ich heute Abend bzw. morgen mal versuchen wenn ich daheim am Rechner bin.

Habe mir soeben das Zeug im Büro auf den Rechner installiert. Ohne CUDA weil ich hier keine Grafikkarte habe :coffee: Das Problem mit den Pfaden besteht weiterhin. Sprich ich muss bei model_path einen absuoluten Pfad ins Anaconda Verzeichnis setzen

[src=python]model_path = 'E:/Programme/Anaconda/caffe/models/bvlc_googlenet/' # substitute your path here[/src]

Weiter unten im Script, da wo ich auf das zu träumende Bild verweise, klappt ein absoluter Pfad dann wieder nicht

[src=python]img = np.float32(PIL.Image.open('testbild.jpg'))[/src]

und ich muss das testbild.jpg direkt in mein Benutzerverzeichnis kopieren. Ein ziemliches Durcheinander mit den Pfaden. Gibt es da kein allgemeingültiges Root-Verzeichnis?
 
Wegen des Arbeitsverzeichnisses aus dem die Bilder geladen werden. Du kannst versuchen das wie folgt zu lösen:

[src=python]import os
os.chdir('"Laufwerk:/Mein/Arbeitspfad")[/src]

Das setzt den Arbeitspfad von Python in ein anderes Verzeichnis als das, in dem sich das Hauptskript befindet.

Aber das kann unter Umständen auch dazu führen, das es wo anders bricht, weil die Pfade nicht mehr übereinstimmen die angegeben sind, mußt du testen.
 
Zurück
Oben