[PYTHON] Un amateur a essayé le Deep Learning avec Caffe (Introduction)

introduction

Cet article

  1. Qu'est-ce que le Deep Learning? Présentation
  2. Installation de Caffe, l'une des bibliothèques Deep Learning Introduction (cet article)
  3. Faisons un apprentissage simple en utilisant Caffe Practice Il est composé de trois

Bien que ce soit également dans le titre, il s'agit d'un article sur un disque laissé par un amateur qui n'est ni un chercheur en Deep Learning ni quoi que ce soit, alors pardonnez-moi toute erreur et lisez-le. (S'il y a quelque chose qui ne va pas, j'apprécierais que vous le signaliez dans les commentaires)

Environnement d'installation

OS:Ubuntu 14.04 LTS CPU: Core i7 2.93GHz GPU: GeForce GTX 960 Mémoire: 4 Go

Procédure d'installation du Caffe

En gros, faites comme décrit sur la page officielle de Caffe. Ici, la configuration est la suivante, mais veuillez la modifier de manière appropriée en fonction de l'environnement. CUDA 7.0 utiliser cudnn ATLAS Caffe (dernier dans Github Master) Rendre PyCaffe disponible

Installation des dépendances générales

Suivez docilement la formule

python


sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev

Installation des dépendances restantes (pour 14.04)

Cela suit également docilement la formule

python


sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

Installation d'ATLAS

Qu'est-ce que ATLAS? On dirait, mais une bibliothèque pour le calcul numérique (probablement différenciation de la matrice) Facile avec Ubuntu

python


sudo apt-get install libatlas-base-dev

Installation de CUDA (utilisateurs GPU uniquement)

Il dit que vous pouvez utiliser apt-get pour Ubuntu, mais de différents points de vue, il semble préférable de le prendre auprès du responsable nVidia et de le mettre par vous-même, alors j'ai décidé de le mettre moi-même. (Le dernier semble être 7.5, mais je pense que c'est le même que 7.0, donc je l'écrirai tel quel)

Installation de l'unité principale CUDA

À partir du site du développeur nvidia, accédez à CUDA ZONE → CUDA DOWNLOADS pour supprimer le programme d'installation de CUDA. Exécutez ensuite le programme d'installation (remplacez xxx par la version que vous avez supprimée)

python


chmod +x cuda_xxx_linux.run
sudo ./cuda_xxx_linux.run

Tout ce que vous avez à faire est de suivre les instructions à l'écran

installation de cudnn

Cela ne semble pas nécessaire, mais selon le responsable, il est plus rapide de le mettre en place, alors mettez-le.

cuDNN Caffe: for fastest operation Caffe is accelerated by drop-in integration of NVIDIA cuDNN. To speed up your Caffe models, install cuDNN then uncomment the USE_CUDNN := 1 flag in Makefile.config when installing Caffe. Acceleration is automatic. The current version is cuDNN v3; older versions are supported in older Caffe.

Enregistrement de l'utilisateur

Inscrivez-vous en tant que développeur à partir du site des développeurs nvidia ci-dessus.

Installation

Après l'inscription, cudnn sera disponible pour téléchargement, alors téléchargez-le depuis ici. Puis

python


sudo cp cudnn.h /usr/local/cuda/include/
sudo cp *.so /usr/local/cuda/lib64/
sudo cp *.a /usr/local/cuda/lib64/

Copiez la bibliothèque comme De plus, le même lien symbolique dans le fichier extrait, Créez-le dans / usr / local / cuda / lib64 (ce qui suit est 6.5 au moment du téléchargement)

python


cd /usr/local/cuda/lib64/
sudo ln -s libcudnn.so.6.5.48 libcudnn.so.6.5
sudo ln -s libcudnn.so.6.5 libcudnn.so

Installez Caffe

Maintenant que nous sommes prêts, nous allons le mettre en place immédiatement (en supposant que les éléments nécessaires autour de python sont préparés séparément)

Télécharger le Caffe

Pour une raison quelconque, cela n'est pas officiellement écrit correctement, mais il semble qu'il soit officiel de le supprimer de github

git clone https://github.com/BVLC/caffe.git

Installez ce dont vous avez besoin pour PyCaffe

Comme officiellement

python


for req in $(cat requirements.txt); do pip install $req; done

C'est tout. requirements.txt est en caffe / python Je n'avais pas gfortran dans mon environnement, j'ai donc pu installer scipy une fois.

python


error: Setup script exited with error: library dfftpack has Fortran sources but no Fortran compiler found

Dans ce cas, veuillez insérer gfortran.

python


sudo apt-get install gfortran

Modifier Makefile.config

C'est important. Si vous faites une erreur ici, vous pouvez essayer de construire avec quelque chose qui n'existe pas, ou vous risquez de rester coincé dans le pot d'erreur. Copiez d'abord Makefile.config.example pour créer le prototype de Makefile.config.

python


cp Makefile.config.example Makefile.config

