[PYTHON] Schritte, um Caffe im CPU-Modus in Mac OS X 10.10 zu integrieren

Einführung

Befolgen Sie grundsätzlich das ursprüngliche Tutorial. Es gibt jedoch einen Teil, der ein wenig nachdenklich ist, daher werde ich ihn schreiben, ohne diesen Teil in diesem Verfahrenshandbuch wegzulassen.

** Beachten Sie, dass angenommen wird, dass anaconda-2.1.0 in pyenv enthalten ist. ** ** **

Ich empfehle dringend, dass Anaconda auch bei der Hauptfamilie verwendet werden kann, daher werde ich es gehorsam befolgen. Wenn Sie dies noch nicht getan haben, lesen Sie bitte hier und fügen Sie zuerst anaconda-2.1.0 ein.

Ausführungsdatum

2015-08-17。

Umgebung

Das Verfahren zum Einfügen von Brew und Pyenv ist hier.

Rauer Fluss

  1. Installieren Sie die erforderlichen Pakete für Caffe with Brew
  2. Klonen Sie das Caffe Repo und schreiben Sie die Konfigurationsdatei für die Erstellung neu
  3. Bauen
  4. Betriebstest

1. Installieren Sie die erforderlichen Pakete für Caffe with Brew

Was zu setzen ist bissig leveldb gflags glog szip lmdb protobuf boost boost-python openblas opencv hdf5 Mit Ausnahme der letzten beiden ist die Eingabe einfach. Die letzten beiden können nur durchgeführt werden, nachdem die Einstellungen ein wenig bearbeitet wurden.

Sie müssen OpenBLAS nicht hinzufügen, aber es scheint im CPU-Modus etwas schneller zu sein, also werde ich es schnell einsetzen. Beachten Sie, dass Sie später eine Zeile der Build-Einstellungen von caffe ändern müssen.

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

Zuallererst die einfache.

$ 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

Bearbeiten Sie dann -DPYTHON_LIBRARY und -DPYTHON_INCLUDE_DIR wie folgt.

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


...

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

...

Völlig

$ brew install opencv

1-3. hdf5 Es scheint, dass die Brew-Installation bis vor einiger Zeit in Ordnung war, aber die neueste Version von hdf5-1.8.14 ist nicht die von caffe verwendete Version, und ein Fehler tritt auf, wenn Sie versuchen, caffe später zu verwenden. Bearbeiten Sie also, um hdf5-1.8.13 zu installieren.

$ brew edit hdf5

Bearbeiten Sie den Teil in den ersten Zeilen wie folgt.

/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"

Völlig

$ brew install hdf5

Damit ist die Paketinstallation abgeschlossen. Bis zu diesem Punkt ist es einfach.

2. Klonen Sie das Caffe Repo und schreiben Sie die Konfigurationsdatei für die Erstellung neu

2-1. Klonen Sie Kaffee

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

Definieren Sie die folgenden Umgebungsvariablen, da dies praktisch ist und später verwendet wird.

.zshrc


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

2-2. Kopieren Sie die Build-Einstellungsdatei

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

2-3. Schreiben Sie die Build-Einstellungsdatei entsprechend Ihrer Umgebung neu

Schreiben Sie wie folgt um. (Die Umgebungsvariable PYENV_ROOT sollte beim Setzen von pyenv geschrieben worden sein.)

## 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. Caffe bauen

3-1. Test & Build

Endlich bauen. -j ist die Anzahl der parallelen Prozesse. Stellen Sie sie also nach Ihren Wünschen ein. Das musst du nicht. Es ist spät.

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

Wenn als Ergebnis der Ausführung kein bestimmter Fehler vorliegt, k

3-2 PyCaffe einfügen.

Bauen Sie auch ein in Python eingewickeltes Kaffee, damit das Kaffee in Python aufgerufen werden kann.

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

Als Ergebnis dieser Ausführung, wenn es keinen bestimmten Fehler gibt, k

3-3 Festlegen von Umgebungsvariablen für Caffe

Stellen Sie Folgendes ein. Wenn DYLD_FALLBACK_LIBRARY_PATH nicht festgelegt ist, schlägt der Import von caffe fehl.

# 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. Betriebstest

Starten Sie den Python-Interpreter und testen Sie die Operation.

$ python 
>>> import caffe
>>>

Wenn Sie nicht wütend werden, sind Sie erfolgreich.

Wenn Sie eine Fehlermeldung erhalten, dass google.protobuf nicht vorhanden ist, fügen Sie mit dem folgenden Befehl protobuf aus Python ein.

$ pip install protobuf

Recommended Posts

Schritte, um Caffe im CPU-Modus in Mac OS X 10.10 zu integrieren
Hinweise zur Installation von Caffe im CPU-Modus unter Mac OS X 10.11 (El Captain)
Vorgehensweise zum Abrufen des KeePassX-Schlüssels mit einer Befehlszeile unter OSX
Einführung in die Graph Database Neo4j in Python für Anfänger (für Mac OS X)
Vorbereiten der Verwendung von aws cli unter Mac OS X.
Sehr einfach, SciPy unter Mac OS X zu installieren
So installieren Sie caffe unter OS X mit Macports
Anweisungen zur Verwendung der AWS-Befehlszeilenschnittstelle (Python / awscli) unter Mac OS X.
Ich habe MNIST mit Caffe gelernt und versucht, es zu zeichnen (MAC OS X El Capitan)
So installieren Sie Theano unter Mac OS X mit Homebrew
Hinweise zur Vorbereitung der Python-Entwicklungsumgebung unter Mac OS X.
Erste Schritte mit dem Python-Framework Django unter Mac OS X.
So bringen Sie den Druckertreiber für Oki Mac in Linux
So installieren Sie Theano unter Mac OS X 10.10 (mit pyenv, anaconda)
Installieren Sie Caffe unter Ubuntu 14.04 (CPU-Modus)
Anweisungen zur Installation von matplotlib auf Ihrem Mac
Schritte zum Installieren von Ubuntu auf VirtualBox
Installieren Sie Sphinx unter MacOSX
Installation von scikit-learn (Mac OS X)
Installieren Sie mitmproxy unter Mac OS X.
Schritte zum Installieren von python3 auf einem Mac
Installieren Sie pgmagick unter Mac OS X 10.9