[PYTHON] Ich habe MNIST mit Caffe gelernt und versucht, es zu zeichnen (MAC OS X El Capitan)

Einführung

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.

(1) Ausführungsumgebung

OS:Mac OSX El Capitan (10.11.6) CPU: Core i5 1.6GHz GPU: Intel HD Graphics 6000 1536 MB Speicher: 8 GB

(2) Lerne MNIST mit Caffe

Grundsätzlich beziehe ich mich auf Training LeNet auf MNIST mit Caffe.

■ Datensatzvorbereitung

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

■ Definition des Lösers

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

■ Datensatzlernen

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)

(3) Präzisionsgrundstück

Grundsätzlich beziehe ich mich auf Ich habe versucht, den Fortschritt des Lernens von MNIST mit Caffe aufzuzeichnen.

■ Vorbereitungen

Da Gnuplot für die Anzeige verwendet wird, muss Gnuplot installiert werden. Installieren Sie unter Gnuplot installieren (Mac ElCapitan).

■ Ausführung von PLOT

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

(4) Tatsächlich aufgetretene Fehler und Umgang mit ihnen

■ Fehler durch Vergessen, den Solver-Modus auf CPU umzuschalten

·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

(5) Referenzierte Site

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


Recommended Posts

Ich habe MNIST mit Caffe gelernt und versucht, es zu zeichnen (MAC OS X El Capitan)
Ich habe versucht, mit Python (Mac OS X) eine Umgebung für maschinelles Lernen zu erstellen.
Ich habe Caffe installiert, damit ich Deep Learning mit MAC OS X El Capitan durchführen kann
Ich habe versucht, die GUI auf einem Mac mit X Window System anzuzeigen
Installieren Sie lp_solve unter Mac OSX und rufen Sie es mit Python auf.
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
So installieren Sie caffe unter OS X mit Macports
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Word Count mit Apache Spark und Python (Mac OS X)
Verwenden von NAOqi 2.4.2 Python SDK mit Mac OS X El Capitan
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich habe versucht, MNIST nach GNN zu klassifizieren (mit PyTorch-Geometrie).
Erstellen Sie eine Python-Umgebung mit pyenv (OS X El Capitan 10.11.3).
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
So installieren Sie Theano unter Mac OS X mit Homebrew
Ich habe versucht, die Lesezeichen zu visualisieren, die mit Doc2Vec und PCA nach Slack fliegen
Ein Memorandum beim automatischen Erwerb mit Selen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, Bulls and Cows mit einem Shell-Programm zu erstellen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
Schritte, um Caffe im CPU-Modus in Mac OS X 10.10 zu integrieren
Ich versuchte, Trauer und Freude über das Problem der stabilen Ehe auszudrücken.
Erstellen Sie eine Umgebung mit pyenv, pyenv-virtualenv, jupyter unter OS X El Capitan
Ich habe ein Systemkonfigurationsdiagramm mit Diagrams on Docker geschrieben
Ich habe versucht, datetime <-> string mit tzinfo mit strftime () und strptime () zu konvertieren.
Ich habe versucht, den Winkel von Sin und Cos mit Chainer zu lernen
Ich habe versucht, eine Mac Python-Entwicklungsumgebung mit pythonz + direnv zu erstellen
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
Ich habe versucht, die Netzwerkbandbreite und -verzögerung mit dem Befehl tc zu steuern
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Wrangle x Python Buch Ich habe es versucht [2]
Installieren Sie matplotlib unter OS X El Capitan
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe DSX Desktop installiert und ausprobiert
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, CVAE mit PyTorch zu implementieren
Wrangle x Python Buch Ich habe es versucht [1]
Ich habe versucht, TSP mit QAOA zu lösen
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
Als ich versuchte, das Root-Passwort mit ansible zu ändern, konnte ich nicht darauf zugreifen.
Ich habe versucht, Java mit Termux unter Verwendung von Termux Arch zu verwenden, aber es hat nicht funktioniert
Als ich versuchte, eine VPC mit AWS CDK zu erstellen, konnte ich es aber nicht schaffen
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
Ich habe ein Bildklassifizierungsmodell erstellt und versucht, es auf dem Handy zu verschieben
[Einführung in AWS] Ich habe versucht, eine Konversations-App zu portieren und mit text2speech @ AWS playing zu spielen
Docker x Visualization hat nicht funktioniert und ich war süchtig danach, also habe ich es zusammengefasst!
Erstellen einer R-Umgebung mit Jupyter (ehemals IPython-Notebook) (unter OS X El Capitan 10.11.3)
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
Ich habe versucht, Twitter Scraper mit AWS Lambda zu verwenden, aber es hat nicht funktioniert.
Führen Sie den Qiita API v2 Python-Wrapper in einer Python 3-Umgebung aus (Mac OS X 10.11 (El Capitan)).
Ich habe versucht, nächstes Jahr mit AI vorherzusagen