[PYTHON] Étapes pour mettre Caffe dans Mac OS X 10.10 en mode CPU

introduction

Suivez essentiellement le didacticiel d'origine. Cependant, il y a une partie qui est un peu réfléchie, donc je vais l'écrire sans omettre cette partie dans ce manuel de procédure.

** Notez qu'il est supposé qu'anaconda-2.1.0 est inclus dans pyenv. ** **

Je recommande fortement que l'anaconda puisse être utilisé même au sein de la famille principale, je vais donc le suivre docilement. Si vous ne l'avez pas déjà fait, veuillez vous référer à ici et insérer d'abord anaconda-2.1.0.

Date d'éxecution

2015-08-17。

environnement

La procédure d'insertion d'infusion et de pyenv est ici.

Écoulement brutal

  1. Installez les packages requis pour Caffe with brew
  2. Clonez le référentiel caffe et réécrivez le fichier de configuration pour la construction
  3. Construire
  4. Test de fonctionnement

1. Installez les packages requis pour Caffe with brew

Ce qu'il faut mettre est snappy leveldb gflags glog szip lmdb protobuf boost boost-python openblas opencv hdf5 À l'exception des deux derniers, il est facile d'entrer. Les deux derniers ne peuvent être effectués qu'après avoir légèrement modifié les paramètres.

Vous n'êtes pas obligé de mettre OpenBLAS, mais cela semble être un peu plus rapide en mode CPU, donc je vais le mettre rapidement. Notez que vous devrez modifier une ligne des paramètres de construction de caffe plus tard.

1-1. snappy leveldb gflags glog szip lmdb protobuf boost boost-python openblas

Tout d'abord, le simple.

$ brew install -vd snappy leveldb gflags glog szip lmdb
$ brew install --build-from-source --with-python --fresh -vd protobuf
$ brew install --build-from-source --fresh -vd boost boost-python
$ brew tap homebrew/science # need the homebrew science source for OpenCV and hdf5
$ brew install openblas

1-2. opencv

$ brew edit opencv

Ensuite, éditez -DPYTHON_LIBRARY et -DPYTHON_INCLUDE_DIR comme suit.

/usr/local/Library/Taps/homebrew/homebrew-science/opencv.rb#L93-Environ 94


...

  args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{dylib}"
  args << "-DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7"

...

Pleinement

$ brew install opencv

1-3. hdf5 Il semble que l'installation de brew fonctionnait bien jusqu'à il y a quelque temps, mais la dernière version de hdf5-1.8.14 n'est pas la version utilisée par caffe, et une erreur se produit lorsque vous essayez d'utiliser caffe plus tard. Alors éditez pour installer hdf5-1.8.13.

$ brew edit hdf5

Donc, modifiez la pièce dans les premières lignes comme suit.

/usr/local/Library/Taps/homebrew/homebrew-science/opencv.rb


  url "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.bz2"  
  sha1 "712955025f03db808f000d8f4976b8df0c0d37b5"

Pleinement

$ brew install hdf5

Ceci termine l'installation du package. C'est facile jusqu'à présent.

2. Clonez le référentiel caffe et réécrivez le fichier de configuration pour la construction

2-1. Cloner le café

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

Donc, parce que c'est pratique et sera utilisé plus tard, définissez les variables d'environnement suivantes.

.zshrc


...
export CAFFE_ROOT=/path/to/caffe
...

2-2. Copiez le fichier des paramètres de construction

$ cd $CAFFE_ROOT
$ cp Makefile.config.example Makefile.config

2-3. Réécrivez le fichier des paramètres de construction en fonction de votre environnement

