首页 > 编程语言 > 详细

《机器学习 caffe 环境搭建——redhat7.1 和 caffe 的 python 接口编译》

时间:2020-08-04 15:00:26      阅读:99      评论:0      收藏:0      [点我收藏+]

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

《机器学习 caffe 环境搭建——redhat7.1 和 caffe 的 python 接口编译》

原文:https://www.cnblogs.com/cx2016/p/13432898.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!