Caffe学习1-Ubuntu下的Caffe的搭建

Posted LiemZuvon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffe学习1-Ubuntu下的Caffe的搭建相关的知识,希望对你有一定的参考价值。

Ubuntu下的Caffe的搭建

参考来源:https://github.com/tiangolo/caffe/blob/ubuntu-tutorial-b/docs/install_apt2.md

本教程是在Ubuntu14.04下的(因为CUDA官方目前在Ubuntu64bit下支持的只有14.04和15.04两个版本,如果是15.04的按照这个教程应该也是可以的,主要是因为CUDA官方目前只支持这两个版本,小编曾经试过在16.x的版本安装,结果是惨烈的)

安装Git:

sudo apt-get install git

安装英伟达驱动

Caffe是建立在CUDA之上的,而只有英伟达才支持CUDA,所以,如果读者您的显卡不是英伟达的,可能就要三思咯…

就算是英伟达显卡,也有可能不支持CUDA的,如果您的显卡不在官方提供的列表里,那也只能说很遗憾了,下面是官方提供的列表:

  • 添加PPA源

    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt-get update

  • 安装英伟达显卡,小编推荐安装352的,是目前最稳定的版本

    sudo apt-get install nvidia-352

还有另外一种方法也可以安装驱动,但是这种方法比较麻烦,小编强烈不推荐用这种(小编曾在这种方法栽过跟头):
注意,如果上面的方法安装成功了,请无视此部分
首先,读者需要去英伟达官网下载符合您显卡的驱动程序:
http://www.geforce.com/drivers
接着,请把下载到的xx.run文件放到一个英文路径下。并运行下面命令
chmod +x xx.run
接着如果读者试着安装该文件的话,不出意味,一定会失败,错误提示应该如下:
ERROR: You appear to be running an X server; ......
所以要你退出X server...
好吧,退出就退出吧...
那么怎么退出X server?(此时建议用手机拍下,因为即将暂别)
首先,按住ctrl+alt+F1切换到tty1窗口,
然后输入
service lightdm stop
或者
service gdm stop
这样就退出了X server,然而这时候有中文路径的读者会发现,命令行里此时不能输中文,也看不到中文(知道为什么要把xx.run放到英文路径了吧)
然后找到xx.run的目录,输入下面命令
sudo ./xx.run
然后就开始安装了,如无意外,这时候应该会安装得很顺利。
  • 安装成功后重启

    sudo shutdown -r now

  • 检查是否安装成功

    cat /proc/driver/nvidia/version

安装CUDA

记得再记得,CUDA一定要有英伟达显卡!

  • 首先读者需要去英伟达开发者网站注册一个账号,因为后面下载软件需要用到账号(其中还要填调查问卷,读者看着填吧)

    注册 https://developer.nvidia.com/user

  • 然后是要下载CUDA的deb,这里推荐的是网络版的deb,本地版的下载有点龟速,不到万不得已都不要用.run的(否则你需要退出X server,并且运气不好的话还会有数不完的问题等着你)

  • 然后定位到下载的目录,安装CUDA,在update的时候,它可能会提示一些更新失败,小编忽略这些仍是能成功装cuda的

    sudo dpkg -i xx.deb
    sudo apt-get update
    sudo apt-get install cuda

  • 把CUDA加入到当前用户的环境变量里

    echo ‘export PATH=/usr/local/cuda/bin:$PATH’ >> ~/.bashrc
    echo ‘export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH’ >> ~/.bashrc

  • 关闭终端,重新打开然后检查CUDA是否安装成功。检查方式是通过安装示例。

    cuda-install-samples-7.0.sh ~/cuda-samples
    cd ~/cuda-samples/NVIDIA*Samples
    make -j $(($(nproc) + 1))

  • 重启计算机,之后运行下面指令来判断CUDA是否安装无误

    bin/x86_64/linux/release/deviceQuery
    bin/x86_64/linux/release/bandwidthTest

安装OpenBLAS

  • 接下来创建一个存放git代码的文件夹,这个文件夹之后都会用上,读者可知自行考虑

    mkdir ~/code

  • 克隆OpenBLAS

    git clone https://github.com/xianyi/OpenBLAS.git

  • 编译OpenBLAS

    cd OpenBLAS
    make -j $(($(nproc) + 1))

  • 安装OpenBLAS

    sudo make PREFIX=/usr/local install

安装Boost

sudo apt-get install libboost-all-dev

安装OpenCV

sudo apt-get install libopencv-dev

安装protobuf,glog,gflags

sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev protobuf-compiler

安装IO库:hdf5,leveldb,snappy,lmdb

sudo apt-get install libhdf5-serial-dev libleveldb-dev libsnappy-dev liblmdb-dev

安装Anaconda Python

Anaconda是个很好的工具,里面包含了大量依赖和软件(比如ipython),可以省下我们在安装python相关的极大多数时间。下载地址

http://continuum.io/downloads

  • 定位代Anaconda的下载目录,并安装,如果有问你是否添加到路径,选yes就对了

    bash Anaconda*.sh

  • 退出终端并重新打开

安装HDF5

conda install hdf5

配置并编译Caffe

  • 克隆Caffe

    cd ~/code
    git clone https://github.com/BVLC/caffe.git

  • 创建Makefile.config

    cd caffe
    cp Makefile.config.example Makefile.config

  • 使能Anaconda,这里注意,如果读者的Anaconda目录名是anaconda2,记得把下面的ANACONDA_HOME对应的anaconda改成anaconda2

    sed -i ‘s|# ANACONDA_HOME := $(HOME)/anaconda|ANACONDA_HOME := $(HOME)/anaconda|’ Makefile.config
    sed -i ‘s|# PYTHON_INCLUDE := $(ANACONDA_HOME)|PYTHON_INCLUDE := $(ANACONDA_HOME)|’ Makefile.config
    sed -i ‘s|# $(ANACONDA_HOME)|$(ANACONDA_HOME)|’ Makefile.config
    sed -i ‘s|# PYTHON_LIB := $(ANACONDA_HOME)|PYTHON_LIB := $(ANACONDA_HOME)|’ Makefile.config
    sed -i ‘s|# WITH_PYTHON_LAYER := 1|WITH_PYTHON_LAYER := 1|’ Makefile.config

  • 安装Python依赖

    pip install -r python/requirements.txt

  • 编译Caffe

    make all -j $(($(nproc) + 1))

如果读者在编译时遇到
pyconfig.h: No such file or directory
的问题时,那么如果您之前有按照小编的步骤安装了Anaconda,那么很有可能就是Anaconda的路径写错了,解决办法:先找到您Anaconda的安装目录和目录名(新版的Anaconda目录名变成了anaconda2,小编当时就是这里错了),然后在Caffe的Makefile.config里面找打ANACONDA_HOME并修改路径,就可以了~
如果遇到/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h的问题时,打开caffe根目录,然后输入下面的指令
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto


  • 编译Caffe测试文件并运行,不出意外的话,应该会报错,并提示libhdf5.so.x或libhdf5_hl.so.9找不到的错误
    make test -j $(( $(nproc) + 1))
    make runtest -j $(( $(nproc) + 1))
如果出现libhdf5.so.x找不到这样的错误,请记住提示的x,然后输入下面的指令,注意把x替换成提示的x。
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5.so.7 libhdf5.so.x
sudo ln -s libhdf5_hl.so.7 libhdf5_hl.so.x
sudo ldconfig
如果遇到symbol lookup error,那可能是没有引用到库文件,如果是用anaconda的话可以在.bashrc中添加lib路径:
export LD_LIBRARY_PATH=/home/liemzuvon/anaconda2/lib:$LD_LIBRARY_PATH  
  • 编译PyCaffe

    make pycaffe -j $(($(nproc) + 1))

  • 更新路径

    echo “export CAFFE_ROOT=$(pwd)” >> ~/.bashrc
    echo ‘export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH’ >> ~/.bashrc

  • 退出终端并重新打开

  • 尝试import caffe

    ipython
    import caffe

  • 如果没有报错,那么恭喜读者,你可以开始您的第一个Caffe实例了!
    安装过程中遇到任何问题,欢迎留言一起讨论:)

后记

呼,这配环境的事真是不容易,不过当跑出了第一个示例程序之后,内心那是一个激动的。小编接下来还会继续跟进Caffe的学习,争取给读者们提供一个最白痴,最容易上手的学习心得!下一节会介绍Caffe以及Caffe一些核心的概念~敬请期待:)

以上是关于Caffe学习1-Ubuntu下的Caffe的搭建的主要内容,如果未能解决你的问题,请参考以下文章

21天实战Caffe学习笔记Ubuntu16.04+Caffe环境搭建

虚拟机Ubuntu16,caffe环境搭建

caffe使用step by step:caffe框架下的基本操作和分析

caffe 学习记录1

[转]Caffe在Linux下的安装,编译,实验

Caffe学习系列Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)