原文地址:http://blog.csdn.net/s2392735818/article/details/49796017
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

很无奈的开个头,最近装了好几次caffe,前面由于没有记录完整而详细的过程,以致于这次安装的过程中除了很多问题,现在特此留博客一篇记录一下细节的部分,免得下次继续入坑。

首先列一下本文档下适合的环境,和已经成功安装的环境。

  • 显卡:Telsa k20c/Quadro k5000
  • 系统:Centos7

好了,下面就是具体的步骤了:


安装依赖

Ubuntu用户参考http://caffe.berkeleyvision.org/install_apt.html 
OS X用户参考http://caffe.berkeleyvision.org/install_osx.html

REHL/Centos/Fedora用户参考以下步骤:


  1. 安装基础依赖

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

  2. 其他依赖

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


如果发现没有找到上面的包,可以采用手动安装的方法,系统需要提前装好最新的cmake版本,我装的是3.4.0版本。 
cmake版本传送cmake3.4.0二进制版本 
cmake的配置过程可以参考Centos6.3安装配置cmake

接下来就可以手动安装glog,gflags,lmdb了


  1. glog

    wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz 
    tar zxvf glog-0.3.3.tar.gz 
    cd glog-0.3.3 
    ./configure 
    make && make install

  2. gflags

    wget https://github.com/schuhschuh/gflags/archive/master.zip 
    unzip master.zip 
    cd gflags-master 
    mkdir build && cd build 
    export CXXFLAGS=”-fPIC” && cmake .. && make VERBOSE=1 
    make && make install

  3. lmdb

    Git clone https://github.com/LMDB/lmdb 
    cd lmdb/libraries/liblmdb 
    make && make install

  4. protobuf重要

    安装步骤请参考 http://blog.csdn.net/tdmyl/article/details/31811317

  5. hdf5安装

    hdf5安装请查看官方文档 
    http://www.hdfgroup.org/HDF5/release/obtainsrc.html#src

  6. leveldb安装 

    leveldb下载请见https://github.com/google/leveldb 
    安装请见http://blog.sina.com.cn/s/blog_560e310001015jfx.html 
    缺失的步骤: 
    leveldb文件夹下依次执行 
    make 
    cd out-shared 
    cp lib* /usr/local/lib


切记,上述依赖需要安装到/usr/local下面的目录,否则编译时会提示找不到相关库文件。当然也可以配置到用户自定义的目录下面,不过没有尝试过。 前方高能!!接下来就是一些稍大型的安装动作了,步骤如下:

  1. NVIDIA驱动,驱动文件请于官方链接自行下载NVIDIA驱动下载

    1、下载完成后,设置系统为命令行启动systemctl set-default multi-user.target 
    2、重启系统,切换到root模式 
    3、设刚才下载的文件名为nvidia.run,接下来执行sh nvidai.run,应该会出现几个提示,选择accept或者yes。出现这一步的原因是系统没有禁用Nouveau驱动,现在安装nvidia驱动的过程中会帮助用户禁用Nouveau 驱动,之前参照网上的一些帖子禁用Nouveau 均不成功,所以只有这种方法了。 
    4、使用 dracut重新建立 initramfs image file :

    • 备份 the initramfs file 
      mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
    • 重新建立 the initramfs file 
      dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

    5、再次重启系统,如果字体变大了,就说明Nouveau禁用成功,然后就可以继续安装Nvidia驱动了 
    6、成功安装Nvidia驱动后,再次将系统设置为图形模式,systemctl set-default graphical.target,重启系统就可以正常进入图形界面了。

    也可以参考这篇文章CentOS 7.0安装Nvidia驱动

  2. CUDA7.5自行下载CUDA下载链接

    建议下载runfile类型的文件,后缀名为.run 
    下面就可以使用sh cuda*.run执行安装步骤,安装时需要输入几个参数

    • 1、是否安装Nvidia驱动,选no
    • 2、安装cuda的位置,我输入的是/usr/local/cuda-7.5
    • 3、是否创建cuda的快捷方式,我选择的是yes
    • 4、是否创建cuda-samples,我输入的是/usr/local/cuda-samples
    • 5、是否安装OpenGL,选择是,这个过程也算是安装了OpenCV
    • 6、接下来就安装成功了
  3. OpenBLAS安装OpenBLAS下载链接

    下载后,解压,然后安装。 
    或者可以使用我用的版本,OpenBLAS–楼主使用的版本 
    然后执行下面的指令 
    tar -xzvf OpenBLAS.tar.gz 
    make 
    make --PREFIX='usr/local/' install 
    上述步骤只做参考,实际操作过程可能会存在部分差异,安装的时候注意一下就行 
    若在caffe编译的时候出现/usr/bin/ld: cannot find -lopenblas 
    请在openblas编译文件夹下执行cp lib* /usr/local/lib即可

  4. Anaconda

    官方下载链接Anaconda下载链接 
    楼主下载链接Anaconda下载链接 
    接下来直接执行sh anaconda.sh就行,安装过程自己领会


