Es ist eine Geschichte, dass ein Amateur MNIST-Daten in Caffe trainiert (CPU_only-Modus). MNIST-Datenbank ist ein Datensatz mit 0-9 handgeschriebenen Zeichen, der von LeCun et al. Ich konnte die Informationen für Mac OS 10.11 nicht finden, daher werde ich sie als Memorandum notieren.
(1) Ausführungsumgebung (2) Lerne MNIST mit Caffe (3) Präzisionsgrundstück (4) Tatsächlich aufgetretene Fehler und Umgang mit ihnen (5) Referenzierte Site
Die Installationsversion ist hier.
OS:Mac OSX El Capitan (10.11.6) CPU: Core i5 1.6GHz GPU: Intel HD Graphics 6000 1536 MB Speicher: 8 GB
Grundsätzlich beziehe ich mich auf Training LeNet auf MNIST mit Caffe.
Laden Sie zunächst den Datensatz herunter und erstellen Sie Trainingsdaten. (1. Zeile) Wechseln Sie zur Caffe-Ordnerhierarchie (2. Zeile) Laden Sie die wichtigsten Daten herunter (3. Zeile) Erstellen Sie Trainingsdaten aus Mnist-Daten
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
Wenn Sie hier eine Fehlermeldung erhalten, gibt es zwei wahrscheinlichste Möglichkeiten: ・ Die Hierarchie ist unterschiedlich ・ Es gibt kein Wget oder Gunzip
Schalten Sie die Solver-Definition vom GPU-Modus in den CPU-Modus (da sie im CPU-Modus verwendet wird). Bearbeiten Sie die folgende Datei mit einem Editor.
$CAFFE_ROOT/examples/mnist/lenet_solver.prototxt
Schreiben Sie als solver_mode: CPU wie folgt um.
# solver mode: CPU or GPU
solver_mode: CPU
Trainieren Sie als Nächstes den Datensatz.
Später werde ich 2> & 1 | tee your_name.log
hinzufügen, um ein Präzisions-PLOT zu zeichnen. Es spielt keine Rolle, ob Sie den Namen von your_name.log kennen.
(Es wurde gesagt, dass eine Protokolldatei im Ordner / tmp / ohne 2> & 1 | tee your_name.log
erstellt werden könnte, aber sie wurde nicht in meiner eigenen Umgebung erstellt.)
cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh 2>&1 | tee your_name.log
Einige der tatsächlichen Ergebnisse sind unten gezeigt. Das Protokoll wird im Terminal angezeigt und eine Datei "your_name.log" wird in der Hierarchie ". / Example / mnist /" erstellt.
I0924 20:28:43.185619 2030800896 solver.cpp:228] Iteration 9900, loss = 0.00506415
I0924 20:28:43.185690 2030800896 solver.cpp:244] Train net output #0: loss = 0.00506419 (* 1 = 0.00506419 loss)
I0924 20:28:43.185703 2030800896 sgd_solver.cpp:106] Iteration 9900, lr = 0.00596843
I0924 20:28:47.841295 2030800896 solver.cpp:454] Snapshotting to binary proto file examples/mnist/lenet_iter_10000.caffemodel
I0924 20:28:47.865257 2030800896 sgd_solver.cpp:273] Snapshotting solver state to binary proto file examples/mnist/lenet_iter_10000.solverstate
I0924 20:28:47.902568 2030800896 solver.cpp:317] Iteration 10000, loss = 0.00462559
I0924 20:28:47.902603 2030800896 solver.cpp:337] Iteration 10000, Testing net (#0)
I0924 20:28:51.194413 2030800896 solver.cpp:404] Test net output #0: accuracy = 0.9909
I0924 20:28:51.194463 2030800896 solver.cpp:404] Test net output #1: loss = 0.0286294 (* 1 = 0.0286294 loss)
Bedeutung | |
---|---|
loss | Wert der Trainingsdatenverlustfunktion(loss is the training function) |
lr | Lernrate(lr is the learning rate of that iteration) |
#0: accuracy | Richtige Antwortrate der Testdaten |
#1: loss | Wert der Testdatenverlustfunktion(testing loss function) |
Grundsätzlich beziehe ich mich auf Ich habe versucht, den Fortschritt des Lernens von MNIST mit Caffe aufzuzeichnen.
Da Gnuplot für die Anzeige verwendet wird, muss Gnuplot installiert werden. Installieren Sie unter Gnuplot installieren (Mac ElCapitan).
Führen Sie parse_log.sh
mit your_name.log
aus, das im Dataset-Training als Argument erstellt wurde.
cd $CAFFE_ROOT/tools/extra
./parse_log.sh your_name.log
Die folgenden zwei Dateien werden erstellt.
your_name.log.test
your_name.log.train
Ändern Sie den Teil Ihres_Namens in den beiden oben genannten Dateien in mnist. (Im Ordner $ CAFFE_ROOT / tools / extra) Führen Sie dann den folgenden Befehl aus.
gnuplot plot_log.gnuplot.example
Das gezeichnete Bild (horizontale Achse: "Trainingsiterationen", vertikale Achse: "Trainingsverlust") wird gespeichert.
your_chart_name.png
·Fehlermeldung
I0922 20:46:13.136147 2030800896 caffe.cpp:217] Using GPUs 0
F0922 20:46:13.138036 2030800896 common.cpp:66] Cannot use GPU in CPU-only Caffe: check mode.
*** Check failure stack trace: ***
@ 0x104c87636 google::LogMessage::Fail()
@ 0x104c86d2d google::LogMessage::SendToLog()
@ 0x104c87295 google::LogMessage::Flush()
@ 0x104c8a5e7 google::LogMessageFatal::~LogMessageFatal()
@ 0x104c87923 google::LogMessageFatal::~LogMessageFatal()
@ 0x1049cba06 caffe::Caffe::SetDevice()
@ 0x10493feb0 train()
@ 0x10494274a main
@ 0x7fff968535ad start
@ 0x3 (unknown)
./examples/mnist/train_lenet.sh: line 4: 62566 Abort trap: 6
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt $@
· Problemumgehung
Bearbeiten Sie lenet_solver.prototxt
, um den Modus auf CPU umzuschalten.
# solver mode: CPU or GPU
solver_mode: CPU
Caffe Official | Training LeNet auf MNIST mit Caffe (20) Automatische MNIST-Erkennung mit Caffe (1) Von der Einführung von "Caffe", das tiefes Lernen ohne GPU ermöglicht, bis hin zu Lernen, Testen und selbst erstellten Daten -zuo-made) Ich habe den Prozess des Lernens von MNIST mit Caffe geplant Caffe Logging and Loss Plotting Where to find log files? How can I get the figures like this Gnuplot (Mac ElCapitan) installieren