1.在写安装过程之前
要说明的是此篇文章的最终结果参照的是用Google搜索出来的(翻墙)教程, 在这之前图省事没去翻墙(也是觉得就百度搜索的结果应该Ok), 结果百度出来的教程都没能在我的电脑中安装好Caffe(无GPU版本, 电脑用的是Intel Iris的显卡, 不能用NVIDIA的CUDA并行库).
更要吐槽的是, 虽然是Google搜索出来的此篇博文(wordpress), 但最终参考的是上述博文中的一篇知乎专栏文章(ref)的参考, 你这百度, 搜索国内的文章都这么费劲吗? (百度的结果全是Csdn等网站的(相似)文章)
2.安装的前提逻辑
首先, Caffe的安装大致是沿着官网的思路(link): 1.Caffe的C++依赖安装, 2.Caffe的Python接口的依赖安装, 3.Caffe源码编译.
1.依赖环境安装(Prerequisite): 包含Caffe的系统环境依赖(C++库, Mac中使用
brew
命令安装);2.Caffe Python的环境依赖(Python接口的一些依赖库), Caffe也有Matlab接口, 但我不熟也用不来, 故不安装;
3.源码编译(Compilation, Caffe Source Code): 从Github上下载然后
make install
(用C++编译器编译出需要的二进制程序).
但是, 官网上的安装教程, 也不是完全一对一的(每个人的电脑总会不同), 针对我的情况来说, 有些细节, 官网多讲了, 有些细节, 官网没讲.
环境这事情, 具体情况具体分析吧, 这么说, 也都是血与泪的教训啊, 故将此次安装的总结成众多Caffe安装方法的其中一个版本.
3.安装的过程(From 安装依赖 To import caffe
无报错):
由于我电脑上已经有了Xcode和brew
了, 故没有在此安装, 然后进行Caffe官方的环境依赖安装:
解释
brew
: Mac上管理系统库的一种工具接口/体系, 类似于Python中的pip
包管理工具.
以下, 通过brew
安装如下库, 由于不同库之间有版本依赖关系, 今天的某库A(旧版本)到一年后变成了新版本的库A, 但别的对此库有依赖的库B(依赖A的旧版本), 却是不能使用新版本的A, 故在brew
安装时, 要特别指定某个版本.
Caffe安装中通过
brew
安装的一些系统库:
snappy, leveldb, gflags, glog, szip, lmdb, openblas, hdf5, opencv, boost, boost-python
,以及
protobuf
,其中,
protobuf
库有点特殊, 较新的版本(如3.6.1
)还不是很稳定(不能正确编译), 故在此手动安装其它版本(使用make install
编译安装3.5.1
版本).
# 1.如果出现"Updating Homebrew.."且很慢的话(brew的自动更新, 可设置不自动更新), 可直接Ctrl+C中止更新;
brew install -vd snappy leveldb gflags glog szip lmdb
# 2.安装openblas;
brew install openblas
# 3.安装hdf5和opencv, 由于时间点的关系, 以下命令会安装最新opencv的4版本, 可以将'Makefile.configure'中的'OPENCV_VERSION'改成4, 或者使用'brew install opencv@3'命令(不保证, 没尝试);
brew install hdf5 opencv
# 4.安装指定版本的boost和boost-python, 因为这两个库的新版本可能与Python 2.7有兼容性问题:
# https://www.boost.org/doc/libs/1_67_0/libs/python/doc/html/rn.html;
brew install boost@1.59 boost-python@1.59
brew link boost@1.59 --force
brew link b