的编译和使用
在IBM开源的AccDNN(https://github.com/IBM/AccDNN )工具链当中,需要使用Caffe作为深度学习框架。和其他的深度学习框架不一样的是,Caffe并没有提供预编译的whl或者egg安装包,也无法通过pip或者pip3进行安装,因此,使用Caffe需要完全的手动编译。Caffe的编译(Centos7)过程如下:
由于atlas的版本在Centos7上比较高,而Caffe的代码当中存在一些固定的依赖关系,因此,需要对atlas的动态链接库进行部分的修改。
NO.2 下载代码
NO.3 安装python的依赖关系
由于Caffe的python依赖关系需要通过pip安装,出于系统安全的考虑,最好使用virtualenv的方式,安装Caffe的依赖关系,并进行Caffe的编译和使用。
NO.4 准备Caffe的Makefile配置文件
然后根据需要进行修改。
如果是编译CPU版本的Caffe,需要修改如下的代码:
设置blas的类型和头文件以及链接库
设置python的头文件
设置完成之后,整个Makefile.config大致的样子应当如下:
NO.5 编译Caffe
如果一切正常,在Caffe的目录下,应当有如下的文件夹出现
出现上述的结果,表示Caffe编译成功。
NO.6 验证Caffe的使用
由于Caffe是直接编译的,并不是通过pip或者rpm安装的,因此,需要设置一些环境变量,特别是Caffe的动态链接库。
设置完毕之后,验证Caffe是否正常
表明Caffe编译没有任何问题,可以直接使用
NO.7 注意事项
①Caffe目前支持最好的是Python2.7版本,Python3.x版本支持并不是很好。在编译Python3.x的Caffe时,编译过程正常,但是,很有可能在使用的时候出现类似如下的错误:
这种错误按照官网的说法是protobuf的版本问题,需要升级到protobuf3.2版本以上,不过目前尝试了一下,似乎升级之后还是会出现这个问题,暂时没有找到好的解决方法
②使用Caffe前的一些环境变量的操作,可以直接写入到/etc/profile或者~/.bashrc当中
③Caffe最好是在容器或者virtualenv当中运行,这样不会导致系统的库文件混乱。