美文网首页每天写1000字大数据机器学习与计算机视觉
深度学习框架caffe安装实测记录,附python接口编译过程

深度学习框架caffe安装实测记录,附python接口编译过程

作者: 狂风起 | 来源:发表于2016-12-28 19:11 被阅读1719次

    相信看这篇文章的都知道caffe是干嘛的了,无非就是深度学习、神经网络、计算机视觉、人工智能这些,这个我就不多介绍了,下面说说我的安装过程即遇到的问题,当然还有解决方法。

    说下我的环境:1》虚拟机:VM Workstation 12 Player2》OS:redhat7.1

    虚拟机装好之后因为RedHat的yum服务是收费的,为了倒腾免费yum源看网上的教程,坑了一b,浪费了N久时间,最后得高人指点得以成功,写了个blog:redhat配置免费yum源

    步入正题,安装caffe.再次建议大家尝试看英文文档,因为最新的东西很少有中文的,而且,中文教程各种坑。。。附上官方地址:caffe官方安装教程

    1.安装依赖包,各种依赖包

    这一步之前,你要先把yum 源都配好,要不的话会出现下面的情况:

    假设你yum配置好了,继续:

    sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel

    sudo yum install gflags-devel glog-devel lmdb-devel

    sudo yum install atlas-devel

    你可能会问,都是安装依赖为啥需要2条命令,而不是一条直接运行。这个我只能说,官方文档里第一行里的是:General dependencies,即:基本依赖,理解出必选的就行,第二行的包是:Remaining dependencies剩余的依赖?不管了,你只管装就好了。

    另外,如果你是按照我上面给出的方法配置的yum源的话(上面支配了本地源,163源,和epel),可能还会有包找不到,这时候就要自己找源了,添加方法都是差不多的。

    如果你需要用caffe提供的python接口的话,那还有一个包需要安装:sudo yum install python-devel,后面会说到。

    2.下载caffe源码,编译

    sudo apt-getinstall git

    git clone https://github.com/BVLC/caffe.git

    下载过程有点慢,慢慢等。

    下完之后,会在当前目录生成一个caffe文件夹,本文默认caffe下载到/code目录下,以下所有命令默认都在/code/caffe目录下,除非有cd命令出现。

    root@localhost caffe]#cd /code/caffe

    [root@localhost caffe]# cp Makefile.config.example Makefile.config

    [root@localhost caffe]# vi Makefile.config

    把第8行的注释打开,我们使用CPU模式,如图。

    接着,开始编译吧,遇到问题再说:

    [root@localhost caffe]# make all

    遇到的第一个问题,如图:

    很明显,提示g++找不到。安装g++,

    [root@localhost caffe]# yum install gcc-c++

    继续编译,遇到第二个错,如图:

    找不到atlas,上面明明装了atlas-devel,查看官方教程发现如下描述:

    (图BLAS)

    我标注了两个地方,先看第二个,说需要取消BLAS_LIB的注释,并且要设置atlas的路径,提示说一般都放在/usr/lib/atlas目录下。那就试试,但是编辑哪个文件呢?当然是Makefile.config,编辑它,如图:

    找到51行的样子,果然有一个BLAS_LIB被注释掉了,第一步取消注释,第二步,先到/usr/lib64/atlas下看看有没有这个目录。我看了下是有的,并且在atlas下有这些文件,如图:

    那把/usr/lib64/atlas配到51行,继续编译(make all),错误依旧。继续看官方给出的对BLAS的解释(图BLAS)(往上数第三个截图),

    官方提示安装是这么说的:install ATLAS bysudo yum install atlas-develor install OpenBLAS,注意一个or,我们刚才是第一种方法,现在试试安装openblas

    yum install openblas openblas-devel

    安装之后,搜索下安装到的目录:

    find / -name"*openblas*.so"

    发现都在/usr/lib64目录下,再次修改Makefile.config,如图:

    再次编译:

    make all

    顺利通过。这里也给各位再次强调下,各种教程官网的最正宗,一定要强迫自己看官网。。。虽然是英文。。

    接着运行下测试命令

    make test

    make runtest

    上面的成功了,这两个应该不会有问题。

    到此,caffe的安装就结束了.

    接下来说下编译caffe的python接口,pycaffe:

    还是在/code/caffe目录下:

    第一步还是安装依赖,下把pip安装了,并且升级下:

    [root@localhost caffe]#yum intall python-pip

    [root@localhost caffe]# pip install --upgrade pip

    然后安装pycaffe的各种依赖:

    [root@localhost caffe]# pip install -r python/requirements.txt

    [root@localhost caffe]# yum install python-devel

    把caffe的python接口路径添加到系统环境变量:

    [root@localhost caffe]# vim /etc/profile

    在文件的最后一行添加:

    export PYTHONPATH=/code/caffe/python:$PYTHONPATH

    注意,/code/caffe/python这部分要根据你的实际目录来填写。

    然后然修改生效

    [root@localhost caffe]# source/etc/profile

    [root@localhost caffe]# source/etc/profile

    编译pycaffe

    [root@localhost caffe]# make pycaffe

    输出如下:

    导入python试试:

    提示找不到caffe,这时候再重新打开一个终端试试,如果还不行,那就说明配置有问题了。

    我的导入时出现如下问题:

    提示six这个包没有indexbytes方法。手动dir了一下,确实没有indexbytes,如下:

    但是既然caffe代码里有写这个方法,那就应该是有的,猜测是python引用的six包的版本不对。于是想到看看系统里有没有其他的six.py文件:

    python默认导入的是 /usr/lib/python2.7/site-packages/这个目录下的six.py,它没有indexbytes方法,看了下上图其他几个目录下的six.py文件都是有该方法的,于是,把/usr/lib/python2.7/site-packages/pip/_vendor下的six.py拷贝到/usr/lib/python2.7/site-packages/(建议备份)。然后重新打开一个终端,导入caffe

    ok了,完事。祝好!

    PS,有错误,或者有问题的地方欢迎下方交流。

    相关文章

      网友评论

        本文标题:深度学习框架caffe安装实测记录,附python接口编译过程

        本文链接:https://www.haomeiwen.com/subject/fuzyvttx.html