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.
2015-08-17。
Das Verfahren zum Einfügen von Brew und Pyenv ist hier.
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.
$ 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
...
$ cd $CAFFE_ROOT
$ cp Makefile.config.example Makefile.config
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 ?= @
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
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
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
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