ubuntu16.04 + CUDA8.0 + cudnn6.0 + anaconda3 + opencv3 + caffe

禁用nouveau:

sudo gedit /etc/modprobe.d/blacklist.conf
  • 1

在最后一行添加:

blacklist nouveau

之后,执行命令:

sudo update-initramfs -u 

电脑重启之后执行

lsmod | grep nouveau  #没有输出,即说明安装成功 


卸载已安装的CUDA

请参考Ubuntu16.04下CUDA和driver的卸载(.run安装)
判断是否需要卸载及如何卸载。

安装CUDA8.0+driver(deb)

使用.deb方式安装不仅快捷方便,也是官方推荐方式,比起.run文件安装会出现各种问题,.deb安装十分流畅。

1.确认具备安装条件

这部分cuda安装官方tutorial中写的非常清晰,如果不确定自己的系统条件是否具备安装条件,请参考#pre-installation actions目录下的#2.1至#2.4部分

2.下载和安装.deb文件

(1) 在如下CUDA Toolkit下载界面,选择右下角的Legacy Releases
官方界面
(2)跳转到所有releases版本界面如下,选择CUDA Toolkit 8.0 GA2[Feb 2017]
all releases
(3)跳转到CUDA8.0 GA2下载界面如下,依次按照自己的系统要求选择,获取我们需要的deb(local)安装文件下载。
deb文件获取
(4)确认deb文件下载没问题,用以下命令求md5值,与[MD5 checksum posted}(http://developer.nvidia.com/cuda-downloads/checksums)中对比,确认一致即表示下载无误。

$ md5sum cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

(5)deb文件安装
依次运行以下命令

$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
$ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda

Tips:
- 第一行命令中cuda-repo-<distro>_<version>_<architecture>.deb就是你下载的deb文件,在这里就是cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb文件;
- 第二行命令中/var/cuda-repo-<version>/7fa2af80.pub中间的cuda-repo-<version>用Tab键补齐就可以
(6)配置环境变量。
方法一:

$ sudo gedit ~/.bashrc
# 在打开的文件中添加两行内容
# 第一行是export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
# 第二行是LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 点击保存后关闭文件
$ source ~/.bashrc

方法二(这个方法有时会失效,所以推荐方法一):

$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ source ~/.bashrc

(7)重启系统

3. 确认已成功安装

3.1确认驱动安装成功

$ cat /proc/driver/nvidia/version

3.2确认CUDA安装成功

$ cuda-install-samples-8.0.sh  ~   #cuda samples安装到根目录下
#执行完改命令后会在根目录下产生一个`NVIDIA_CUDA-8.0_Samples`目录
$ cd NVIDIA_CUDA-8.0_Samples
$ make -j8 #-j8表示8线程用于加速
# 运行完之后如果过程不报错(有warning没关系)
# 则会在目录'NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release'下生成一个`deviceQuery`文件
$ cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/
$ ./deviceQuery

上述命令运行完之后,本机返回信息如下,如果最后一行出现Result = PASS,就是CUDA安装成功。

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 950M"
  CUDA Driver Version / Runtime Version          9.0 / 8.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 2003 MBytes (2100232192 bytes)
  ( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1124 MHz (1.12 GHz)
  Memory Clock rate:                             1001 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 950M
Result = PASS


之后可以用nvidia-sminvidia-settingsnvcc -V查看本机相关信息。

安装cuDNN6.0

1.下载.tgz文件

(1)在cuDNN下载界面,点击’download’。
cudnn下载主界面
(2)在跳转到的下载页面登入自己的账户密码,勾选I Agree To the Terms of the cuDNN Software License Agreement,在显示的多个版本中选择Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0,选择其中的第3项cuDNN v6.0 Library for Linux,会自动下载cudnn-8.0-linux-x64-v6.0.tgz压缩文件
cuDNN下载

2.从.tgz文件安装

cudnn-8.0-linux-x64-v6.0.tgz文件放到根目录下,依次运行以下命令:

$ tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz #解压
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* #改变所有用户权限为只读

Anaconda3的安装

anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。可以帮助python开发者省去很多安装科学包的工作。下面我们就来简单介绍如何在Ubuntu16.04环境下安装Anaconda3。

首先,去Anaconda的下载地址下载对应python版本的Anaconda安装文件。(我这里下载的是python3.6的版本)

这里写图片描述

下载完成后,才命令行进入到Anaconda3-5.0.1-Linux-x86_64.sh文件所在的路径下:

zerozone@zerozone-ubuntu:~/Downloads$ sudo bash Anaconda3-5.0.0-Linux-x86_64.sh 
Welcome to Anaconda3 5.0.0
In order to continue the installation process, please review the license    agreement.
Please, press ENTER to continue
>>>

然后,根据提示按回车继续。
接下来,它会提示你是否接受协议,这里直接输入yes,再按回车即可(不要直接按回车,这样默认是no)

Do you accept the license terms? [yes|no]
[no] >>> yes

接下来会提示你指定安装路径,这里可以使用默认的,也可以自己指定(我这里自己指定到了一个文件夹下面)

Anaconda3 will now be installed into this location:
/home/zerozone/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
- [/home/zerozone/anaconda3] >>> /home/zerozone/Software/anaconda3
然后就是等待安装进程完成,完成后会提示你是否要将Anaconda的安装路径添加到PATH环境变量中,输入yes就好了。
installation finished.
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/hj/.bashrc ? [yes|no]

如果输入no,那么我们就需要自己手动在.bashrc文件中添加export PATH="/opt/anaconda3/bin:$PATH",然后再在命令行中输入source ~/.bashrc

至此,Anaconda就安装好了,在测试Anaconda是否安装成功之前,我们需要先关闭当前的终端,重启开启另一个终端后,才可以进行测试,输入python来查看是否安装成功

$ python
Python 3.6.2 |Anaconda, Inc.| (default, Sep 22 2017, 02:03:08) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

编译安装opencv3.3.0

安装依赖:
  1. sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip  
  2. sudo apt-get install build-essential cmake git  
  3. sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip 
下载opencv并解压,在解压后的文件夹中:
  1. mkdir build   #新建一个build文件夹,编译的工程都在这个文件夹里  
  2. cd build  
  3. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/path/to/anaconda3/bin/python3 -DPYTHON_INCLUDE_DIR=/path/to/anaconda3/include/python3.6m -DPYTHON_LIBRARY=/path/to/anaconda3/lib/libpython3.6m.so -DPYTHON_NUMPY_INCLUDE_DIRS=/path/to/anaconda3/lib/python3.6/site-packages/numpy/core/include .. 
注意把PYTHON_EXECUTABLE,PYTHON_INCLUDE_DIR,PYTHON_LIBRARY,PYTHON_NUMPY_INCLUDE_DIRS中的目录换成自己安装的anaconda的目录。
然后:
  1. make -j4  
  2. #开始编译  
  3. sudo make install  
  4. sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'  
  5. sudo ldconfig 

/sbin/ldconfig.real: /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6不是符号连接‘’

/*******    https://blog.csdn.net/langb2014/article/details/54376716   *******/

然后在终端输入:

  1. sudo ldconfig -v  
找到这一行错误:libcudnn.so.6 -> libcudnn.so.6.0.21

是这个链接错误,然后在终端输入:

  1. sudo ln -sf /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6.0.21 /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6

问题就解决了。。。。。。。。。。。。。

编译完成后,把编译出来的cv2.cpython-36m-x86_64-linux-gnu.so库拷到anaconda的python库包下;其实不用sudo make install,opencv就已经可以用了,python的warpper都有。
cp /home/fier/opencv-3.3.0/build/lib/python3/* /home/fier/anaconda3/lib/python3.6/site-packages/
终端输入python,import一下cv2
fier@fier-CW65S:~$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

编译caffe


安装依赖:
[html] view plain copy
  1. sudo apt-get update   
  2. sudo apt-get install -y build-essential cmake git pkg-config   
  3. sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler   
  4. sudo apt-get install -y libatlas-base-dev   
  5. sudo apt-get install -y libboost-all-dev   
  6. sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev   
  7. sudo apt-get install -y python-pip   
  8. sudo apt-get install -y python-dev   
  9. sudo apt-get install -y python-numpy python-scipy  
下载caffe
[plain] view plain copy
  1. git clone https://github.com/BVLC/caffe.git  //从github上git caffe  
然后
[plain] view plain copy
  1. cd caffe //打开到刚刚git下来的caffe   
  2. sudo cp Makefile.config.example Makefile.config   //将Makefile.config.example的内容复制到Makefile.config   
  3. //因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子   
  4. sudo vim Makefile.config //打开Makefile.config文件  
修改以下内容:
[html] view plain copy
  1. #取消以下注释  
  2. USE_CUDNN :1  
  3. OPENCV_VERSION :3  
  4. WITH_PYTHON_LAYER :1  
  5.   
  6. #将Python有关目录修改为  
  7. PYTHON_LIBRARIES :boost_python3 python3.6m      #这里需要建立boost_python3链接,方法见参考资料  
  8. ANACONDA_HOME := /path/to/anaconda3           #改成自己anaconda的路径  
  9. PYTHON_INCLUDE := $(ANACONDA_HOME)/include \  
  10.                 $(ANACONDA_HOME)/include/python3.6m \  
  11.                 $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include  
  12.   
  13. PYTHON_LIB := $(ANACONDA_HOME)/lib  
  14.   
  15. LINKFLAGS := -Wl,-rpath,$(ANACONDA_HOME)/lib  
  16.   
  17. #最后修改INCLUDE_DIRS,LIBRARY_DIRS  
  18. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial  
  19. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial  



[plain] view plain copy
  1. 然后修改makefile文件  
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)


然后再大概181行的地方做修改
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui

编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

之后
[plain] view plain copy
  1. make all -j4  
  2. make test -j4  
  3. make runtest  
  4. make pycaffe 

python3编译caffe错误:cannot find -lboost_python3

https://blog.csdn.net/songyu0120/article/details/77895373

针对Python3编译caffe时make all的时候出现了如下错误

cannot find -lboost_python3
  • 1

首先去/usr/lib/x86_64-linux-gnu目录下查看是否有python3版本的libboost,如果有类似libboost_python35.so但是没有libboost_python3.so则需要手动建立连接。 查看连接:   ls -l
方法为:

sudo ln -s libboost_python-py35.so libboost_python3.so 

m//home/fier/anaconda3/lib/libpng16.so.16:对‘inflateValidate@ZLIB_1.2.9’未定义的引用
sudo ln -s /home/yali/anaconda2/lib/libpng16.so.16 libpng16.so.16 (方法不行)
正确解决方法:
在 Makefile.config 中,加入下一句

LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda/lib


错误 No module named 'caffe':

sudo gedit ~/.bashrc

export PYTHONPATH=/opt/modules/caffe/python:$PYTHONPATH
source ~/.bashrc

ImportError: No module named caffe
解决方法1:
首先新建一个py文件,命名为_init_paths.py 里面写入如下代码:

import os.path as osp
import sys

def add_path(path):
    if path not in sys.path:
        sys.path.insert(0, path)

this_dir = osp.dirname(__file__)

#Add caffe to PYTHONPATH
caffe_path = osp.join(this_dir, '..', 'caffe', 'python')  #注意路径:this_dir表示当前路径,‘..’返回上一层的caffe所在的路径,根据自己的caffe所在路径修改
add_path(caffe_path)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

每次使用caffe的时候在 import caffe 前面加上 import _init_paths 即可:

import _init_paths # _init_paths.py 和当前命令放在同一路径下
import caffe
  • 1
  • 2

解决方法2:

caffe_root = '/home/mmt/Desktop/caffe/)'  
import sys
sys.path.append("/home/mmt/Desktop/caffe/python")
sys.path.append("/home/mmt/Desktop/caffe/python/caffe")
import caffe

ImportError: No module named google

sudo chmod 777 -R anaconda3/

conda install protobuf


参考资料

Ubuntu16.04+cuda8.0+opencv3.1+caffe+anaconda安装,双显卡
Ubuntu16.04+cuda8.0+caffe安装教程
注意:安装cuda时,不要修改/etc/profile,所有的环境变量均写在~/.bashrc里,修改前者容易出现系统错误。

libEGL.so.1 不是符号连接


运行cuda sample出现找不到GL*.h的情况,安装opengl可以解决

ubuntu 16.04 上opengl 的安装以及例子程序编译执行

有关opencv安装的问题

【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案
opencv/opencv_3rdparty
ubuntu16.04安装opencv3.1.0问题

Install OpenCV for python3


Ubuntu下编译caffe
error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

出现boost_python相关问题时参考,建立libboost_python3.so时,在/usr/lib/x86_64-linux-gnu目录下即可:
在 python3.5 下使用 Caffe Using Caffe with Python3.5

出现undefined reference to `inflateValidate@ZLIB_1.2.9'时参考:
Caffe 编译错误记录

出现Warning! ***HDF5 library version mismatched error***可以参考
在Matlab中使用Caffe出现HDF5 library version mismatched error的解决办法
https://support.hdfgroup.org/ftp/HDF5/releases/找到适合的HDF5版本下载安装。
建议下载安装错误提示中header的版本,并且安装到提示中General Information 下 Installation point 的位置。


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值