C'est une histoire qu'un amateur entraîne des données MNIST dans Caffe (mode CPU_only). MNIST Database est un ensemble de données de 0 à 9 caractères manuscrits créé par LeCun et al. Je n'ai pas trouvé les informations pour Mac OS 10.11, je vais donc en prendre note sous forme de mémorandum.
(1) Environnement d'exécution (2) Apprenez MNIST avec Caffe (3) PLOT de précision (4) Erreurs réellement rencontrées et comment les traiter (5) Site référencé
La version d'installation est ici.
OS:Mac OSX El Capitan (10.11.6) CPU: Core i5 1.6GHz GPU: Intel HD Graphics 6000 1536 MB Mémoire: 8 Go
En gros, je me réfère à Training LeNet on MNIST with Caffe.
Tout d'abord, téléchargez l'ensemble de données et créez des données d'entraînement. (1ère ligne) Accédez à la hiérarchie des dossiers Caffe (2e ligne) Télécharger les données mnist (3e ligne) Créer des données d'entraînement à partir de données mnist
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
Si vous obtenez une erreur ici, il y a deux possibilités les plus probables: ・ La hiérarchie est différente ・ Il n'y a pas de wget ou gunzip
Faites passer la définition du solveur du mode GPU au mode CPU (car il est utilisé en mode CPU). Modifiez le fichier suivant avec un éditeur.
$CAFFE_ROOT/examples/mnist/lenet_solver.prototxt
Réécrivez en tant que solver_mode: CPU comme suit.
# solver mode: CPU or GPU
solver_mode: CPU
Ensuite, entraînez l'ensemble de données.
Plus tard, j'ajouterai 2> & 1 | tee votre_nom.log
pour dessiner un PLOT de précision. Peu importe si vous connaissez le nom de votre_nom.log.
(On a dit qu'un fichier journal pouvait être créé dans le dossier / tmp / sans 2> & 1 | tee your_name.log
, mais il n'a pas été créé dans mon propre environnement)
cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh 2>&1 | tee your_name.log
Certains des résultats réels sont présentés ci-dessous. Le journal sera affiché dans le terminal et un fichier votre_nom.log
sera créé dans la hiérarchie. / Examples / mnist /
.
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)
sens | |
---|---|
loss | Valeur de la fonction de perte de données d'entraînement(loss is the training function) |
lr | Taux d'apprentissage(lr is the learning rate of that iteration) |
#0: accuracy | Taux de réponse correct des données de test |
#1: loss | Valeur de la fonction de perte de données de test(testing loss function) |
Fondamentalement, je me réfère à j'ai essayé de tracer les progrès de l'apprentissage de MNIST avec Caffe.
Puisque Gnuplot est utilisé pour l'affichage, il est nécessaire d'installer Gnuplot. Installez en vous référant à Installer Gnuplot (Mac ElCapitan).
Exécutez parse_log.sh
avec votre_nom.log
créé dans la formation de l'ensemble de données comme argument.
cd $CAFFE_ROOT/tools/extra
./parse_log.sh your_name.log
Les deux fichiers suivants sont créés.
your_name.log.test
your_name.log.train
Changez la partie de votre_nom dans les deux fichiers ci-dessus en mnist. (Dans le dossier $ CAFFE_ROOT / tools / extra) Exécutez ensuite la commande suivante.
gnuplot plot_log.gnuplot.example
L'image dessinée (axe horizontal: "Itérations d'entraînement", axe vertical: "Perte d'entraînement") est enregistrée.
your_chart_name.png
·Message d'erreur
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 $@
·Solution de contournement
Editez lenet_solver.prototxt
pour basculer le mode sur CPU.
# solver mode: CPU or GPU
solver_mode: CPU
Officiel Caffe | Formation LeNet sur MNIST avec Caffe (20) Reconnaissance automatique MNIST avec Caffe (1) [De l'introduction de "Caffe" qui permet l'apprentissage en profondeur sans GPU à l'apprentissage, aux tests et aux données auto-créées](http://sssslide.com/speakerdeck.com/suneo3476/gpuwu-sidedeipuraningudekiru-caffe-dao-ru-karaxue-xi-tesutodetazi -zuo) J'ai essayé de tracer les progrès de l'apprentissage du MNIST avec Caffe Caffe Logging and Loss Plotting Where to find log files? How can I get the figures like this Installer Gnuplot (Mac ElCapitan)
Recommended Posts