[深度学习之caffe配置] ubuntu下配置caffe框架

平台环境配置--笔记本电脑+双系统的ubuntu16.04+显卡英伟达M740

参考网站

(1)ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历

http://blog.csdn.net/WoPawn/article/details/52302164

(2)Ubuntu16:cmake生成Makefile编译caffe过程(OpenBLAS/CPU+GPU)

http://blog.csdn.net/10km/article/details/61619573

 

 

 

首先说明,这是在台式机上的安装测试经历,首先安装的windows(win7/win10),然后安装ubuntu16.04双系统,显卡为GTX1060 (笔记本M740)
台式机显示器接的是GTX1060 HDMI口,win10上首先安装了最新的GTX1060驱动372.54


废话不多说,上车吧,少年

一、首先安装nvidia显卡驱动

 

安装过程

1.安装相关依赖项

1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
2 sudo apt-get install --no-install-recommends libboost-all-dev
3 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
4 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.安装NVIDIA驱动

(1)查询NVIDIA驱动

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us 查看适合自己显卡的驱动并下载:

驱动文件后缀名应当是以.run结尾的。我们要把这个文件移动到家目录下,原因是下面我们要切换到文字界面下,如果放到~/下载 下面,我们没有办法进入下载这个目录(没有中文输入法,且中文全部是乱码)

                 

                        图1 输入显卡型号                                                                                                                                    图2  显卡驱动搜索结果

我的显卡型号是Quadro K620,系统是linux 64位,按照要求选择后点击search. 图2是搜索结果,点击下载就好了。

我下载后的驱动文件是:NVIDIA-Linux-x86_64-375.20.run

(2)安装驱动

在终端下输入: sudo gedit /etc/modprobe.d/blacklist.conf  

输入密码后在最后一行加上 blacklist nouveau .  这里是将Ubuntu自带的显卡驱动加入黑名单。

在终端输入: sudo update-initramfs -u  

重启电脑~
这里要尤其注意,安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。

然后,输入命令 sudo service lightdm stop 

现在可以安装驱动了,先进入家目录 cd ~ ,然后: sudo ./NVIDIA-Linux-x86_64-375.20.run,按照提示一步步来~ 

完成后,再次重启电脑。

安装完成之后输入以下指令进行验证: sudo nvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:

 

 

一、首先安装nvidia显卡驱动

  1. 我是1080P的显示器,在没有安装显卡驱动前,ubuntu分辨率很低,可以手动修改一下grub文件,提高分辨率,在终端输入

    sudo vim /etc/default/grub
    找到以下行
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command 'vbeinfo'
    # GRUB_GFXMODE=640×480
    按a进入插入模式,增加下面一行
    GRUB_GFXMODE=1920×1080 #这里分辨率自行设置
    按esc退出插入模式,按:wq保存退出
    在终端编辑
    sudo update-grub
    更新grub
    重新启动ubuntu使之生效
     

  2. 进入ubuntu系统设置-软件与更新-ubuntu软件,使用的是中科大的源:http://mirrors.ustc.edu.cn/ubuntu,如下所示

    这里写图片描述

    更新Ubuntu16.04源,终端输入
    cd /etc/apt/
    sudo cp sources.list sources.list.bak
    sudo vi sources.list
    把下面的这些源添加到source.list中:
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

  3. 最后更新源和更新已安装的包:
    终端输入
    sudo apt-get update
    sudo apt-get upgrade

  4. 安装nvidia驱动,终端输入

    sudo add-apt-repository ppa:graphics-drivers/ppa
    回车后继续
    sudo apt-get update
    sudo apt-get install nvidia-367
    sudo apt-get install mesa-common-dev
    sudo apt-get install freeglut3-dev
    之后重启系统让GTX1060显卡驱动生效
     

  5. 测试

    终端输入
    nvidia-smi
    显示效果如下图表示安装成功
    这里写图片描述



二、cuda安装

安装CUDA

CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。

(1)下载CUDA

