Caffe的优势:

1.上手快:模型与相应优化均以文本形式而非代码形式给出,caffe给出了模型的定义,最优化设置以及预训练的权重

2.速度快:与CuDNN结合使用,测试AlexNet模型,在K40上处理每张图只需1.17ms

3.模块化:方便扩展到新任务,设置上可以使用caffe提供的各层类型来定义自己的模型

4.开发性:公开的代码与参考模型用于再现

5.社区好:可以通过BSD-2参于开发与讨论。

安装Caffe注意:

双显卡不适合安装caffe,因为通常集成显卡不能切断,而桌面的图像必须有集成显卡控制,导致NVIDIA显卡驱动安装后桌面黑屏;

不同显卡驱动对应不同的CUDA,例如:GTM550-CUDA6.5.14;K5000-CUDA7.0.28;

如果出现不存在该文件或找不到文件的情况,很可能是因为终端定位的目录错误,可以借助[Tab]键;

安装完Ubuntu后关闭自动更新,若其自动更新了显卡驱动,可能会与caffe不兼容;

安装过程,因为平台不同,设备不同,操作者不同,会遇到各种奇怪的问题与报错信息;

14.04.5内核版本过高,gcc编译不通过,14.04.4及其以下可以正常编译,否则安装显卡驱动时会:

The driver installation is unable to locate the kernel source. Please make sure that the kernel source packages are installed and set up correctly.
If you know that the kernel source packages are installed and set up correctly, you may pass the location of the kernel source with the '--kernel-source-path' flag.

M2000以及M4000\6000等新型显卡cuda7.5无法检测,导致系统找不到cuda设备,需要安装cuda8.0,安装过程与7.5相同。

1、安装Ubuntu-16.04.1-desktop-amd64

2、下载NVIDIA-Linux-x86_64-375.66.run

   下载cuda_8.0.61_375.26_linux.run

   下载cudnn-8.0-linux-x64-v5.1.tgz

      下载caffe-master

3、检查自己的GPU是否是CUDA-capable

xtu@xtu-Precision-Tower-:~$ lspci | grep -i nvidia
:00.0 VGA compatible controller: NVIDIA Corporation Device 1b00 (rev a1)
:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)

会显示NVIDIA GPU版本信息,具体信息可以查询一下官网或者百度一下cuda支持的显卡列表。

4、安装基本依赖库

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

5、检查自己的系统中是否装了GCC,为避免与编译器版本不兼容问题,保证GCC/G++版本5.0以上

xtu@xtu-Precision-Tower-:~$ gcc -v %gcc --version
Thread model: posix
gcc version  (Ubuntu -6ubuntu1~) 

没有的话可以通过 sudo apt-get install gcc安装。 或者gcc/g++版本低于5.0,升级到5.0以上

下载安装gcc/g++-5

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-
sudo apt-

改变系统默认的gcc/g++编译器版本,换成gcc/g++-5

sudo su
cd ../../usr/bin
ln -s /usr/bin/g++- /usr/bin/g++ -f
ln -s /usr/bin/gcc- /usr/bin/gcc -f 

这样,gcc就默认成gcc-5,g++也默认成g++-5了

6、检查是否安装了kernel header和 package development

xtu@xtu-Precision-Tower-7910:~$ uname -r
4.4.0-81-generic

更新系统kernel:

$ sudo apt-get install linux-headers-‘uname -r‘ (uname -r 是系统kernel全名)

安装头文件及编译环境:

sudo apt-get install linux-headers-$(uname -r) build-essential %sudo apt-get install linux-headers-$(uname -r)

查看kenerl-source-path:

ysp@ysp-Precision-Tower-7910:~$ uname -r
4.4.0-83-generic
ysp@ysp-Precision-Tower-7910:~$ cd /usr/src
ysp@ysp-Precision-Tower-7910:/usr/src$ ls
linux-headers-4.4.0-31          linux-headers-4.4.0-83
linux-headers-4.4.0-31-generic  linux-headers-4.4.0-83-generic

7、禁用nouveau

ubuntu自带的nouveau驱动会影响cuda安装,不当操作会导致黑屏和登陆循环。 终端运行:

xtu@xtu-Precision-Tower-:~$ lsmod | grep nouveau
nouveau
mxm_wmi                   nouveau
video                     nouveau
ttm                       nouveau
drm_kms_helper           nouveau
drm                      ttm,drm_kms_helper,nouveau
wmi                       mxm_wmi,nouveau
i2c_algo_bit              igb,nouveau

如果有输出则代表nouveau正在加载。则需要禁用nouveau,在/etc/modprobe.d中创建文件blacklist-nouveau.conf,再用getid打开

xtu@xtu-Precision-Tower-:~$ cd /etc/modprobe.d
xtu@xtu-Precision-Tower-:/etc/modprobe.d$ sudo touch blacklist-nouveau.conf
[sudo] password for xtu:
xtu@xtu-Precision-Tower-:/etc/modprobe.d$ sudo gedit blacklist-nouveau.conf
在文件中输入以下内容并保存:
blacklist nouveau
options nouveau modeset= 

之后更新

sudo update-initramfs -u

这种方式也可能不能彻底禁用nouveau,在此基础上可以移除以下文件:nouveau.ko;nouveau.ko.org,此文件一般是隐藏的具体操作

cd /lib/modules/4.4.0-83-generic/kernel/drivers/gpu/drm/nouveau sudo rm -rf nouveau.ko sudo rm -rf nouveau.ko.org

再更新

sudo update-initramfs –u

此时重启,再用终端检测一下

lsmod | grep nouveau

没有输出即为禁用成功。

8、驱动安装(Nvidia的显卡+Intel的集显 - 循环登录问题)

1) 卸载掉原有驱动

sudo apt-get remove --purge nvidia-*

2) Ctrl+alt+F1进入字符界面,关闭图形界面

sudo service lightdm stop

此时可能关不了,即使现实该操作OK,但是一会再开启时会有问题,可以在此基础上增加操作,手动删除X图像界面,图像界面X/tmp路径下,具体操作:

cd /tmp
sudo rm -rf .X*

这样就可以把关于X的图像界面文件全部删除(每次重启都会再次生成,所以会在alt+ctrl+f1界面下操作)

3) 安装nvidia driver

sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run //获取权限
sudo ./NVIDIA-Linux-x86_64-375.66.run –no-x-check –no-nouveau-check –no-opengl-files //安装驱动
  • –no-x-check 安装驱动时关闭X服务
  • –no-nouveau-check 安装驱动时禁用nouveau
  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件

Accept->Continue installation->sign the kernel module(为内核模块签名)?选择是->使用已有的密钥给模块签名还是重新生成?选重新生成密钥->是否删除已生成的密钥文件?选择否->安装完成

问题:The target kernel has CONFIG_MODULE_SIG set,which means that it supports cryptographic signatures on kernel module. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key.This system also UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?

解决:禁用UEFI安全启动功能

启动电脑,然后按电脑的设置访问UEFI,本机器按[F2]键,不同的制造商可能有不同的设置,具体请参考主板说明书。

根据不同的UEFI版本,安全启动选项通常在一个选项卡下,这个选项卡可能被命名为“Boot”、“Security”或者“Authentication”,在类似的选项卡中查找,我们会发现一个“Secure Boot”选项,该选项默认设置为“Enabled”,选中它并回车,将其设置为“Disabled”,按[Apply]键存储设置,重新启动电脑即可安装我们需要的操作系统。

9安装Cuda8.0

1) 继续Ctrl+alt+F1进入的字符界面

2) cd.run 文件所处的路径下,安装nvidia driver

sudo chmod +x cuda_8..61_375.26_linux.run
sudo sh cuda_8..61_375.26_linux.run --tmpdir=/tmp

按照步骤安装,第一个就是问你是否安装显卡驱动,由于前一步已经安装了显卡驱动,所以这里就不需要了,况且 runfile 自带的驱动版本不是最新的。

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/zhou ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/zhou …
Copying samples to /home/zhou/NVIDIA_CUDA-.0_Samples now…
Finished copying samples.

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/xtu, but missing recommended libraries

Please make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_18572.log

最后你会看到cuda驱动、sampletookit已经安装成功,但是缺少一些库。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

10安装Cudnn5.1

1) 继续Ctrl+alt+F1进入的字符界面

2) 进入解压后的cudnn-8.0-linux-x64-v5.1.tgz文件cuda,在终端执行下面的指令安装:

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgzcd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/ 

然后更新网络连接:

cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.  # 自己查看.so的版本
sudo ln -sf libcudnn.so. libcudnn.so.
sudo ln -sf libcudnn.so. libcudnn.so
sudo ldconfig  

重新启动图形化界面

sudo service lightdm start

Ctrl+alt+F7退出Text Mode。

11、添加环境变量

编辑计算机文件夹下的/etc/profile,加入CUDA环境变量,保存

sudo gedit /etc/profile
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存后执行下面的命令,使其生效:

source /etc/profile  

同时,进入/etc/ld.so.conf.d/文件夹,执行下面的命令,新建一个名为cuda.conf的文件,然后在文件中写入内容:

cd /etc/ld.so.conf.d/
sudo gedit cuda.conf
/usr/local/cuda/lib64   

保存后执行下面的命令,使其生效

sudo ldconfig 

12、检验驱动是否安装成功

a)重启电脑检查环境变量配置

env

b)检查 NVIDIA Driver是否安装成功

nvidia-smi

c)检查 CUDA Toolkit是否安装成功

nvcc -V //会输出CUDA的版本信息

d)测试cuda的samples

1.编译cuda提供的例子,build samples

cd ~/NVIDIA_CUDA-.0_Samples % cd /home/xtu/NVIDIA_CUDA-.0_Samplessudo make all -j8

2.运行编译生成的二进制文件,编译后的二进制文件默认存放在~/NVIDIA_CUDA-8.0_Samples/bin中,进入samples/bin/x86_64/linux/release目录下,在终端执行查询命令:

cd ~/NVIDIA_CUDA-.0_Samples/bin/x86_64/linux/release/
./deviceQuery

如果返回了你电脑显卡的信息,且结尾有Result=PASS,则表示安装成功,否则,建议重启电脑之后再次尝试查询命令

3.在samples/bin/x86_64/linux/release目录下,再检查系统和CUDA-Capabledevice的连接情况

./bandwidthTest

13安装Atlas

sudo apt-get install libatlas-base-dev

14安装OpenCv

下载Opencv安装包,解压后进入目录Install-OpenCv/Ubuntu/2.4,然后执行安装文件

cd ~/Install-OpenCv/Ubuntu/2.4/
sh sudo ./opencv2_4_10.sh

15配置Python环境

解压caffe-master,打开Makefile文件,修改下面的两个地方

INCLUDE_DIRS += $(BUILD_INCLUDE_DIR) ./src ./include
改成:
INCLUDE_DIRS += $(BUILD_INCLUDE_DIR) ./src ./include /usr/include/hdf5/serial 
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改成:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial 

保存之后,进入caffe-master/python文件,在终端执行下面的命令

cd ~/caffe-master/python
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install -r ./requirements.txt

16编译Caffe

进入caffe-master文件夹,复制配置文件,留一个备份

cp Makefile.config.example Makefile.config

然后打开Makefile.config文件,修改配置,把注释去掉,修改数字

USE_CUDNN :=
USE_OPENCV :=
USE_LMDB :=
CUSTOM_CXX := g++
WITH_PYTHON_LAYER := 

再进行编译

make all -j8
make test -j8
make runtest -j8
make pycaffe -j8 

如果没有报错,那基本上就安装成功。

问题:Error: /home/xtu/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/xtu/caffe/python/caffe/_caffe.so)

解决:这是因为编译库的编译器和编译当前程序的编译器版本不一致,具体因为是当前程序的编译器的版本比较低,只要升级即可。

先查看当前GCC版本

strings /home/xtu/anaconda2/bin/../lib/libstdc++.so.6 | grep GLIBCXX

确实没有GLIBCXX_3.4.21,需要找编译库的编译器版本

