2017-02-01 3 views
4

Ich bin neu in caffe finden und nach erfolgreich ein Beispiel läuft Ich versuche, meine eigenen Daten zu verwenden. Wenn jedoch meine Daten in das LMDB Datenformat zu versuchen, entweder zu schreiben oder direkt versuchen, den Solver zu verwenden, in beiden Fällen bekomme ich den Fehler:caffe konnte nicht geöffnet werden oder Datei

E0201 14:26:00.450629 13235 io.cpp:80] Could not open or find file ~/Documents/ChessgameCNN/input/train/731_1.bmp 731 

Der Weg ist richtig, aber es ist seltsam, dass das Etikett 731 ist Teil dieser Fehlermeldung. Das bedeutet, dass es als Teil des Pfades statt als Label gelesen wird. Die Textdatei sieht so aus:

~/Documents/ChessgameCNN/input/train/731_1.bmp 731 

Liegt es daran, dass die Etiketten zu hoch sind? Oder vielleicht, weil die Labels nicht mit 0 beginnen? Ich habe nach diesem Fehler gesucht und alles, was ich gefunden habe, waren Beispiele mit relativ wenigen Labels, ungefähr ~ 1-5, aber ich habe ungefähr 4096 Klassen, von denen ich nicht immer tatsächlich Beispiele in den Trainingsdaten habe. Vielleicht ist das auch ein Problem (zumindest zum Lernen, aber ich habe nicht erwartet, dass es mir eine tatsächliche Fehlermeldung gibt). Normalerweise scheint das Etikett nicht Teil dieser Fehlermeldung zu sein. Für die Erstellung der LMDB Datei, verwende ich die create_imagenet.sh aus den caffe Beispiele. Zur Lösung verwende ich:

~/caffe/build/tools/caffe train --solver ~/Documents/ChessgameCNN/caffe_models/caffe_model_1/solver_1.prototxt 2>&1 | tee ~/Documents/ChessgameCNN/caffe_models/caffe_model_1/model_1_train.log 

ich verschiedene Bilddatentypen versucht, auch: PNG, JPEG und BMP. Das ist also auch nicht der Schuldige. Wenn es wirklich wegen meiner Wahl der Etiketten ist, was wäre eine brauchbare Umgehungsmöglichkeit für dieses Problem?

Vielen Dank für Ihre Hilfe!

+0

Sie diesen Fehler erhalten, während der 'lmdb' erstellen, oder wenn Sie das Netz trainieren? Mit welchem ​​Befehl wurde die 'lmdb' erstellt? Kannst du den Prototxt der Eingabeschicht, die du benutzt, in deinem Netz posten? – Shai

+0

Wenn Sie keine Trainingsbeispiele für ein bestimmtes Label haben - warum sollte dieses Label an erster Stelle stehen ?! Etiketten sollten bei Null beginnen und die Anzahl der Klassen, die Sie tatsächlich in Ihren Trainingsdaten haben, erhöhen. – Shai

+0

Ich bekomme diesen Fehler in beiden Fällen - ob ich versuche, die Daten "roh" zu lösen oder zu versuchen, eine lmdb-Datei zu erstellen. Wie gesagt, ich habe einfach 'create_imagenet.sh' mit Pfaden zu meinen Daten anstelle der Daten aus dem Beispiel von imagenet verwendet. Die Beschriftungen sind alle möglichen Bewegungen, und ich wollte zuerst einen kleineren Datensatz ausprobieren, nur um ihn zum Laufen zu bringen und dann zu größeren Datensätzen zu wechseln, so dass nicht jede * mögliche * Bewegung in diesem spezifischen Satz sein könnte. – Linvega

Antwort

2

hatte ich das gleiche Problem. Überprüfen Sie, ob Zeilen in Ihrer Textdatei am Ende keine Leerzeichen enthalten.

0

Ich war mit einem ähnlichen Problem konfrontiert mit convert_imageset. Ich habe nur die nachgestellten Leerzeichen in der Textdatei, die die Labels enthält, gelöst.

Verwandte Themen