首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:

 

 

 

  1. 下载cuda_8.0.27_linux.run和cudnn-8.0-linux-x64-v5.1.tgz

    这里我提供了百度网盘,这两个文件我先在win10下下载好,并用u盘拷贝到ubuntu的下载目录下
    [cuda_8.0.27_linux.run]   [cudnn-8.0-linux-x64-v5.1.tgz] 下载目录下

  2. 安装cuda8.0

    终端输入
    cd 下载/
    sh cuda_8.0.27_linux.run --override
    启动安装程序,一直按空格到最后,输入accept接受条款
    输入n不安装nvidia图像驱动,之前已经安装过了
    输入y安装cuda 8.0工具
    回车确认cuda默认安装路径:/usr/local/cuda-8.0
    输入y用sudo权限运行安装,输入密码
    输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
    输入y安装CUDA 8.0 Samples,以便后面测试
    回车确认CUDA 8.0 Samples默认安装路径:/home/pawn(pawn是我的用户名),该安装路径测试完可以删除
    安装完显示如下图
    这里写图片描述
     

  3. 安装cudnn v5.1        .配置cuDNN
    cuDNN是GPU加速计算深层神经网络的库。
    首先去官网 https://developer.nvidia.com/rdp/cudnn-download 下载cuDNN,需要注册一个账号才能下载。下载版本号如下图:

    下载cuDNN5.1之后进行解压:

  4. 终端输入
    cd 下载/
    tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
    解压在下载目录下产生一个cuda目录
    cd cuda/include/
    sudo cp cudnn.h /usr/local/cuda/include/ 复制头文件
    cd ../lib64 打开lib64目录
    sudo cp lib* /usr/local/cuda/lib64/ 复制库文件
    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*给所有用户增加这些文件的读权限
     

  5. 建立软链接

    终端输入
    cd
    sudo rm -rf libcudnn.so libcudnn.so.5
    sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
    sudo ln -s libcudnn.so.5 libcudnn.so
    设置环境变量,终端输入
    sudo gedit /etc/profile
    在末尾加入
    PATH=/usr/local/cuda/bin:$PATH
    export PATH
    保存后,创建链接文件
    sudo vim /etc/ld.so.conf.d/cuda.conf
    按a进入插入模式,增加下面一行
    /usr/local/cuda/lib64
    按esc退出插入模式,按:wq保存退出
    最后在终端输入sudo ldconfig使链接生效
     

  6. cuda Samples测试

    打开CUDA 8.0 Samples默认安装路径,终端输入
    cd /home/pawn/NVIDIA_CUDA-8.0_Samples (pawn是我的用户名)
    sudo make all -j4 (4核)
    出现“unsupported GNU version! gcc versions later than 5.3 are not supported!”的错误,这是由于GCC版本过高,在终端输入
    cd /usr/local/cuda-8.0/include
    sudo cp host_config.h host_config.h.bak
    sudo gedit host_config.h
    ctrl+f寻找有“5.3”的地方,只有一处,如下
    # if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
    #error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
    将两个5改成6,即
    #if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)
    保存退出,继续在终端输入
    cd /home/pawn/NVIDIA_CUDA-8.0_Samples (pawn是我的用户名)
    sudo make all -j4 (4核)
    完成后继续向终端输入
    cd bin/x86_64/linux/release
    ./deviceQuery
    完成之后出现如下图所示,表示成功安装cuda
    这里写图片描述



三、依赖包安装

  1. sudo apt-get install build-essential #必要的编译工具依赖

  2. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

  3. sudo apt-get install --no-install-recommends libboost-all-dev

  4. sudo apt-get install libatlas-base-dev

  5. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev


三、依赖包安装

 

软件环境

ubuntu 16.04
NVIDIA driver 378
CUDA8.0
cudnn 5.1

编译环境准备

安装编译Caffe所需的依赖库

#!/bin/bash
sudo apt-get install cmake cmake-gui
sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
sudo apt-get install libboost-all-dev   // 安装boost库
#sudo apt-get install libatlas-base-dev  //BLAS如使用OpenBLAS,可不安装
sudo apt-get install libopenblas-dev    //BLAS如使用atlas,可不安装
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-numpy  // 安装numpy
#sudo apt-get install doxygen // doxygen用于文档生成 可不安装

编译caffe

以下是编译caffe的脚本(解压,生成Makefile,编译,安装全过程)
build_caffe.sh

#!/bin/bash
caffe_folder=caffe-master
if [ -d $caffe_folder ]
then 
    rm -fr $caffe_folder
fi
# 从 https://github.com/BVLC/caffe 下载Caffe源码 保存为 caffe-master.zip 然后解压缩
wget https://github.com/BVLC/caffe/archive/master.zip -O $caffe_folder.zip
unzip $caffe_folder.zip 
pushd $caffe_folder
# 创建编译输出文件夹
mkdir build && cd build
# 执行cmake生成Makefile
#编译CPU版本
#cmake -DCPU_ONLY=ON -DBLAS=Open ..
#编译GPU版本
cmake -DBLAS=Open -DCUDA_NVCC_FLAGS=--Wno-deprecated-gpu-targets .. 
# 开始编译并安装到build/install文件夹下 并发8线程
make install -j 8
cd ..
popd

消除NVCC警告

在这里 -DCUDA_NVCC_FLAGS=--Wno-deprecated-gpu-targets用于指定CUDA编译器(nvcc)的编译选项,如果不指定--Wno-deprecated-gpu-targets选项则在编译Caffe时会产生如下编译警告

nvcc warning : The ‘compute_20’, ‘sm_20’, and ‘sm_21’ architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

当然也可以在cmake-gui中,如下图搜索NVCC,在CUDA_NVCC_FLAGS中添加--Wno-deprecated-gpu-targets
这里写图片描述

执行cmake -DBLAS=Open -DCUDA_NVCC_FLAGS=--Wno-deprecated-gpu-targets ..输出如下

