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,有错误,或者有问题的地方欢迎下方交流。

  • 相关阅读:
    net core 使用 rabbitmq
    asp.net core WebApi 返回 HttpResponseMessage
    asp.net core 2.1 WebApi 快速入门
    JQuery EasyUI combobox动态添加option
    php截取字符去掉最后一个字符
    JQuery EasyUI Combobox的onChange事件
    对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成
    Access2007 操作或事件已被禁用模式阻止解决办法
    Easyui 中 Tabsr的常用方法
    Win 7 IE11不能下载文件,右键另存为也不行
  • 原文地址:https://www.cnblogs.com/dadong616/p/6230609.html
Copyright © 2011-2022 走看看