Mac OSX (EI Capitan)搭建Caffe环境并配置python接口



Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换。我在MacbookPro(无NVIDIA显卡)上大费周章地配置了Caffe的环境,并花了许多时间配置其python接口。


一、下载Caffe

github上的下载地址:https://github.com/BVLC/caffe进入到下载后的路径,并复制 Makefile.config.example 重命名为 Makefile.config (我电脑的用户名是cuiqi,注意修改)
git clone https://github.com/BVLC/caffe.git
cd /Users/cuiqi/Downloads/caffe-master && cp Makefile.config.example Makefile.config

二、安装相关依赖

对于需要python接口的情况,需要以下依赖

1. CUDA 由于我的Mac没有NVIDIA的GPU,所以只能使用CPU_ONLY模式,需要在 Makefile.config 中修改
CPU_ONLY := 1
2. BLAS via ATLAS, MKL, or OpenBLAS.
# Basic Linear Algebra Subprograms,基础线性代数程序集

3. Boost >= 1.55
# Deepdream是用Python接Caffe,因此还需要 boost.python 支持
brew install boost --with-python
brew install boost-python
4. OpenCV >= 2.4 including 3.0

5. protobuf, glog, gflags
brew install protobuf
brew install glog
brew install gflags
6. IO libraries hdf5, leveldb, snappy, lmdb
brew install leveldb
brew install lmdb
brew tap homebrew/science
brew install homebrew/science/hdf5
# python driver for hdf5
pip install h5py
7. numpy for python
brew install numpy

三、修改Makefile.config中相应的路径

如果要使用Anaconda的python环境可以在Makefile.config中取消相应的注释,我试过这样做,可是在CMAKE的时候并不奏效:

Python:

Interpreter : /usr/bin/python2.7 (ver. 2.7.10)

Libraries : /usr/lib/libpython2.7.dylib (ver 2.7.10)

NumPy : /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include (ver 1.8.0rc1)

 所以我放弃了使用Anaconda,改使用系统自带的python。

PYTHON_INCLUDE := /usr/include/python2.7  

由于我使用了Homebrew安装了numpy,所以我在makefile.config中修改相应的numpy路径

PYTHON_INCLUDE := /usr/include/python2.7 /usr/local/Cellar/numpy/1.11.2/lib/python2.7/site-packages/numpy/core/include/numpy/core/include

我的Makefile.config文件:

## 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 := /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/local/Cellar/numpy/1.11.2/lib/python2.7/site-packages/numpy/core/include/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/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 ?= @

四、编译

使用cmake工具,将cmake的sourcecode设为caffe的路径,在caffe目录下建立build文件夹,并将cmake的build路径设为该build的路径,configure,generate。

此时打开终端工具进入build目录下,make。

make all
make test
make runtest
make pycaffe

如果没有出现错误,并全部通过后,此时make告一段落,但是并不能确定可以在python中import。

在终端上:

vi etc/profile

sudo vi /etc/profile

进入修改系统的环境变量,将 caffe/python/添加到Python系统路径:

export PYTHONPATH=path to caffe/python:$PYTHONPATH例如:
export PYTHONPATH=/Users/cuiqi/Downloads/caffe-master/python:$PYTHONPATH

终端输入python,确认这个python环境是刚刚在makefile.config中设定的那个,可以 which python 确认。由于我没有使用Anaconda,我的是

/usr/local/bin/python ,确认为刚刚在makefile.config中设定的路径。

>>> import caffe

# 可能的错误

  ImportError: No module named skimage.io

# 解决

   pip install scikit-image

参考:https://github.com/rainyear/lolita/issues/10?utm_source=tuicool&utm_medium=referral

 

 

 


Mac OSX (EI Capitan)搭建Caffe环境并配置python接口

时间: 2024-08-02 02:51:04

Mac OSX (EI Capitan)搭建Caffe环境并配置python接口的相关文章

在Mac OSX系统中搭建Python集成开发环境

本篇博客分享如何在Mac OSX系统中搭建Python集成开发环境 首先到Python官网下载python,python官网链接 这里选择下载Python2.7.9版本,下载完成之后安装: 安装成功,打开终端: 下面下载python开发的ide,http://www.jetbrains.com/pycharm/ 下载专业版,有30天的免费试用,足够我们学习python了. 安装,将Pycharm拖动到mac应用程序中 创建第一个Python项目: 运行python文件

搭建caffe环境及训练模型

Mac OS搭建caffe环境 一.相关软件安装 1.        安装CUDA8 (1)   安装xcode及命令行 (2)   安装CUDA的dmg包 (3)   配置环境变量并source ~/.bash_profile export CUDA_ROOT=/Developer/NVIDIA/CUDA-8.0 export PATH=$CUDA_ROOT/bin${PATH:+:${PATH}} export DYLD_LIBRARY_PATH=$CUDA_ROOT/lib${DYLD_L

mac下通过docker搭建LEMP环境

在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew update > brew install docker > brew install boot2docker 3.初始化boot2docker,也就是在virtualbox上安装一个docker的host环境 boot2docker init 此时会下载一个镜像 4.启动虚拟机host :~$ bo

mac osx 10.9 建立机器学习环境(python3.4)

https://pypi.python.org/pypi/ may be setup these export CFLAGS="-arch i386 -arch x86_64" export FFLAGS="-m32 -m64" export LDFLAGS="-Wall -undefined dynamic_lookup -bundle -arch i386 -arch x86_64" export CC=gcc export CXX=&quo

在Mac OSX下设置前端开发环境

以下内容将会详细介绍本人在MAC OSX下关于前端开发环境的安装和设置,如果您是前端开发人员,并且手上有个全新的或者重新安装过系统的mac,你可能会在以下内容里发现你所需要的东西. Google Chrome 几乎是每个前端开发者必备的浏览器,下载地址: https://www.google.com/chrome 一些常用到得Chrome插件: [JSON Formatter(显示格式化过得JSON文件)](https://chrome.google.com/webstore/detail/js

ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及matlab和python接口过程记录

已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照:2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置 详情:先下载好cudnn-7.5-linux-x64-v5.1-rc.tgz安装包(貌似需要官网申请) 解压: tar -zxvf cudnn-7.5-linux-x64-v5.1-rc.tgz cd cuda s

在Mac系统下,搭建Java环境有感。

最近准备写一些网络方面的应用,所以要搭建java的环境,开始不太顺利,所以在这里分享一下经验. 1.搭建java环境的第一步,首先肯定是要JDK了,不知道为什么在OSX10.10环境下,安装JDK7也无法让其它编程工具使用,所以必须要去官方下载老的JDK6才可以,oracle官方网站找了许久也没能找到,在apple官方网站反而找到,真是奇怪,以下分享其链接. http://support.apple.com/kb/DL1572 2.安装MyEclipse10(好先进,现在都10了,时间过的真快)

mac 升级EI Capitan后遇到c++转lua时遇到libclang.dylib找不到的错

升级EI Capitan后,打包lua脚本时,会报这个错: LibclangError: dlopen(libclang.dylib, 6): image not found. To provide a path to libclang use Config.set_library_path() or Config.set_library_file(). 处理方法,重新设置libclang.dylib库的路径,打开 /Applications/Cocos/frameworks/cocos2d-x

Mac OS X 下搭建thrift环境

1.概述 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生产引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的.高效的服务. 2.安装 2.1安装boost 注:先到官网下载boost包,并解压,然后进去该目录. ./bootstrap.sh —p