-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   thread
--   filesystem
--   chrono
--   date_time
--   atomic
-- Found gflags  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so)
-- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
-- Found PROTOBUF Compiler: /usr/bin/protoc
-- Found lmdb    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so)
-- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so)
-- Found Snappy  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libsnappy.so)
-- CUDA detected: 8.0
-- Found cuDNN: ver. 5.1.10 found (include: /usr/local/cuda-8.0/include, library: /usr/local/cuda-8.0/lib64/libcudnn.so)
-- Automatic GPU detection failed. Building for all known architectures.
-- Added CUDA NVCC flags for: sm_20 sm_21 sm_30 sm_35 sm_50
-- OpenCV found (/usr/share/OpenCV)
-- Found OpenBLAS libraries: /usr/lib/libopenblas.so
-- Found OpenBLAS include: /usr/include
-- NumPy ver. 1.11.0 found (include: /usr/lib/python2.7/dist-packages/numpy/core/include)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   python
-- Detected Doxygen OUTPUT_DIRECTORY: ./doxygen/
-- 
-- ******************* Caffe Configuration Summary *******************
-- General:
--   Version           :   1.0.0-rc3
--   Git               :   unknown
--   System            :   Linux
--   C++ compiler      :   /usr/bin/c++
--   Release CXX flags :   -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Debug CXX flags   :   -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Build type        :   Release
-- 
--   BUILD_SHARED_LIBS :   ON
--   BUILD_python      :   ON
--   BUILD_matlab      :   OFF
--   BUILD_docs        :   ON
--   CPU_ONLY          :   OFF
--   USE_OPENCV        :   ON
--   USE_LEVELDB       :   ON
--   USE_LMDB          :   ON
--   ALLOW_LMDB_NOLOCK :   OFF
-- 
-- Dependencies:
--   BLAS              :   Yes (Open)
--   Boost             :   Yes (ver. 1.58)
--   glog              :   Yes
--   gflags            :   Yes
--   protobuf          :   Yes (ver. 2.6.1)
--   lmdb              :   Yes (ver. 0.9.17)
--   LevelDB           :   Yes (ver. 1.18)
--   Snappy            :   Yes (ver. 1.1.3)
--   OpenCV            :   Yes (ver. 2.4.9.1)
--   CUDA              :   Yes (ver. 8.0)
-- 
-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_20 sm_21 sm_30 sm_35 sm_50
--   cuDNN             :   Yes (ver. 5.1.10)
-- 
-- Python:
--   Interpreter       :   /usr/bin/python2.7 (ver. 2.7.12)
--   Libraries         :   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--   NumPy             :   /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
-- 
-- Documentaion:
--   Doxygen           :   /usr/bin/doxygen (1.8.11)
--   config_file       :   /home/guyadong/caffe/caffe-master/.Doxyfile
-- 
-- Install:
--   Install path      :   /home/guyadong/caffe/caffe-master/build/install
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/guyadong/caffe/caffe-master/build

 

 

 

——————————————————--

  1. 安装python的pip和easy_install,方便安装软件包

    终端输入
    cd
    wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
    sudo python ez_setup.py --insecure
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.py



  1. 安装科学计算和python所需的部分库

    终端输入
    sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy



  1. 安装git,拉取源码

    终端输入
    sudo apt-get install git
    git clone https://github.com/BVLC/caffe.git



  1. 安装python依赖

    终端输入
    sudo apt-get install python-pip 安装pip
    sudo su
    for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done
    按Ctrl+D退出sudo su模式



八、编译caffe(暂不对matlab说明)

  1. 终端输入
    cd /home/pawn/caffe
    cp Makefile.config.example Makefile.config
    gedit Makefile.config

    ①将USE_CUDNN := 1取消注释,

    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格 然后添加/usr/include/hdf5/serial如果没有这一句可能会报一个找不到hdf5.h的错误

  2. 终端输入
    make all -j4
    make过程中出现找不到lhdf5_hl和lhdf5的错误,
    解决方案:
    在计算机中搜索libhdf5_serial.so.10.1.0,找到后右键点击打开项目位置
    该目录下空白处右键点击在终端打开,打开新终端输入
    sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
    sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
    最后在终端输入sudo ldconfig使链接生效
    原终端中输入make clean清除第一次编译结果
    再次输入make all -j4重新编译

  3. 终端输入
    make test -j4
    make runtest -j4
    make pycaffe -j4
    make distribute 生成发布安装包

  4. 测试python,终端输入
    cd /home/pawn/caffe/python
    python
    import caffe
    如果不报错就说明编译成功



九、mnist测试

  1. 下载mnist数据集,终端输入
    cd /home/pawn/caffe/data/mnist/
    ./get_mnist.sh 获取mnist数据集
    /home/pawn/caffe/data/mnist/目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件

  2. mnist数据格式转换,终端输入
    cd /home/pawn/caffe/
    ./examples/mnist/create_mnist.sh
    必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh
    此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集

  3. LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt

  4. Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt

  5. 训练mnist,执行文件在/caffe/examples/mnist/train_lenet.sh
    终端输入
    cd /home/pawn/caffe/
    ./examples/mnist/train_lenet.sh
    测试结果如下
    这里写图片描述

说明

1 主要为步骤1239。

2 python接口

3opencv应该还没配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值