写在前面的话
安装caffe依赖的时候我的mac版本10.10,安装opencv遇到问题如下:
Error: You are using macOS 10.10.
We(and Apple)do not provide support for this old version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
于是升级了mac10.13,这个版本果然有点坑。升级之后,brew和vim均出现问题,按照提示安装了command line tools并重装了vim。(更新后没问题可忽视这个问题)
mac无显卡驱动,并不支持GPU+CUDA,因此只安装CPU_ONLY的caffe。之后会更新在linux上安装caffe,如果安装没什么难度,也可能不更...
保证安装过程中网络畅通,注意安装时的信息,因为可能出现error或warning,大多是某个依赖安装失败或提示手动配置环境变量等信息。
准备
保证mac已安装Homebrew(本教程用Homebrew安装相关依赖)和~python2.7.10(不要使用mac自带python2.7.10版本,会遇到问题见文末)。
brew search python #查看本机用brew安装的python主版本
我的mac上有三个python版本
同时pip也对应三个,可以用如下命令查看pip的位置,不贴图了
pipn --version
安装Cmake
官网dmg文件双击安装 cmake.org/download/
安装依赖
我使用官网caffe.berkeleyvision.org/install_osx.html 安装命令,和网上其他安装命令几乎没有差别,我一起贴上
brew install -vd snappy leveldb gflags glog szip lmdb
# need the homebrew science source for OpenCV and hdf5
brew tap homebrew/science
brew install hdf5 opencv
网上的安装命令,先删除相应的依赖再安装
for x in snappy leveldb gflags glog szip hdf5 lmdb homebrew/science/opencv;
do
brew uninstall $x;
brew install --fresh -vd $x;
done
brew uninstall --force protobuf; brew install --with-python --fresh -vd protobuf
brew uninstall boost boost-python; brew install --fresh -vd boost boost-python
安装Caffe
下载Caffe源码
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config #根据example生成有效的配置文件
安装Caffe并修改配置文件
在上一步下载好的caffe文件夹下执行
mkdir build
cd build
cmake .. #cmake时注意安装的python的Interpreter和Libraries中是用的python版本是否是一个版本,不是也木有关系看文末...
修改CMakeCache.txt文件如下
CPU_ONLY:BOOL= ON
修改CaffeConfig.cmake文件如下
set(CPU_ONLY, ON)
编译
make all
make runtest
make pytest
执行前两句一般不会有什么问题,执行到第三个会报ImportError: No module named *的问题,缺少相关python依赖,使用如下命令安装
pip2 install 依赖名 #根据系统上python版本对应的pip版本,根据我的系统的版本以下全部用pip2表示
注,如果缺少pydot依赖,则先安装graphviz,再安装pydot依赖,否则会报Exception: "dot" not found in path.(不信可以试试...)如果缺少skimage.io,pip2 install scikit-image
brew install graphviz
pip2 install pydot
然后再执行
make pytest
将caffe/python加入.bashrc配置文件,否则在python下import caffe会失败
export PYTHONPATH=/caffe/python:$PYTHONPATH #该路径为系统中caffe/python的路径
OK!Happy Caffe!!
问题
起初我用mac自带python2.7.10安装caffe,遇到问题如下(必须贴出关键语句,百度、google好难查到这个问题!!)
Scanning dependencies of target pytest
/bin/sh: line 1: 17016 Segmentation fault: 11python2 -m unittest discover -s caffe/test
Segmentation fault: 11这个问题主要原因是cmake时lib库使用的是MAC自带的Python库而Interpreter是自己安装的Python。
解决方案参考
blog.sina.com.cn/s/blog_8d2b2be40102xd19.html
blog.csdn.net/xhhxllpp/article/details/73369062
这两篇博讲的解决思路是一样的,我在网上看到的解决方法都是这样的。
Happy Caffe again!!