接下来就是最终的caffe配置过程了,caffe的github地址为https://github.com/BVLC/caffe 
将工程文件拷贝到本地后,执行

cp Makefile.config.example Makefile.config 
vim ./Makefile.config 
修改CUDA_DIR :=/usr/local/cuda-7.5 (按照个人之前安装cuda的路径进行配置) 
修改BLAS := open 
修改BLAS_INCLUDE,BLAS_LIB为安装路径 
保存(如果用户显卡不够用,可以去除前面的CPU_ONLY :=1前面的注释符号”#”,表示只使用CPU做运算)

接下来就可以正常的执行

make all 如果编译速度慢,可以使用make all -jN (N为核心处理器的个数) 
make test 对编译结果进行测试

下面需要对用户根目录下的.bashrc文件进行编辑,加载一些动态库

vim ~/.bashrc 
文本最后加入 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/glog/lib 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

最后再次进入caffe目录,执行make runtest,喝杯茶,等一会,就结束了。

上述过程是安装caffe最基础的步骤,如果需要加速cuDNN,Matlab,等扩展文件,可以参考 
http://www.cnblogs.com/platero/p/3993877.html

教程到此结束,如有纰漏请指正。谢谢。未经允许,不准转载,谢谢配合。

[转]Centos7下caffe的安装的更多相关文章

  1. centos7下使用yum安装mysql

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/m ...

  2. [转]linux14.04下caffe的安装步骤

     linux14.04下caffe的安装步骤   原文地址:http://blog.csdn.net/xiaoyang19910623/article/details/52997481?locatio ...

  3. centos7下搜狗输入法的安装教程

    相信用过centos自带的输入法的朋友都会感叹这也实在是太难用了吧,使用拼音打出来的词总是不能在前几个匹配到,即使是一些常用词也是如此,简直无法忍受跟个zz似的.吐槽完了,这里给出centos7下搜狗 ...

  4. centos7下使用yum安装pip

    centos7下使用yum安装pip 首先安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pi ...

  5. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  6. CentOS7 下源码安装 python3

    CentOS 7 下源码安装 python3   在CentOS7下,默认安装的是python2.7:为满足项目要求,安装python3 的方法如下:   1. 首先安装python3.6可能使用的依 ...

  7. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  8. centos7下使用yum安装redis

    centos7下使用yum安装Redis 第一步:安装 yum –y install redis 第二步:启动 systemctl start redis.service 第三步:设置开机启动 sys ...

  9. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

随机推荐

  1. Set,List,Map,Vector,ArrayList的区别(转)

    JAVA的容器---List,Map,Set Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtab ...

  2. python使用代理ip发送http请求

    一.需求背景 网站刷票时,经常会遇到限制一个ip只能投票一次的限制,为此需要使用代理ip 二.脚本如下: 1.Proxy_http.py使用代理ip发送httpr的get和post请求 #coding ...

  3. Vim特定行行尾追加

    python print 替换 logging 1.print语句最后追加")". :%s/\(.*\)print \(.*\)/\1print \2)/g 2."    ...

  4. information_schema系列十二

    1: INNODB_SYS_VIRTUAL 表存储的是INNODB表的虚拟列的信息,当然这个还是比较简单的,我们直接通过SHOW CREATE TABLE 或者DESC TABLE就能看得到. Col ...

  5. sql server中除数为零的处理技巧

    在sql server中做除法处理的时候,我们经常需要处理除数为零的情况,因为如果遇到这种情况的时候,sqlserver会抛出遇到以零作除数错误的异常,我们总不希望把这个异常显示给用户吧. 做个会报这 ...

  6. SecureCRT的安装

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT 是高度可定制的终端仿真器,适用于 In ...

  7. paramiko模块-2

    如何用paramiko模块模拟登入服务器,并记录操作日志,起到审计的作用? 各个client ---(连接跳转机)--->(跳转机)------>各自的目标服务器. 目前我们公司的跳转机, ...

  8. SQL Lazy Spool Eager Spool

    https://www.simple-talk.com/sql/learn-sql-server/showplan-operator-of-the-week-lazy-spool/ The Lazy ...

  9. 9.Mybatis一级缓存和二级缓存

    所谓的缓存呢?其实原理很简单,就是在保证你查询的数据是正确的情况下,没有去查数据库,而是直接查找的内存,这样做有利于缓解数据库的压力,提高数据库的性能,Mybatis中有提供一级缓存和二级缓存. 学习 ...

  10. Exception Type & Exception Code

    1.Exception Type 1)EXC_BAD_ACCESS 此类型的Excpetion是我们最长碰到的Crash,通常用于访问了不改访问的内存导致.一般EXC_BAD_ACCESS后面的&qu ...