zoukankan      html  css  js  c++  java
  • 一篇顺手的Ubuntu+caffe配置笔记

    主要参考:

    这三个算是比较新的,综合起来完成HP Z820 上Caffe环境配置

    环境: Ubuntu 14.04 desktop, CUDA 7.5

    Basics

    主要是一部分准备工作
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install build-essential
    sudo apt-get autoremove

     

    安装git
    sudo apt-get install git

    Nvidia Drivers

    说明:
    • 现在的显卡驱动安装,CUDA安装不需要关闭图形界面也可以实现;
    • 也不像很多博客所说的那样,转cuda之前不能更新,否则有可能会崩溃之类的;
    • Nvidia Drivers的安装可以通过ubuntu自带的”软件和更新“里的附加驱动实现;
    • 或者按照所提供网址里面的方法实现驱动安装;
    • 另外一种说法是现在CUDA集成驱动,在关闭图形界面的情况下安装CUDA可以自动把驱动也装好,这个可能通过在线安装,顺带安装依赖项实现,离线安装包可能较小;
    • 推荐352,而不是最新的361.42,最新的不一定最合适
     
    查看显卡型号:
    lspci | grep -i nvidia

    在线安装:

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

    或者官网下载离安装包,安装

    或者按照我所说的使用Ubuntu自带的软件和跟新选择合适的驱动,更简单;
     
    重启系统:
    sudo shutdown -r now

    查看驱动版本:

    cat /proc/driver/nvidia/version

    CUDA

    同样下载离线安装包,这里使用CUDA 7.5版本:
    sudo dpkg -i cuda-repo-ubuntu1404*amd64.deb
    sudo apt-get update
    sudo apt-get install cuda

    添加路径:

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

    检查CUDA版本:

    nvcc -V

    重启系统:

    sudo shutdown -r now

    cuDNN

    最新版本是cuDNN V5,但是经尝试,V5在编译的过程中有问题,推荐cuDNN V4 for Linux
    跳转到cuDNN所在路径,解压安装:
    cd ~/Downloads/
    tar xvf cudnn*.tgz
    cd cuda
    sudo cp */*.h /usr/local/cuda/include/
    sudo cp */libcudnn* /usr/local/cuda/lib64/
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

    这里其实就是复制相关文件到cuda目录,奇怪为啥cuda不集成cuDNN,也有可能已经自带,未做验证;

     
    链接cuDNN库文件,不知是否必须:
    sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4
    sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so

     检查:

    nvidia-smi

    OpenBLAS

     cuDNN和OpenBLAS只安装一个就可以完成caffe的编译工作,可选操作
    mkdir ~/git
    cd ~/git
    git clone https://github.com/xianyi/OpenBLAS.git
    cd OpenBLAS
    make FC=gfortran -j $(($(nproc) + 1))
    sudo make PREFIX=/usr/local install

    添加路径:

    echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

    Common Tools

    • 关于相关python依赖项,可以参照所给出的网址尝试,也可以直接安装Anaconda2一步到位,只是注意添加额外的环境变量:
    • 当然也可以不装Anaconda2直接安装;
    • 跑一下,稍作检查,确保依赖项都在;
    sudo apt-get install -y libfreetype6-dev libpng12-dev
    pip install -U matplotlib ipython[all] jupyter pandas scikit-image

    还有一些caffe的依赖包:

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
    sudo apt-get install --no-install-recommends libboost-all-dev
    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

    OpenCV

    推荐安装,很多时候是需要用到的:
    下载安装包,切换到文件保存的文件夹,安装依赖项:
    sudo sh Ubuntu/dependencies.sh

    进入Ubuntu3.0安装OpenCV 3.0.0:

    sudo sh opencv3_0_0.sh

    如果成功安装应该不会有什么错误提示:

    使用一个有用的命令查看版本:
    pkg-config --modversion opencv

    Caffe

    下载安装包:
    cd ~/git
    git clone https://github.com/BVLC/caffe.git
    cd caffe
    cp Makefile.config.example Makefile.config

    主要是新建了一个git文件夹,下载caffe安装包到git路径里面:

    最后一条命令是复制一个配置文件,源文件留作备份,我们要修改这个配置文件,打开后修改;
    sudo gedit /caffe/Makefile.config
    USE_CUDNN := 1
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
    # 默认启用OpenBLAS
    PYTHON_LIB := /usr/local/lib # pythn库
    MATLAB_DIR := /usr/local/MATLAB/R2014a # Matlab安装路径,用于链接Matlab
    OPENCV_VERSION =3 # OpenCV

    仅仅列出修改部分,如果使用Anaconda配置文件中有相关修改,只需要取消注释就可以了,并修改路径为自己Anaconda安装路径;

     
    编译caffe:
    make all -j16
    make test -j16
    make runtest -j16

    添加“-16”为使用多核进行编译,速度更快;

     
    编译Pythn 和 Matlab用到的caffe
    make pycaffe -j16
    make matcaffe -j16
    测试详见第二个网址末尾: )
     
  • 相关阅读:
    你的行为合理吗?看看社会心理学给我们的启示。
    如何在Firefox方便的抓取网页上的Flash
    Disable anchor tag的javascript代码(兼容IE和Firefox)
    如何更改DotNetNuke(DNN)的默认语言
    The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
    一寸、两寸证件照photoshop批处理动作
    DotNetNuke(DNN)皮肤制作如何居中内容
    忘记DotNetNuke的host密码?如何恢复丢失的DNN密码
    使用DIIOP必须作的DOMINO手动设置
    Domino中Servlet实现RSS中文乱码问题解决
  • 原文地址:https://www.cnblogs.com/zhanglianbo/p/5648261.html
Copyright © 2011-2022 走看看