Assurez-vous que Makefile.config ressemble à ceci: (Veuillez changer en fonction de l'environnement) USE_CUDNN: = 1 (lors de l'utilisation de cudnn) CPU_ONLY: = 1 (commentaire lors de l'utilisation du GPU) CUDA_DIR: = / usr / local / cuda (probablement pas nécessaire pour CPU_ONLY) Aucune des lignes de CUDA_ARCH: = -gencode arch = compute ... n'est commentée (probablement commentée si CPU_ONLY) BLAS := atlas PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include PYTHON_LIB := /usr/lib Le reste reste à titre d'exemple

faire

Ce sera peu de temps après la fin de ce qui précède. Faire à la racine du projet (C'est OK sans la partie j8. Veuillez modifier le nombre de manière appropriée en fonction du nombre de cœurs de processeur)

python


make all -j8

Exécutez le test pour voir s'il a été installé avec succès

Je vais faire un test final pour m'assurer que c'est fait ici

python


make runtest

Un journal comme celui-ci dure quelques minutes

python


[----------] 3 tests from DeconvolutionLayerTest/0, where TypeParam = caffe::CPUDevice<float>
[ RUN      ] DeconvolutionLayerTest/0.TestSetup
[       OK ] DeconvolutionLayerTest/0.TestSetup (0 ms)
[ RUN      ] DeconvolutionLayerTest/0.TestSimpleDeconvolution
[       OK ] DeconvolutionLayerTest/0.TestSimpleDeconvolution (1 ms)
[ RUN      ] DeconvolutionLayerTest/0.TestGradient
[       OK ] DeconvolutionLayerTest/0.TestGradient (623 ms)
[----------] 3 tests from DeconvolutionLayerTest/0 (624 ms total)

Enfin, si vous obtenez PASSÉ comme suit, vous réussissez.

python


[==========] 1404 tests from 222 test cases ran. (221949 ms total)
[  PASSED  ] 1404 tests.

En cas d'échec, vérifiez si les paramètres Makefile.config sont corrects et réessayez.

à la fin

Merci pour votre soutien. Dans le prochain article, j'aimerais réellement lancer l'apprentissage profond avec Caffe.

Recommended Posts

Un amateur a essayé le Deep Learning avec Caffe (Introduction)
Un amateur a essayé le Deep Learning en utilisant Caffe (Practice)
Un amateur a essayé le Deep Learning avec Caffe (Vue d'ensemble)
J'ai essayé l'apprentissage en profondeur avec Theano
J'ai essayé le deep learning
J'ai essayé d'exécuter le didacticiel de détection d'objets en utilisant le dernier algorithme d'apprentissage en profondeur
Une introduction à l'apprentissage automatique
[J'ai essayé d'utiliser Pythonista 3] Introduction
Introduction de caffe en utilisant pyenv
Introduction au Deep Learning ~ Règles d'apprentissage ~
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Introduction au Deep Learning ~ Rétropropagation ~
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
J'ai essayé d'héberger un modèle d'apprentissage en profondeur de TensorFlow à l'aide de TensorFlow Serving
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Un amateur a trébuché dans le Deep Learning à partir de zéro.
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 2
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Introduction à l'apprentissage profond ~ Préparation au codage ~
J'ai essayé l'apprentissage par renforcement avec PyBrain
Introduction au Deep Learning ~ Dropout Edition ~
Introduction au Deep Learning ~ Propagation vers l'avant ~
Introduction à l'apprentissage profond ~ Expérience CNN ~
Introduction au Deep Learning ~ Pliage et mise en commun ~
Une introduction à OpenCV pour l'apprentissage automatique
Modèle de reconnaissance d'image utilisant l'apprentissage profond en 2016
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
[Kaggle] J'ai essayé l'apprentissage d'ensemble avec LightGBM
[Python] Lorsqu'un amateur commence l'apprentissage automatique
J'ai essayé d'héberger le modèle d'apprentissage en profondeur de Pytorch avec TorchServe sur Amazon SageMaker
Une introduction à Python pour l'apprentissage automatique
L'apprentissage en profondeur
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
Les débutants du Deep Learning ont essayé les prévisions météorologiques à partir d'images satellitaires météorologiques à l'aide de Keras
J'ai essayé l'histoire courante de prédire la moyenne Nikkei à l'aide du Deep Learning (backtest)
Introduction au Deep Learning (1) --Chainer est expliqué d'une manière facile à comprendre pour les débutants-
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
Une introduction à l'apprentissage automatique pour les développeurs de robots
Une introduction à Cython sans aller plus loin
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow) - Partie 2
Introduction à l'apprentissage profond ~ Fonction de localisation et de perte ~
[Recherche causale / inférence causale] Effectuer une recherche causale (SAM) à l'aide du Deep Learning
Prévision du cours de l'action à l'aide du Deep Learning [acquisition de données]
Introduction à Cython sans approfondir -2-
[Introduction] Renforcer l'apprentissage
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
[Bouclier d'épée Pokémon] J'ai essayé de visualiser la base de jugement de l'apprentissage en profondeur en utilisant la classification des trois familles comme exemple
Réflexion sur les tactiques de croissance de type attaque de groupe en utilisant l'apprentissage en profondeur