MacOS Sierra 安装配置caffe 记录

来源:互联网 发布:冒泡排序 js 编辑:程序博客网 时间:2024/06/05 18:31

2017.3.2

os版本:10.12.1

配置:i7cpu,AMD显卡(不支持CUDA)

1.事先安装:

Python: Python 2.7.10 |Anaconda2- 4.3

Homebrew:https://brew.sh

2.安装依赖:

sudo brew install -vd snappy leveldb gflags glog szip lmdb

sudo brew tap homebrew/science

sudo brew install hdf5

3.安装opencv:

使用最新版opencv3.0,官网下载后在本地解压

开始编译OpenCV,注意cmake一步添加-D WITH_IPP=ON,否则会出现library not found for -lippicv的错误

cd /Users/mac/Downloads/opencv-3.1.0

mkdir release

cd release

cmake -D WITH_IPP=ON -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..

make

sudo make install

4.安装boost和protobuf

用最简单的sudo brew install protobuf boost方式,如下:

sudo brew install protobuf boost

5.  安装caffe:

下面是Caffe本身的安装过程,从caffe的github主页上拷贝下来。默认存在主目录。其中需要将Makefile.config.example拷贝一份成Makefile.config,这样之后才能make。

 

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

cd /caffe

cp Makefile.config.example Makefile.config

 

另外Makefile.config需要进行修改,去掉CPU_ONLY := 1的注释,这样Caffe就只运行在CPU上了

# CPU-only switch (uncomment to build withoutGPU support).

 CPU_ONLY := 1

另外对我来说需要去掉OPENCV_VERSION := 3的注释,因为我的OpenCV版本是3.1.0,根据自己的情况选择,如果OpenCV版本是2.*就不需要去掉注释。

# Uncomment if you're using OpenCV 3

 OPENCV_VERSION := 3

对Anaconda Python,将路径部分修改成如下模式:

# NOTE: this is required only if youwill compile the python interface.

# We need to be able to find Python.hand numpy/arrayobject.h.

# PYTHON_INCLUDE :=/usr/include/python2.7 \

#      /usr/lib/python2.7/dist-packages/numpy/core/include

# Anaconda Python distribution isquite popular. Include path:

# Verify anaconda location, sometimesit'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

若使用Python 3(Python2无需做此修改),修改成如下:

# Uncomment to use Python 3 (defaultis Python 2)

 PYTHON_LIBRARIES := boost_python3 python3.5m

 PYTHON_INCLUDE := /usr/include/python3.5m \

                /usr/lib/python3.5/dist-packages/numpy/core/include

这一段的配置按如下取消注释:

# Homebrew installs numpy in a nonstandard path (keg only)

 PYTHON_INCLUDE += $(dir $(shell python -c'import numpy.core;     print(numpy.core.__file__)'))/include

 PYTHON_LIB += $(shell brew --prefix numpy)/lib

然后就可以开始编译了,在每条后面加-j4可以多线程加速

make all -j4

make test -j4

make runtest -j4

 

报错:

1.    make阶段,报找不到cblas.h的错误,查资料得知是由于caffe找不到BLAS库,根据网上的说法,macos自带BLAS库,因此使用了默认配置,后来发现不可行。于是使用

brewinstall openblas

安装openblas库,编译的过程相当长,需要几小时,其中包含了许多gcc的安装。

之后修改Makefile.config文件,将如下段落

# BLAS choice:

# atlas for ATLAS (default)

# mkl for MKL

# open for OpenBlas

BLAS := open

最后一行BLAS的选择设为open,表示使用openblas

2.Make阶段报hdf5版本不匹配错误,如图所示:

这个错误排查了很久,来回编译了几十次,参考了很多网上资料,一直无法解决,后来发现macos中确实安装了两个不同的hdf5版本,一个是anaconda中自带的1.8.17版,另一个是前面准备过程中使用brew包管理命令安装的1.10.0版本。由于不了解macos的各种环境变量,依赖关系等,于是不清楚从何下手,尝试过分别将1.8.17和1.10.0版本删除,再次编译仍然报版本不匹配。最后无奈删除并重装anaconda,从官网下载命令行版本(之前是使用图形版本安装),照说明安装后重新make,终于test通过。


折腾了一天多的时间,经历了无数次失败,终于完成caffe的安装,也对macos又有了新的认识。

 

参考资料:

1.    http://blog.csdn.net/taigw/article/details/50683289

2.    http://blog.csdn.net/lkj345/article/details/51260811

3.    http://blog.csdn.net/lkj345/article/details/51260811

4.    http://blog.csdn.net/kamiwon/article/details/54574996

5.    http://www.cnblogs.com/taopanpan/p/4263951.html

0 0
原创粉丝点击