作为一个不怎么用ubuntu的人,为了跑机器学习实验,还是尝试配置下caffe环境。
本来觉得按着不同博客的教程,总能一步一步配好,结果遇到一步一步的难题,总共用了两天才编译通过,所以借此把流程跟坑都记录下来,以便后面慢慢熟练!!!
第一步 下载caffe
首先从github上下载好caffe库:https://github.com/BVLC/caffe,解压,得到这些东西
在终端上打开你下的文件夹caffe-master。然后在目录下将创建一个Makefile.config的副本(原本文件夹只有Makefile.config.example)
cp Makefile.config.example Makefile.config
接下来就是修改makefile.config,在这个文件里面对应的注释讲的很清楚,需要哪一项,吧对应那一项前面“#”去掉就好了。所以我改了这两项:
CPU_ONLY:=1 //把前面注释#去掉就好了
BLAS:=atlas //这个很重要
BLAS(Basic Linear Algebra Subprograms,基础线性代数程序集)是一个应用程序接口(API)标准。他的实现有很多,caffe用的是其中的三种实现ATLAS, MKL, or OpenBLAS。这里我准备使用atlas,因为很方便,所以把上面的config的BLAS改成了atals。(安装atals后面会讲)
第二步 编译以及安装protoc
实际上,有些教程是让人用apt安装sudo apt-get install libprotobuf-dev
。我开始以为很方便,但实际上到最后回遇到一个问题,就是当你所有依赖库还有环境配好后,总是会遇到
.build_release/lib/libcaffe.so: undefined reference to google ::protobuf...
这类的错误。所以,还是用源码包来编译安装才能把这个问题解决掉,因为只要在编译的时候出现这个问题,只要重新编译一次protobuf就ok了。
在安装之前需要先把工具automake给装了:
sudo apt-get install autoconf automake libtool
那接下来就下载protobuf吧,在github下载,解压https://github.com/google/protobuf
解压后,进入目录protobuf-master, 运行:
./autogen.sh<