• Ubuntu16.04安装Caffe


    一、安装ccmake

    ccmake和cmake的功能是一样的,但它很方便设置编译前的一些参数,安装只需从官网下载压缩包,解压,最后将解压得到的文件夹中的bin文件夹的路径加入PATH环境变量中即可。

    二、安装opencv

    我用的是opencv3.2.0,注意不要勾选CUDA(安装CUDA之前编译opencv不用考虑这点),这样会使opencv编译得很慢。

    三、安装CUDA、cuDNN、NCCL

    安装CUDA

    去nvidia下载CUDA8.0

    参考  方案一  方案二  方案三 ,我提供如下两种安装方法:

    (1)直接使用CUDA的.run文件进行安装

    1)卸载掉原有的nvidia驱动

    如果之前使用的是sudo apt-get install nvidia*方式安装的,执行

    sudo apt-get remove --purge nvidia*

    如果之前是使用.run文件安装的则使用sudo nvidia-uninstall命令。由于我使用.run文件安装,所以即使之前使用.run文件安装过nvidia的驱动,在安装过程中也会卸载掉之前的驱动,因此可以不去手动卸载。

    2)cd CUDA安装文件的下载目录,赋予run文件执行权限(根据自己的文件名替换)

    sudo chmod a+x cuda_8.0.61_375.26_linux.run

    3)禁用nouveau

    在文件/etc/modprobe.d/blacklist.conf最后一行添加blacklist nouveau(可以sudo gedit /etc/modprobe.d/blacklist.conf,将blacklist nouveau粘贴至最后一行保存)

    4)执行

    sudo update-initramfs -u

    5)重启,然后执行

    lsmod | grep nouveau

    若没有输出,说明nouveau成功被禁用(一定要确保nouveau被禁用才能安装驱动,不然会出错)

    6)禁用X服务

    sudo service lightdm stop

    执行此命令后桌面会变成黑屏。

    7)按Ctrl+Alt+F1,进入命令行界面,登录,再次进入CUDA安装文件的下载目录,先执行

    sudo ./cuda_8.0.61_375.26_linux.run --help

    查看有没有opengl的相关选项,有一个相关选项给出的说明如下

    我根据说明选择了--no-opengl-libs,以防止出现循环登录桌面的问题

    sudo ./cuda_8.0.61_375.26_linux.run --no-opengl-libs

    安装包里有CUDA Toolkit,Samples,NVIDIA driver三项。安装选项全都输入“y”确认安装或按照默认路径安装(caffe的配置文件用的即是默认路径)。

    8)reboot重启,或者运行

    sudo service lightdm start

    即可进入桌面,运行nvidia-smi,得到类似下图,说明驱动安装成功。

    (2)第二种方法可以事先将cuda_8.0.61_375.26_linux.run解压成CUDA Toolkit,Samples,NVIDIA driver三部分,得到三个文件

    cuda-linux64-rel-8.0.61-21551265.run
    cuda-samples-linux-8.0.61-21551265.run
    NVIDIA-Linux-x86_64-375.26.run

    解压的方式为

    chmod +x cuda_8.0.61_375.26_linux.run
    mkdir nvidia_installers
    ./cuda_8.0.61_375.26_linux.run -extract=`pwd`/nvidia_installers

    解压了之后驱动可以单独安装,因为有些时候会出现驱动崩溃的情况(网上有不少人遇到过,我也遇到过)。装好驱动之后升级内核要谨慎,我曾经无意升级了内核,发现驱动丢失,重新安装则出现Unable to load the kernel module 'nvidia.ko'的错误,折腾了好久才发现是升级内核所致。然后参照这张帖子修改开机时进入老版本的内核才成功安装驱动(方案三使用dkms安装驱动似乎能在升级内核时自动将驱动编译进内核,避免驱动丢失,这个没有尝试过)。当然,其他原因也会导致驱动丢失,这时只需按照上述方法再安装一次驱动即可。如果按照上述方法安装好驱动后始终无法进入桌面,可以参考这个方法恢复nouveau驱动,装个CPU版本的caffe玩玩,不用重装系统再折腾了,来日方长嘛。。。

    装好CUDA后,需要将相关的路径加入到系统变量中(以下是按默认路径安装后的操作)。

    在文件~/.bashrc的最后加入相关的路径

    gedit ~/.bashrc
    export PATH=/usr/local/cuda-8.0/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

    综上可见,装好系统后,第一步应安装CUDA,以免装好其他软件之后再装驱动,无法进入桌面就唧唧了。。。

    接下来安装cuDNN

    nvidia官网下载一个与CUDA版本相对应的cuDNN

    这是官网给的安装步骤

    下载cuDNN需要在官网注册,可以自己注册一下,很快搞定。

    另外,如果需要支持多张GPU的话,还需要安装NCCL

    如果是按照默认路径安装CUDA的话,只需

    git clone https://github.com/NVIDIA/nccl.git
    cd nccl
    sudo make install -j4

    NCCL的库文件和头文件将安装在/usr/local/lib和/usr/local/include中。若不是按照默认路径安装CUDA,可按照官网给的安装步骤(需指定一下CUDA的安装位置)安装。

    四、安装Anaconda

    去官网https://www.anaconda.com/download/下载

    我采用cmake编译(方便查看源码),若要使用caffe的python接口需要很多python的依赖库,Anaconda集成了很多的python库,能够满足编译caffe的python接口的需求。若自己安装依赖库也可,但是比较麻烦。直接运行Anaconda2-4.4.0-Linux-x86_64.sh,选择安装路径,然后安装,装好后将anaconda_install_path/bin加入到PATH环境变量中.

    最后安装一些常用的包,其中的protobuf是使用caffe的python接口必需要使用的,scikit-image程序中经常用到的.打开终端,依次安装

    1 conda install protobuf
    2 conda install scikit-image

    五、安装第三方的一些依赖库

    参考官网http://caffe.berkeleyvision.org/install_apt.html

    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 libboost-python-dev

    caffe依赖的BLAS本文使用ATLAS

    1 sudo apt-get install libatlas-base-dev

    还有

    1 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

    六、编译caffe

    从https://github.com/BVLC/caffe/下载caffe源代码,进入解压目录,然后在此打开终端

    1 mkdir build
    2 cd build
    3 ccmake ..
    4 make
    5 make install
    6 make runtest

    在ccmake之后出现的界面中需要选择编译的配置参数,如是否使用CUDA,即GPU加速,是否使用cuDNN加速,还要指定opencv的安装路径,然后按c完成configure,configure成功之后再按g生成Makefile文件。

    最后一步make runtest时遇到问题

    解决方法参考:https://itbilu.com/linux/management/NymXRUieg.html

    解决步骤为

    直接去根目录,然后在搜索框中搜索libstdc++.so.6,找到libstdc++.so.6.0.21的位置,将其复制到上面出问题的目录中,即anaconda_install_path/lib

    删除原来的软连接

    1 rm -rf libstdc++.so.6

    建立新的软连接

    1 ln -s libstdc++.so.6.0.21 libstdc++.so.6

    这样make runtest便可以通过。

    七、设置caffe的python接口

    需要将caffe安装目录下的python文件夹的路径加入PYTHONPATH环境变量中

    gedit ~/.bashrc

    在文件末尾添加一行

    export PYTHONPATH=caffe_install_path/python:$PYTHONPATH

    然后重新打开终端输入python,import caffe,报错

    参考https://stackoverflow.com/questions/37666241/importing-caffe-results-in-importerror-no-module-named-google-protobuf-interna

    在终端中输入anaconda_install_path/bin/pip install protobuf安装protobuf。最后重新import就没有错误了。至此,安装完成。

  • 相关阅读:
    电子书下载:Beginning ASP.NET 2.0 AJAX
    电子书下载:C# 4.0 How To
    电子书下载:Pragmatic Unit Testing in C# with NUnit
    7 个最好的.Net开源CMS系统
    电子书下载:Professional ASP.NET 2.0 Server Control and Component Development
    电子书下载:Beginning ASP.NET 2.0 Databases From Novice to Professional
    电子书下载:Professional .NET 2.0 Generics
    蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算
    蛙蛙推荐:F#实现并行排序算法
    蛙蛙推荐:蛙蛙教你发明一种新语言之二代码生成
  • 原文地址:https://www.cnblogs.com/pursuiting/p/7439970.html
Copyright © 2020-2023  润新知