Last active
May 28, 2018 21:34
-
-
Save sconnelley/4125e57ec37f60f60f44d1a6b98a16cb to your computer and use it in GitHub Desktop.
Install Caffe (w/o GPU) on OS X El Capitan (10.11.6) using Homebrew Python (2.7.12_2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install Caffe (w/o GPU) on OS X El Capitan (10.11.6) using Homebrew Python (2.7.12_2) | |
# | |
# Pulled together from several sources: | |
# - https://gist.github.com/kylemcdonald/0698c7749e483cd43a0e | |
# - https://gist.github.com/doctorpangloss/f8463bddce2a91b949639522ea1dcbe4 | |
# - http://installing-caffe-the-right-way.wikidot.com/start | |
# Dependencies | |
# - XCode 8 | |
# - Also need command line tools for XCode 7.3.1 since CUDA doesn't support XCode 8, which you can get here - https://developer.apple.com/download | |
# search for Command_Line_Tools_OS_X_10.11_for_Xcode_7.3.1.dmg | |
# - CUDA toolkit 8.0 (https://developer.nvidia.com/cuda-toolkit) | |
# - Homebrew python, tested against v2.7.12_2 | |
# | |
# Install dependiences via brew | |
# might need to uninstall previous installs | |
brew tap homebrew/science | |
brew install -vd snappy leveldb gflags glog szip lmdb | |
brew install hdf5 opencv | |
brew upgrade libpng | |
brew install protobuf boost boost-python | |
# Setup virtual environment using the brewed python | |
mkvirtualenv --python /usr/local/bin/python caffe | |
# Activate virtual environment if not activated already | |
workon caffe | |
# Also allow access the global packages | |
toggleglobalsitepackages | |
# Clone the caffe repo into a directory | |
mkdir /somewhere/create/a/directory | |
cd to/the/directory/created/above | |
git clone [email protected]:BVLC/caffe.git | |
# Change into repo | |
cd caffe/ | |
# Create config | |
cp Makefile.config.example Makefile.config | |
# Edit Makefile, particularly these bits | |
# Make sure to double check all the paths | |
# See config in this gist | |
# # CPU-only switch (uncomment to build without GPU support). | |
# CPU_ONLY := 1 | |
# ... | |
# # CUDA directory contains bin/ and lib/ directories that we need. | |
# CUDA_DIR := /usr/local/cuda | |
# ... | |
# BLAS := atlas | |
# BLAS_INCLUDE := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers | |
# BLAS_LIB := /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A | |
# ... | |
# PYTHON_INCLUDE := /usr/include/python2.7 \ | |
# /usr/local/lib/python2.7/site-packages/numpy/core/include | |
# ... | |
# PYTHON_LIB := /usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/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 | |
# | |
# switch to older xcode tools and build & test | |
sudo xcode-select --switch /Library/Developer/CommandLineTools | |
make -j4 all | |
make -j4 all | |
make -j4 runtest # cross finger | |
# If passed, install pycaffe | |
pip install --requirement python/requirements.txt | |
make -j4 pycaffe | |
# Test | |
python -c "import caffe" | |
# Add to PYTHONPATH | |
export PYTHONPATH=<caffe-home>/python:$PYTHONPATH | |
# Distribute [TODO] | |
# revert back to xcode 8 command line tools | |
sudo xcode-select -r |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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 | |
# uncomment to disable IO dependencies and corresponding data layers | |
# USE_OPENCV := 0 | |
# USE_LEVELDB := 0 | |
# USE_LMDB := 0 | |
# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary) | |
# You should not set this flag if you will be reading LMDBs with any | |
# possibility of simultaneous read and write | |
# ALLOW_LMDB_NOLOCK := 1 | |
# Uncomment if you're using OpenCV 3 | |
# OPENCV_VERSION := 3 | |
# 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++ | |
# 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 | |
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories. | |
# Leave commented to accept the defaults for your choice of BLAS | |
# (which should work)! | |
BLAS_INCLUDE := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers | |
BLAS_LIB := /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A | |
# 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/local/lib/python2.7/site-packages/numpy/core/include | |
# Anaconda Python distribution is quite popular. Include path: | |
# Verify anaconda location, sometimes it's in root. | |
# ANACONDA_HOME := $(HOME)/anaconda | |
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ | |
# $(ANACONDA_HOME)/include/python2.7 \ | |
# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \ | |
# Uncomment to use Python 3 (default is Python 2) | |
# PYTHON_LIBRARIES := boost_python3 python3.5m | |
# PYTHON_INCLUDE := /usr/include/python3.5m \ | |
# /usr/lib/python3.5/dist-packages/numpy/core/include | |
# We need to be able to find libpythonX.X.so or .dylib. | |
PYTHON_LIB := /usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/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 | |
# N.B. both build and distribute dirs are cleared on `make clean` | |
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 ?= @ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello, all goes well but when I did "make -j4 pycaffe" it gives this error and I could not solve it
ld: library not found for -lboost_python
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1
make: *** Waiting for unfinished jobs....