小白MAC下安装Caffe 2019最新血泪史
历史2天半,度娘了几十次,有一个语法问题咨询了同事,最终完成mac上caffe安装,一路走下来,学习了cmake,make相关命令,学习了brew相关命令,网上有不少caffe安装教程,不过我报的错跟他们几乎没有一样的,不过很多帖子给了我参考意义,为了回馈互联网给我们带来的技术福利,我也把我安装遇到的问题谈一谈,最重要的还是解决问题的思想吧
第一步:按照套路来安装,推荐两个帖子
1.https://blog.****.net/mynameisOu/article/details/80153003
2.http://f.dataguru.cn/thread-916065-1-1.html
3.http://manchery.co/archives/241 CUP版本
第二步:解决问题
A:xcode路径着不到,就安装xcode呗
官网慢,那么就可以用百度云下载,最新的xcode我系统也不支持(百度云超级会员速度比较快,着急的话可以花点银子)
https://pan.baidu.com/s/18YCklBYfnc7iyadofgpZzg
B:protobuf一大堆报错
主要参考了:https://blog.****.net/phdsky/article/details/80994090
brew uninstall protobuf 这个安装的版本太高,用不起来,下面说下protobuf两个重点
1.安装protobuf 2.6.1 或者3.3的可能可以 可以下载历史版本源码make
2.还要执行下面的脚步使得生效才行,我理解就是重新生成protobuf的python 接口
C opencv主要两点
1.brew uninstall opencv 卸载最新版本
1.通过brew search 搜opencv 使用低版本的好点
2.路径指定(在caffe的配置文件里)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/opt/[email protected]/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local/Cellar/[email protected]/2.4.13.7_2/lib
上面的方案是自己推断出来的,不过参考了xcode配置opencv的思路
https://www.cnblogs.com/pingyang-mei/p/5160195.html
D leaveldb报错
错误信息:/usr/local/include/leveldb/status.h:26:11: error: expected ';' at end of declaration list
leveldb是brew install 下载的,不可能人家有语法错误啊,请教了下同事,说是使用了c++ 11的特性
反正要加一些配置支持该特性,我想可能在mac系统层面或者caffe的某个地方增加配置吧,反正我不知道怎么弄,
那按照前面问题解决的思路,下载老版本brew search leaveldb,遗憾的是没有老版本,那就 brew install https://raw.githubusercontent.com/xxx找到这个类似leavedb的地址,哪里找呢,鬼知道,好在leveldb在github上有源码
,我下载了 leaveldb 1.8.0的zip包(git的话注意切版本),然后make一把,很容易,但是怎么make install啊,这个命令执行
make: *** No rule to make target `uninstall'. Stop.好在我找啊找,看的这篇帖子http://blog.sina.com.cn/s/blog_560e310001015jfx.html ,原来make install 就是copy一些文件罢了(拓展:如果不copy,增加caffe配置文件中的类似上面的opencv路径是否可以呢)
总算是解决了
安装成功的画面
minist demo画面
F:python编译问题
参考下面的
http://blog.sina.com.cn/s/blog_8d2b2be40102xd19.html
https://blog.****.net/lkj345/article/details/51298586
https://blog.****.net/feitongxunke/article/details/51388212
综合上面的帖子看,还是python版本混乱导致的
/usr/bin/python2.7
Python 2.7.10 (default, Oct 6 2017, 22:29:07)
/usr/local//bin/python
Python 2.7.16 (default, Mar 4 2019, 09:02:22)
解决方案(主要两两个需要配置正确):
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := /usr/local/Cellar/[email protected]/2.7.16/Frameworks/Python.framework/Versions/2.7/lib
重点信息:
这个就是需要修改的地方,其中PYTHON_LIB和PYTHON_INCLUDE特别关键,需要根据自己机器的python环境修改。一般来说有3种python环境,系统自带,brew安装,Anaconda带的。我找到自己机器的python路径为:/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib和/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7,上述分别为lib和include。
很明显有问题,为啥Libraries还是2.7.10,和Interpreter版本根本不匹配,照理说我在Makefile.config修改了应该生效呀。这里先不管了,我直接修改build/CMakeCache.txt吧。
注意:现在caffe没有要cmake,在CMakeCache.txt文件为也没有找到什么需要修改的