mac安装caffe踩坑大杂烩

为什么我要入图像处理的坑,为什么我要选这个毕设,为什么我要用深度学习,为什么我要装caffe,为什么我是mac

好了废话不多说,反正我就是在mac上装了caffe

我就是装了好几天,从入门到砸电脑

终于特么的装好了

网上搜到的好多教程都是基于linux的,mac的教程还是有很多坑

接下来就是我呕心沥血好几天总结下来的“精华”啦!!!


==========================这是一条迷人的分割线============================

1、安装homebrew,通过这个可以很方便的安装一些依赖包

    据说通过这个可以达到linux里面apt-get的效果

2、安装cmake(我感觉可装可不装吧)

2.5、安装cuda(用gpu的大佬可以装这个,,用cpu的默默忽略这一行)

3、安装各种依赖

4、安装caffe

具体依赖项可以参考以下博文:

第一篇:https://segmentfault.com/a/1190000008532537

第二篇:http://blog.csdn.net/xidiancoder/article/details/52081519

第三篇:https://www.jianshu.com/p/cc16e2977e27

第四篇:http://blog.csdn.net/feitongxunke/article/details/51388212#reply

照着这几篇把caffe装好跑个minist应该是没啥问题的

坑主要是在装python依赖的时候make pytest报错


1、python2: command not found

/usr/bin中查看是否有python2文件,若没有,到build/CMakeFiles/putest.dir/build.make 路径下修改python2为你bin里面有的python版本(我用的是python2.7)。保存重新运行


2、No module named  xxx

这种情况下没有啥就用pip装啥就可以了,常见的就是缺少protobuf和scikit-image


3、明明安装了却还是一直报错

这时可以去检查一下你的pip把这些包装到了哪,是python2.7里面还是python3.6下面

我当时是在/usr/local/lib路径下可以找到python2.7和python3.6两个文件夹,而我的那些依赖包都装到了3.6里面,可是我的caffe用的是2.7版本。所以就算装了也会一直报错。

查看pip默认是什么可以输入 pip --version 或者pip -V


系统自带的python和homebrew装的python路径的区别:据说系统自带的在usr/lib下面;安装的在usr/local下面

一般来说pip都默认的是python2的版本,网上很多都是在问怎么把默认的改成python3

而我的就很神奇了,pip默认就是python3,pip3还是python3,却没有pip2

所以如何把pip的默认环境改成python2.7呢

这个问题找了好久,,好像是没有装python2?这里我其实不是很懂哦

反正就是执行下面这行代码之后就好了,,很神奇,,不是自带就有吗为什么我还要装python2,,反正他就是好了

brew install python@2

可以参考这篇博文  在mac上装python2  

不过很多文章都提到要去~/.bash_profile里面配置PATH,但是我配这个感觉没啥用,感觉不需要。

然后就可以pip,pip2,pip3自由切换了。然后重新安装自己所需环境的依赖包就好了。

这是在知乎看到的一段话,没毛病

(1)brew是用来安装mac系统中使用的程序,默认都是安装到brew的指定目录“/usr/local/Cellar”下,然后在“/usr/local/bin”下创建对应的软连接来使用的。如果安装多个不同版本的库,可以修改对应的软连接就可以了。
(2)pip和pip3是mac上可执行程序/脚本,是用来为python安装第三方库/执行程序用的。仅安装到python目录里面,使用安装的第三方库/执行程序时需要进入到python交互环境里面使用。
(3)pip和pip3安装的程序是分开的,pip是安装到python2版本对应的目录里,pip3是安装到python3版本对应的目录中。如果希望一个第三方库/程序可以同时在python2和python3中使用,则需要分别用pip和pip3各安装一次。


4、配置Makefile.config

这个文件主要要注意的是

(1)把CPU_ONLY:=1的注释放开

(2)修改PYTHON_INCLUDE 和PYTHON_LIB这两个路径,改成你所用的python、numpy的路径

PYTHON_INCLUDE := /usr/local/Frameworks/Python.framework/Versions/2.7/include/python2.7/ \
/usr/local/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := /usr/local/Frameworks/Python.framework/Versions/2.7/lib/

这一步非常重要!!!敲黑板!!!划重点!!!

你要是遇到 segmentation fault :11 这个错,那肯定是python的路径写的有问题

我电脑里面python装了好几个,比较杂,照着网上的教程一不小心就把路径搞错了。


我以为我的python路径是

/usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/include/python2.7

其实我的是/usr/local/Cellar/python@2/2.7.14_3/Frameworks/Python.framework/Versions/2.7(还记得我前面重新装了python@2吗,,无法理解却又无能为力)

最后为什么我写了/usr/local/Frameworks/Python.framework/Versions/2.7呢

而在usr/local/frameworks里面的python是一个快捷方式,你可以看到他的前世今生。所以python路径可以写这个也可以写他的原身。

这个详情可以参考这篇英文教程不知道要不要翻墙哦


5、cmake ..还是make all / Makefile.config 还是CMakeCache.txt 

若是使用cmake的话,是不会编译Makefile.config这个文件的。需要到build路径下的CMakeCache.txt去修改,修改的地方参见前面第四篇博文。主要还是我上一点提到的几个地方,路径别写错就好了。

6、 把caffe导入到python中

这里是要在bash_profile里面添加路径的。

我的是export PYTHONPATH=/Users/zhouyang/caffe/python/:$PYTHONPATH

然后在命令行输入python   然后import caffe

如果不报错就是成功了,报错参见前面12345

(小tips:open ~/.bash_profile打开;  source ~/.bash_profile重启; ctrl + D 退出python命令模式; command+shift+G去到任何路径


7、到此可以跑一个pytest试一下了

可能会遇到"dot" not found in path

这个时候用brew安装 brew install graphviz就好了。别用pip!


8、继续开心的跑pytest吧


以上。


猜你喜欢

转载自blog.csdn.net/zyhhhh233/article/details/79661974
今日推荐