Réécrivez comme suit. (La variable d'environnement PYENV_ROOT aurait dû être écrite lors de la définition de pyenv.)

## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1

# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1

# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++
CUSTOM_CXX := /usr/bin/clang++

# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR := /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
		-gencode arch=compute_20,code=sm_21 \
		-gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode arch=compute_50,code=sm_50 \
		-gencode arch=compute_50,code=compute_50

# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
# BLAS := atlas
BLAS := open
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas

# Homebrew puts openblas in a directory that is not on the standard search path
BLAS_INCLUDE := $(shell brew --prefix openblas)/include
BLAS_LIB := $(shell brew --prefix openblas)/lib

# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
# MATLAB_DIR := /usr/local
# MATLAB_DIR := /Applications/MATLAB_R2012b.app

# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
#PYTHON_INCLUDE := /usr/include/python2.7 \
#		/usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(PYENV_ROOT)/versions/anaconda-2.1.0
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
	$(ANACONDA_HOME)/include/python2.7 \
	$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

# We need to be able to find libpythonX.X.so or .dylib.
# PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib

# Homebrew installs numpy in a non standard path (keg only)
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
# PYTHON_LIB += $(shell brew --prefix numpy)/lib

# Uncomment to support layers written in Python (will link against Python libs)
# WITH_PYTHON_LAYER := 1

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
# INCLUDE_DIRS += $(shell brew --prefix)/include
# LIBRARY_DIRS += $(shell brew --prefix)/lib

# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1

BUILD_DIR := build
DISTRIBUTE_DIR := distribute

# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1

# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID := 0

# enable pretty build (comment to see full commands)
Q ?= @

3. Construisez Caffe

3-1. Test et construction

Enfin construisez. -j est le nombre de processus parallèles, alors réglez-le à votre convenance. Vous n'êtes pas obligé. Il est tard.

$ cd $CAFFE_ROOT
$ make clean
$ make all -j4
$ make test -j4
$ make runtest

À la suite de l'exécution, s'il n'y a pas d'erreur particulière, k

3-2. Insérez PyCaffe.

Construisez également caffe enveloppé en python afin que caffe puisse être appelé en python.

$ cd $CAFFE_ROOT/python
$ make pycaffe
$ make distribute

À la suite de cette exécution, s'il n'y a pas d'erreur particulière, k

3-3. Définition des variables d'environnement pour Caffe

Réglez ce qui suit. Si DYLD_FALLBACK_LIBRARY_PATH n'est pas défini, l'importation caffe échouera.

# Caffe
export ANACONDA_HOME=$PYENV_ROOT/versions/anaconda-2.1.0
export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH
export DYLD_FALLBACK_LIBRARY_PATH=$ANACONDA_HOME/lib:/usr/local/lib:/usr/lib

4. Test de fonctionnement

Lancez l'interpréteur python et testez l'opération.

$ python 
>>> import caffe
>>>

Si vous ne vous mettez pas en colère, vous réussissez.

Si vous obtenez une erreur indiquant que google.protobuf n'existe pas, essayez d'insérer protobuf à partir de python avec la commande suivante.

$ pip install protobuf

Recommended Posts

Étapes pour mettre Caffe dans Mac OS X 10.10 en mode CPU
Remarques sur l'installation de Caffe en mode CPU sur Mac OSX 10.11 (El Captain)
Procédure pour obtenir la clé KeePassX avec une ligne de commande sous OSX
Introduction à la base de données Graph Neo4j en Python pour les débutants (pour Mac OS X)
Préparation à l'utilisation de aws cli sur Mac OS X
Très facile à installer SciPy sur Mac OS X
Comment installer Caffe sur OS X avec macports
Instructions d'utilisation de l'interface de ligne de commande AWS (Python / awscli) sous Mac OS X
J'ai appris MNIST avec Caffe et j'ai essayé de le dessiner (MAC OS X El Capitan)
Comment installer Theano sur Mac OS X avec homebrew
Mémo sur Mac OS X
Premiers pas avec le framework Python Django sur Mac OS X
Comment obtenir le pilote d'imprimante pour Oki Mac sous Linux
Comment installer Theano sur Mac OS X 10.10 (en utilisant pyenv, anaconda)
Installez Caffe sur Ubuntu 14.04 (mode CPU)
Instructions pour installer matplotlib sur votre Mac
Étapes pour installer Ubuntu sur VirtualBox
Installez Sphinx sur MacOSX
Installation de scikit-learn (Mac OS X)
Installez mitmproxy sur Mac OS X
Étapes pour installer python3 sur Mac
Installez pgmagick sur Mac OS X 10.9