C'est un framework open source de Deep Learning, qui a été un sujet brûlant récemment. La page d'accueil officielle peut être utilisée avec ici, C ++, Python et MATLAB, vous pouvez donc choisir celui dans lequel vous êtes bon. Vous pouvez voir une démo de la classification des images depuis ici, donc si vous êtes intéressé, essayez-le.
La méthode d'introduction de Caffe est résumée dans cet article, veuillez donc vous y référer si vous le souhaitez.
MNIST est une base de données d'images numériques manuscrites composée de 60 000 échantillons d'apprentissage et 10 000 échantillons de test de 28x28px. Il est largement utilisé dans le domaine de l'apprentissage automatique et de l'apprentissage profond comme référence pour les réseaux de neurones.
Caffe a un script qui facilite l'apprentissage de MNIST, alors je l'ai essayé!
Tout d'abord, accédez au répertoire racine de Caffe. Après le déplacement, exécutez le script préparé dans Caffe à l'avance pour télécharger l'ensemble de données MNIST, mais wget et gunzip sont nécessaires pour cette exécution, donc si vous ne l'avez pas, veuillez le mettre en homebrew.
cd /path/to/caffe
./data/mnist/get_mnist.sh
Comme Caffe doit être lu au format LevelDB ou LMDB lors de l'apprentissage d'image, les données téléchargées ci-dessus sont converties en LMDB avec le script suivant.
./examples/mnist/create_mnist.sh
Ensuite, vous devriez avoir créé . / Example / mnist / mnist_train_lmdb
et. / Example / mnist / mnist_test_lmdb
. Le train est utilisé pour la formation et le test est utilisé pour l'évaluation de l'apprentissage.
Si vous exécutez Caffe sur CPU_ONLY avant l'entraînement, réécrivez solver_mode: GPU
dans. / Examples / mnist / lenet_solver.prototxt
en solver_mode: CPU
. Si vous ne le faites pas, vous aurez un bogue.
Enfin, nous apprendrons sur la base des données préparées, qui ont également un script, alors exécutez-le.
./examples/mnist/train_lenet.sh
Ensuite, lenet_train_test.prototxt
et lent_solver.prototxt
seront lus et la construction et l'apprentissage du réseau de couches commenceront.
Vous devriez voir une perte et une précision pendant votre apprentissage. perte signifie une valeur qui diminue à mesure que le nombre de correspondances entre la prédiction et la bonne réponse augmente, et la précision signifie le taux de réponse correct. Ainsi, si vous regardez la transition de ces valeurs, vous pouvez voir comment l'apprentissage progresse.
I0704 solver.cpp:343] Test net output #0: accuracy = 0.0912
I0704 solver.cpp:343] Test net output #1: loss = 2.44682 (* 1 = 2.44682 loss)
A la fin de la formation, un test s'exécute et l'évaluation finale du réseau est affichée, et .examples / mnist / lenet_iter_10000.caffemodel
est généré comme modèle entraîné. En lisant ce modèle formé, le réseau dans l'état après l'apprentissage de la reconnaissance MNIST peut être reproduit à tout moment, de sorte que le réseau formé peut être incorporé dans des produits réels.
C'est la fin de l'apprentissage de la reconnaissance MNIST. Cette fois, j'ai lu le prototxt préparé à l'origine et l'ai appris, donc je ne pense pas que cela ait beaucoup de sens d'ajuster les paramètres, mais répétez le test en changeant la valeur du contenu de lenet_solver.prototxt
et comparez chaque donnée. C'est amusant, alors essayez-le.
Si vous avez une idée sur la façon d'utiliser la sortie du modèle dans la formation et comment afficher la progression de la formation dans un graphique, je vais la résumer.
Si vous avez des erreurs ou des opinions, veuillez nous en informer.
Recommended Posts