Installation de Caffe en mode CPU sous Linux

Préparation du système

Avant de cmopiler Caffe, il est nécessaire d'installer l'ensemble des bibliothèques système requises. Sous Ubuntu ou Debian, exécutez les commandes suivantes :

sudo apt-get update
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev
sudo apt-get install -y libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

Téléchargement du code source

Récupérez la dernière version stable depuis le dépôt officiel :

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

Configuration de la comiplation

Créez le fichier de configuration à partir du modèle fourni :

cp Makefile.config.example Makefile.config

Éditez Makefile.config pour activer le mode processeur uniquement. Décommentez la ligne suivante :

CPU_ONLY := 1

Résolution des problèmes de chemins HDF5

Lors de la première tentative de compilation, une erreur concernant l'en-tête HDF5 peut survenir. Identifiez l'emplacement des fichiers :

sudo find /usr -name "hdf5.h"

Typiquement, les fichiers se trouvent sous /usr/include/hdf5/serial/ et les bibliothèques sous /usr/lib/x86_64-linux-gnu/hdf5/serial/. Modifiez Makefile.config pour ajouter ces chemins :

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/lib /usr/lib

Si une erreur liée à Atlas apparaît (cannot find -lcblas ou -latlas), vérifiez l'installation :

sudo apt-get install libatlas-base-dev

Compilation de Caffe

Lancez la compilation avec les commandes suivantes :

make all -j$(nproc)
make test -j$(nproc)
make runtest

Configuration de l'interface Python

Installez pip et le compilateur Fortran nécessaire pour certaines dépendances scientifiques :

sudo apt-get install python-pip gfortran

Installez les dépendances Python listées dans le fichier requirements :

cd python
cat requirements.txt | xargs -n1 pip install
cd ..

En cas d'erreur concernant les en-têtes NumPy :

sudo apt-get install python-numpy

Compilez l'interface Python :

make pycaffe -j$(nproc)

Configuration de l'environnement Python

Ajoutez temporairement Caffe au chemin Python :

import sys
chemin_caffe = "/chemin/vers/votre/caffe"
sys.path.insert(0, chemin_caffe + "/python")

Pour une configuration permanente, créez un fichier dans le répertoire des packages Python :

cd /usr/lib/python2.7/dist-packages
sudo sh -c 'echo "/chemin/vers/caffe/python" > caffe.pth'

Si l'importation échoue avec No module named skimage.io :

sudo apt-get install python-skimage

En cas d'erreur avec protobuf :

sudo apt-get install python-protobuf

Vérification avec le jeu de données MNIST

Téléchargez et préparez les données :

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

Modifiez la configuration du solveur pour utiliser le processeur. Dans ./examples/mnist/lenet_solver.prototxt, remplacez :

solver_mode: GPU

par :

solver_mode: CPU

Lancez l'entraînement :

time ./examples/mnist/train_lenet.sh

Le modèle entraîné sera sauvegardé sous :

./examples/mnist/lenet_iter_10000.caffemodel

Étiquettes: caffe deep-learning mnist CMake BLAS

Publié le 3 août à 08h32