您的位置:首页 > Web前端

MacOS Sierra 安装配置caffe 记录

2017-03-03 21:59 246 查看
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 := $(
4000
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: