zoukankan      html  css  js  c++  java
  • 机器学习caffe环境搭建——redhat7.1和caffe的python接口编译

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

    说下我的环境:1》虚拟机:VM Workstation 12 Player 2》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 yum install 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 by sudo yum install atlas-devel or 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

     

    另外,导入caffe的时候若提示numpy版本问题,到/usr/lib64/python2.7/site-packages下执行

    rm -rf numpy*

    然后在安装numpy: pip install numpy

    ok了,完事。祝好!欢迎下方交流。

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

  • 相关阅读:
    模型评估方法
    欠拟合、过拟合、偏差、方差
    机器学习基本概念
    Hive 的基本概念
    Flume的Channel
    Flume的Sink
    Flume的Source
    Flume 安装和配置
    Flume的基本概念
    BIO & NIO & NIO常见框架
  • 原文地址:https://www.cnblogs.com/dadong616/p/6230609.html
Copyright © 2011-2022 走看看