为什么我要入图像处理的坑,为什么我要选这个毕设,为什么我要用深度学习,为什么我要装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的路径
这一步非常重要!!!敲黑板!!!划重点!!!
你要是遇到 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吧
以上。