find / -iname libstdc++.so.6.0.2* //找到最新版本存在的文件夹
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 | grep GLIBCXX //查看该文件夹存不存在

存在,则将该版本拷到之前的目录下

cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/xtu/anaconda2/bin/../lib/

再到之前的目录,删除原来的libstdc++.so.6,并建立软连接

cd /home/xtu/anaconda2/bin/../lib/
rm -rf libstdc++.so.6  //删除原来的
ln -s libstdc++.so.6.0.21 libstdc++.so.6  //建立软链接

再次查看已存在

strings /home/xtu/anaconda2/bin/../lib/libstdc++.so.6 | grep GLIBCXX

Ubuntu16.04.1安装Caffe(GPU)的更多相关文章

  1. 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)

    一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...

  2. ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】

    本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...

  3. Ubuntu16.04下安装Tensorflow GPU版本(图文详解)

    不多说,直接上干货! 推荐 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详 ...

  4. ubuntu16.04和服务器 caffe 安装

    在centos6.X上安装caffe 0.编译安装gcc4.8.5 由于centos6.x中的gcc版本老旧,不支持c++11所以要安装gcc4.8.5,以下是安装教程.参考CentOS 6.4 编译 ...

  5. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  6. 配置ubuntu16.04下Theano使用GPU运行程序的环境

    ubuntu16.04默认安装了python2.7和python3.5 .本教程使用python3.5 第一步:将ubuntu16.04默认的python2修改成默认使用python3 . sudo ...

  7. Ubuntu16.04下安装多版本cuda和cudnn

    Ubuntu16.04下安装多版本cuda和cudnn 原文 https://blog.csdn.net/tunhuzhuang1836/article/details/79545625 前言 因为之 ...

  8. Ubuntu16.04上安装cudnn教程和opencv

    https://blog.csdn.net/wang15061955806/article/details/80791112 Ubuntu16.04上安装cudnn教程 2018年06月24日 14: ...

  9. Ubuntu16.04编译安装php

    #Ubuntu16.04编译安装php Ubuntu16.04上面搭建基于Nginx的php服务.Nginx使用apt直接安装的. sudo apt install nginx php的安装部署步骤主 ...

随机推荐

  1. QTableWidgetItem QTreeWidgwtItem 复选框的取消显示方法

    思路: QTableWidgetItem   :item->setData(Qt::CheckStateRole,QVariant()); QTreeWidgwtItem  :item-> ...

  2. 「CQOI2014」数三角形

    题目链接 问题分析 可以先任意选\(3\)个数,然后减去三点共线的部分. 三点共线又分\(2\)种情况: 横的或者竖的.这一部分方案数是\(n\times{m\choose 3}+m\times {n ...

  3. 如何在matalb图像上添加公式符号

    方法: legend({'$\sigma(t)$'},'interpreter','latex') 效果如下:

  4. Android_(服务)Vibrator振动器

    Vibrator振动器是Android给我们提供的用于机身震动的一个服务,例如当收到推送消息的时候我们可以设置震动提醒,也可以运用到游戏当中增强玩家互动性 运行截图: 程序结构 <?xml ve ...

  5. auth 认证组件的补充

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  6. 第11组 Beta冲刺(2/5)

    第11组 Beta冲刺(2/5) 队名 不知道叫什么团队 组长博客 https://www.cnblogs.com/xxylac/p/11997386.html 作业博客 https://edu.cn ...

  7. 通过daemon.json配置docker 2375 API端口,配置私有http仓库

    编辑daemon.json vi /etc/docker/daemon.json 配置如下内容即可 { "hosts":[ "tcp://0.0.0.0:2375&quo ...

  8. leetcode 658找到k个最接近的元素

    class Solution { public: vector<int> findClosestElements(vector<int>& arr, int k, in ...

  9. 10 mysql选错索引

    10 mysql选错索引 在mysql表中可以支持多个索引,有的sql不指定使用哪个索引,由mysql自己来决定,但是有时候mysql选错了索引,导致执行很慢. 例子 CREATE TABLE `t1 ...

  10. VirtualBox-5.2.8-121009-Win.exe虚拟机桥接