配置说明:

双硬盘双系统,250G固态硬盘装了win10,4T机械硬盘装了Ubuntu16.04

双显卡:集显加独显(GTX1080

先按照了win10,再装Ubuntu16.04,都是制作了U盘引导盘安装,没什么好说

说明

1、1080装机只能使用DVI接口的显示器,无法使用VGA或者转接头之类的。或者先使用集显连显示器。当然当你把显卡驱动安好之后,是能用VGA接口的,不过在那之前,VGA不识别。
2、1080需要使用自己的显卡驱动,不能使用cuda 自带的驱动。
3、Ubuntu16.04 系统的默认GCC版本为5.4, 而编译caffe最高只支持5.3.
4、OpenCV不能直接安装,因为cuda8是新出的,opencv 无法识别。

一、安装Ubuntu16.04

1、先上官网下载Ubuntu16.04的镜像iso
2、再用UltraISO制作引导盘
3、U盘按照Ubuntu16.04

在这里发现如果显示器接的是独显1080的话,会出现分辨率问题而无法进行安装界面,屏幕显示“输入不支持”。

在这里卡了很久,也谷歌了好久,网上都说需要手动添加显卡选项: nomodeset,使其支持Nvidia系列显卡。

(参考: 安装ubuntu黑屏问题的解决 or How do I set ‘nomodeset’ after I’ve already installed Ubuntu?)

但发现还是没能解决问题。后来是把视频线接到集显输出后,就能正常进入安装界面,在安装完后,我也是手动修改了grub文件,顺便改改分辨率:

[java] view plain copy

  1. sudo vim /etc/default/grub

找到这一行:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet splashnomodeset"

然后顺便改分辨率

# 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 
# 这里分辨率自行设置 
GRUB_GFXMODE=1920×1080

更新GRUB:

[html] view plain copy

  1. sudo update-grub

二、安装nvidia显卡驱动

在这里附上一下关于查看显卡信息的命令

(1)检查你的电脑有哪些显卡

[html] view plain copy

  1. lspci -k | grep -A 2 -i "VGA"

(2)查看哪一个专有驱动是推荐安装的[html] view plain copy

  1. sudo ubuntu-drivers devices

有个recommended 的那个驱动就是推荐的。

也可以上官网查自己显卡型号推荐的驱动(http://www.nvidia.cn/Download/index.aspx?lang=cn)
安装驱动有三种方法:(1)run文件;(2)deb文件;(3)第三方安装

各种尝试后发现第三种方法是最简便安全的。试过第一种,要各种配置,装完后还在图形界面那里无限循环了,反正就各种问题

下面是第三种方法:

[html] view plain copy

  1. sudo add-apt-repository ppa:graphics-drivers

第一次运行出现如下的警告:
Fresh drivers from upstream, currently shipping Nvidia.
## Current StatusWe currently recommend: nvidia−361nvidia-361, Nvidia’s current long lived branch. 
For GeForce 8 and 9 series GPUs use nvidia−340nvidia-340 For GeForce 6 and 7 series GPUs use nvidia−304nvidia-304
## What we’re working on right now:– Normal driver updates– Investigating how to bring this goodness to distro on a cadence.
## WARNINGS:This PPA is currently in testing, you should be experienced with packaging before you dive in here.

Give us a few days to sort out the kinks.Volunteers welcome! See also: https://github.com/mamarley/nvidia-graphics-drivers/http://www.ubuntu.com/download/desktop/contribute
更多信息: https://launchpad.NET/~graphics-drivers/+archive/ubuntu/ppa

按回车继续或者 Ctrl+c 取消添加

回车后继续:

[html] view plain copy

  1. sudo apt-get update
  2. sudo apt-get install nvidia-367
  3. sudo apt-get install mesa-common-dev
  4. sudo apt-get install freeglut3-dev

把上面的显卡驱动型号改成你匹配的型号

之后重启系统让GTX1080显卡驱动生效

测试

终端输入:

[html] view plain copy

  1. nvidia-smi

出现类似上述界面说明安装成功了

三、安装cuda-8.0

在安装 CUDA 之前,google了一下,发现在Ubuntu16.04下安装CUDA7.5问题多多,幸好CUDA8已出,支持GTX1080:

从上图也可以看出,CUDA 也有好几种安装方法,

但不推荐用deb方法,因为deb包里自带了一个旧的显卡驱动,不支持1080,安装完后需要重新安装367版本的显卡驱动。

参考文章【3】是按deb方法安装的,可作参考

下面介绍run方法:

1、官网下载“cuda_8.0.27_linux.run”(建议先在windows下载再拷过去),或者从我给的百度网盘里也有下载;
2、sudo sh cuda_8.0.27_linux.run 

有可能要加 --override 参数:

这个参数会覆盖原来的驱动,如果没出现问题可以不需要这个参数。

[html] view plain copy

  1. 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、添加环境变量

[html] view plain copy

  1. sudo gedit ~/.bashrc
  2. export CUDA_HOME=/usr/local/cuda-8.0
  3. export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
  4. export PATH=/usr/local/cuda-8.0/bin:$PATH

保存退出后使其立刻生效[html] view plain copy

  1. source ~/.bashrc

4、安装例程测试

(1)查看cuda版本

[html] view plain copy

  1. nvcc --version

(2)最后进入cuda自带的例子中看cuda是否已正确配置

[html] view plain copy

  1. cd ~/NVIDIA_CUDA-8.0_Samples/
  2. make -j16

这里可能出现gcc、g++版本过高的问题。

两种方法:

a、直接下载低版本的gcc、g++替换之

ubuntu16.04 默认安装的gcc版本为gcc-5.4,(可用gcc --version查看)有时可能需要低版本的,所以我们先安装gcc-4.8.5

[html] view plain copy

  1. sudo apt-get install -y gcc-4.8 g++-4.8
  2. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
  3. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
  4. cd /usr/bin
  5. sudo cp gcc gcc_backup
  6. sudo cp g++ g++_backup
  7. sudo rm gcc g++
  8. sudo ln -s gcc-4.8 gcc
  9. sudo ln -s g++-4.8 g++

这样再用gcc --version查看就是4.8.5了,如果想切换为系统默认的版本: 
[html] view plain copy

  1. sudo rm gcc g++
  2. sudo ln -s gcc-5 gcc
  3. sudo ln -s g++-5 g++

b、修改源码,使其支持更高版本的gcc和g++

[html] view plain copy

  1. cd /usr/local/cuda/include/ #进入到头文件目录
  2. sudo gedit host_config.h #编辑头文件

Ctrl + F 搜索GNUC,找到一段类似于  “if _GNUC_>5 || (_GNUC_ == 5 &&_GNUC_MINOR_> 3)”
,就是最大支持gcc-5.3,可自己取消该限制。建议改为使其支持gcc-5.4,或者直接把两个5改成6

(3)进入例程

[html] view plain copy

  1. cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release

[html] view plain copy

  1. ./deviceQuery

得到:

./deviceQuery Starting…CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: “GeForce GTX 1080” CUDA Driver Version / Runtime Version 8.0 / 8.0 CUDA Capability Major/Minor version number: 6.1 Total amount of global memory: 8112 MBytes (8506179584 bytes) (20) Multiprocessors, (128) CUDA Cores/MP: 2560 CUDA Cores GPU Max Clock rate: 1835 MHz (1.84 GHz) Memory Clock rate: 5005 Mhz Memory Bus Width: 256-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 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 2 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 = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1080Result = PASS

说明cuda已经安装成功!

四、安装opencv3.0

网上有opencv3,0的安装脚本,非常方便,如果你还提前下载了对应版本的安装包,那就更省时间了

1、提供一个百度云,里面有安装包。百度云盘链接: http://pan.baidu.com/s/1qX1uFHa 密码:wysa

2、在Install-OpenCV-master文件夹中包含安装各个版本opencv脚本

3、切换到目录执行,安装依赖项:

[html] view plain copy

  1. sudo sh Ubuntu/dependencies.sh

4、执行opencv3.0安装脚本

[html] view plain copy

  1. sudo sh Ubuntu/3.0/opencv3_0_0.sh

等待安装完成即可

期间可能会卡在ippcv的下载中,Ctrl + c中断后,可以自行从http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv这里下载,解压到opencv-master —> 3rdparty —> ippicv —> downloads —> Linux-xxxxxxxxxxxxxxxx 下面
再把选项-D WITH_IPP=OFF添加到上面的cmake命令中,重新cmake即可。即

[plain] view plain copy

  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_IPP=OFF ..

提醒一下,这时候要把opencv3_0_0.sh这个文件稍微修改一下啊,比如注释掉mkdir build 等,还可以把后面的make -j4改到make -j16

最后就只需要等待安装完就好,过程要挺久的,慢慢等!

问题1、 cuda8.0新出,opencv3.0.0或者2.4.10不支持。报错:

[html] view plain copy

  1. /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared
  2. typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
  3. ^
  4. /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: ‘NppiGraphcutState’ does not name a type
  5. operator NppiGraphcutState*()
  6. ^
  7. /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: ‘NppiGraphcutState’ does not name a type
  8. NppiGraphcutState* pState;

解决方案:需要修改一处源码:
在OpenCV/opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp中做以下修改

[html] view plain copy

  1. #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
  2. 改为
  3. #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

问题2、opencv可编译成功,但运行时始终遇到问题:

[html] view plain copy

  1. Invalid device function

这是因为编译的opencv计算能力与电脑显卡的实际计算能力不匹配导致的。一般而言直接添加一下2个cmake编译选项即可解决

[html] view plain copy

  1. -D CUDA_ARCH_BIN=6.1 -D CUDA_ARCH_PTX=6.1
  2. #Note:6.1为GTX1080的计算能力,不同显卡需要根据自己的计算能力进行修改
  3. #查询显卡计算能力,可以通过运行cuda samples中的deviceQuery得知。
  4. #(文件夹NVIDIA_CUDA-*_Samples下编译示例, *为版本号)

但如果运气不佳,添加编译选项并不能解决问题。这时候我们需要修改opencv中关于CUDA计算能力这部分的配置文件./cmake/OpenCVDetectCUDA.cmake。

[html] view plain copy

  1. set(CUDA_ARCH_BIN ${__cuda_arch_bin} CACHE STRING "Specify 'real' GPU architectures to build binaries for, BIN(PTX) format is supported")
  2. set(CUDA_ARCH_PTX ${__cuda_arch_ptx} CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for")
  3. 之前添加
  4. set(__cuda_arch_bin "6.1")
  5. set(__cuda_arch_ptx "6.1")

五、安装cudnn

在NVIDIA官网下载cudnn v5.0 for cuda8.0rc:
 cudnn-8.0-linux-x64-v5.0-ga.tgz

还有v3,v4,v5.1版本的,可以都先下下来,之后编译或者以后可能会出现cudnn版本不适应的问题,这时候就要一个版本一个版本的去试了

安装过程很简单,直接解压拷贝就可以了:

[html] view plain copy

  1. tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
  2. sudo cp cuda/include/cudnn.h /usr/local/cuda/include
  3. sudo cp cuda/lib64/*.* /usr/local/cuda/lib64
  4. sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

建立软链接:[html] view plain copy

  1. cd /usr/local/cuda/lib64/
  2. sudo rm -rf libcudnn.so libcudnn.so.5
  3. sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
  4. sudo ln -s libcudnn.so.5 libcudnn.so

以后需要更换cudnn版本的时候就把原来的libcudnn*替换掉,再重新软链接就好(建议把重复的步骤做个脚本就方便了)

最后更新一下链接库就可以:

[html] view plain copy

  1. sudo ldconfig

六、安装matlab14.04a

1.下载

由于该软件为商业软件,仅提供百度云安装学习,并确保不使用做商业目的,下载24小时删除…… 
下载链接 http://pan.baidu.com/s/1hsucG3E  提取密码 nvb6

2.预准备

将part1.rar压缩文件解压,如果无法解压,可以先安装unrar

[plain] view plain copy

  1. sudo apt-get install unrar

将Mathworks.iso - 右键 - 使用磁盘映像挂载器打开”,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹(想要安装的路径)(PS:取名不要有空格)
复制Crack/install.jar至 home/Matlab/Java/jar/ 并覆盖源文件

[plain] view plain copy

  1. sudo cp install.jar /home/Matlab/java/jar/
  2. #给安装路径及其子文件夹赋予执行权限
  3. chmod a+x Matlab -R

3.安装

[plain] view plain copy

  1. #cd 到安装文件夹下
  2. sudo ./install

接着会出现一个类似window的安装窗口,按以下步骤操作

选项:不使用Internet安装 
序列号: 12345-67890-12345-67890 (随意20位数据)
默认路径:/usr/local/MATLAB/R2014a 
建议全选安装
勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序) 
激活文件:Crack/license_405329_R2014a.lic

拷贝 Crack/linux目录下的libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64

[plain] view plain copy

  1. sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/

4.解决编译器gcc/g++版本问题

因为Ubuntu 16.04的gcc/g++版本是5.4,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。

A. 降级安装gcc/g++版本为4.7.x

[plain] view plain copy

  1. sudo apt-get install -y gcc-4.7 g++-4.7
  2. cd /usr/bin
  3. sudo mv gcc gcc-4.9.2  #备份
  4. sudo ln -s gcc-4.7 gcc
  5. sudo mv g++ g++-4.9.2
  6. sudo ln -s g++-4.7 g++

B. 暴力引用新版本GLIBCXX_3.4.21

[plain] view plain copy

  1. sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.21
  2. cd /usr/local/MATLAB/R2014a/sys/os/glnxa64
  3. sudo mv libstdc++.so.6 libstdc++.so.6.backup
  4. sudo ln -s libstdc++.so.6.0.21 libstdc++.so.6
  5. sudo ldconfig -v

通过命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.21,如果已经存在,基本上就成功了。

建议用方法B,试过方法A,4.7版本的gcc在make all 时都会出错,应该前面cuda编译时用的就是5.4的,除非重装系统,把cuda也用4.7编译。

5.建立桌面快捷方式

在/usr/share/applications 中创建Matlab2014.desktop 文档,并输入以下内容
[plain] view plain copy

  1. [Desktop Entry]
  2. Name  =Matlab2014
  3. GenericName = Matlab R2014a
  4. Comment = Matlab R2014a: The Language of the Techinical Computing
  5. Exec = sh /usr/local/MATLAB/R2014a/bin/matlab -desktop
  6. Icon = /usr/local/MATLAB/R2014a/toolbox/nnet/nnresource/icon16/matlab.png
  7. StartupNotify =true
  8. Terminal = false
  9. Type=Application
  10. #添加该命令后,快捷方式会出现在 Applications/Programming/中
  11. <p>Categories = Development;Matlab </p>

七、安装caffe

1、安装基本依赖库

[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 --no-install-recommends libboost-all-dev
  6. sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
  7. sudo apt-get install -y python-pip python-dev python-numpy python-scipy # (Python general)
  8. sudo apt-get install -y libopencv-dev # (OpenCV 2.4)

2、安装科学计算库BLAS(Basic Linear Algebra Subprograms 基本线性代数子程序)

常用的BLAS实现有:Intel MKL、atlas、OpenBLAS等。可以选择其中一种,其中atlas的安装最简单,而MKL最快,本人选择的是MKL。

1)安装atlas

[html] view plain copy

  1. sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran

2)安装MKL

a、下载与安装
首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/qualify-for-free-software/student, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(注意任何一级文件夹不能包含空格,否则安装会失败)

[html] view plain copy

  1. tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)
  2. chmod a+x parallel_studio_xe_2016 -R
  3. sh install_GUI.sh

输入第三条命令后会打开图形安装界面,会有同意协议,输入序列号,选择安装库等,按照流程应该没问题。
PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linux的root口令。(设置方法:命令行:$ sudo passwd)

b、MKL与CUDA的环境设置 
1.新建intel_mkl.conf, 并编辑之:

[html] view plain copy

  1. $ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
  2. /opt/intel/lib/intel64
  3. /opt/intel/mkl/lib/intel64

2.新建cuda.conf,并编辑之:[html] view plain copy

  1. $ sudo gedit /etc/ld.so.conf.d/cuda.conf
  2. /usr/local/cuda/lib64
  3. /lib

3.完成lib文件的链接操作,执行:
[html] view plain copy

  1. $ sudo ldconfig -v

完成!

3、安装python的pip和easy_install,方便安装软件包

[html] view plain copy

  1. cd ~
  2. wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
  3. sudo python ez_setup.py --insecure
  4. wget https://bootstrap.pypa.io/get-pip.py
  5. sudo python get-pip.py

安装Python依赖

[html] view plain copy

  1. cd pyhon #里面有requirements.tx文件
  2. sudo apt-get install python-pip
  3. sudo su
  4. for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done

按Ctrl+D退出sudo su模式

4、 编译

1)下载caffe

去https://github.com/BVLC/caffe下载.zip安装包,放在某路径Caffe_Path下解压。

2)修改Makefile.config配置文件

进入caffe根目录:

[html] view plain copy

  1. cp Makefile.config.example Makefile.config
  2. gedit Makefile.config

设置以下内容:

[plain] view plain copy

  1. USE_CUDNN := 1 #取消该句注释
  2. OPENCV_VERSION := 3 #取消该句注释
  3. PYTHON_INCLUDE := /usr/include/python2.7 \
  4. /usr/lib/python2.7/dist-packages/numpy/core/include
  5. WITH_PYTHON_LAYER := 1 #取消注释
  6. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
  7. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib \
  8. /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

保存退出。

3)编译caffe

继续在Caffe-master文件夹目录下:

[html] view plain copy

  1. make all -j4
  2. make test -j4
  3. make runtest -j4

"-j4"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
必须根据自己CPU情况选择4或8或16,选择过大的数字编译时会出错!!!

编译过程中可能还会有各种问题,大多数都是cudnn的问题,还可能是一些库没安装好,cudnn的问题就换不同版本的cudnn试试。

如果出现问题:

[html] view plain copy

  1. .build_release/tools/extract_features.o:在函数‘std::string* google::MakeCheckOpString<int, int>(int const&, int const&, char const*)’中:
  2. extract_features.cpp:(.text._ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc]+0x50):对‘google::base::CheckOpMessageBuilder::NewString()’未定义的引用

可能是gcc版本问题,改回ubuntu16.04自带的gcc-5.4版本即可,居然方法请回去看“三、安装cuda-8.0”时的介绍。

有些是因为电脑问题,支持不了太低版本的cudnn,可能就用不了cudnn了。例如笔记本上显卡是GT540M,它的CUDA Capability是2.1,而官方的cudnn加速是不支持3.0以下的版本的,因此只能在Makefile.config中注释掉USE_CUDNN这行。

=================================================================

简单讲就是GPU的加速性能不够,CUDNN只支持CUDA Capability 3.0以上的GPU加速

==================================================================

如果是一些库的问题,那就手动编译,再在配置文件里加入库路径就好,有问题多百度谷歌,一步步排除,可以先注释cudnn,甚至是注释掉cuda,只是CPU_ONLY,一步步找出是在哪里出问题!

出错了就在原终端中输入make clean清除第一次编译结果 
再次输入make all -j4重新编译

4)编译python-caffe接口

[plain] view plain copy

  1. make pycaffe

编译完在终端输入python,再import caffe,如果没报错说明成功了
报错的话应该就是路径问题,只需要在~/.bashrc文件下export PYTHONPATH即可

[plain] view plain copy

  1. sudo gedit ~/.bashrc
  2. #CAFFE_ROOT是caffe的安装路径
  3. export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH

再尝试import caffe ,应该没问题。

5)编译matlab-caffe接口

打开Makefile.config文件,注释掉MATLAB_DIR,并将MATLAB_DIR换成自己的MATLAB安装路径

[plain] view plain copy

  1. # This is required only if you will compile the matlab interface.
  2. # MATLAB directory should contain the mex binary in /bin.
  3. MATLAB_DIR := /usr/local
  4. MATLAB_DIR := /usr/local/MATLAB/R2014a # 该路径下应该有bin文件夹

[plain] view plain copy

  1. make matcaffe

虽然会有警告说gcc版本不一致,但最后还是编译成功了。
可以用matlab自带的一个demo检验一下,打开matlab,在matlab窗口敲入:

[python] view plain copy

  1. cd $CAFFE_ROOT/matlab/demo/
  2. im = imread('../../examples/images/cat.jpg');
  3. [scores, maxlabel] = classification_demo(im, 1);

PS,还要先下一个cifar10里要用到的model:bvlc_reference_caffenet.caffemodel 才可以运行哦!
得到下面的结果即成功!

八、mnist测试

1、获取mnist数据集

下载mnist数据集,终端输入 
[html] view plain copy

  1. cd /home/pawn/caffe/data/mnist/
  2. ./get_mnist.sh

在/home/pawn/caffe/data/mnist/目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件

2、mnist数据格式转换

[html] view plain copy

  1. cd /home/pawn/caffe/
  2. ./examples/mnist/create_mnist.sh

必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh 
此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集
3、训练mnist
LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt
Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt
执行文件在/caffe/examples/mnist/train的lenet.sh 
终端输入 
[html] view plain copy

  1. cd /home/pawn/caffe/
  2. ./examples/mnist/train_lenet.sh

即可开始训练,准确率一般都有0.99以上

最后想说的是1080太新了,可能caffe还有其他一些环境跟不上的话很容易出现一些意想不到的错误,希望大家都能顺利搭建成功吧!
最后再附上之前写的一篇装ubuntu后推荐安装的软件博文: Ubuntu14.04安装与安装后的软件的安装

九、备份系统

好不容易配好系统了,万一脑残不知动了哪给搞坏了怎么办?先备份个系统吧。

9.1 系统备份

系统设置(system setting)里有Backups,但只能备份还原home文件夹。

首先打开终端进入根目录并获取root权限

[html] view plain copy

  1. cd /
  2. sudo su
  3. tar cvpzf Ubuntu_backup.tgz --exclude=/Ubuntu_backup.tgz --exclude=/mnt --exclude=/home --exclude=/proc --exclude=/sys --exclude=/lost+found /

其中 Ubuntu_backup.tgz为备份系统的名字,exclude参数用于设定忽略的文件夹,最后那个/是指示需要备份的目录。

备份完后就可以拷贝到其他盘里保存了。

9.2 系统恢复

在 Ubuntu_backup.tgz 所在文件夹下打开终端获取root权限,将 Ubuntu_backup.tgz拷贝到根目录下

[html] view plain copy

  1. sudo su
  2. cp Ubuntu_backup.tgz /
  3. cd /
  4. tar xvpfz Ubuntu.tgz -C /

新建备份时忽略的文件夹,如

[html] view plain copy

  1. mkdir /proc /lost+found /mnt /sys

参考文章:

1、Ubuntu16.04 + cuda8.0 + GTX1080安装教程

2、ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历

3、GTX1070+Ubuntu16+cuda8+Deeplearning配置

4、Caffe + Ubuntu 15.04(16.04) + CUDA 7.5(8) 新手安装配置指南

5、ubuntu(gtx1080)安装caffe

Ubuntu16.04 + cuda8.0 + GTX1080 + matlab14.04a + Opencv3.0 + caffe 安装教程相关推荐

  1. 详细安装指南-Ubuntu16.04,CUDA8.0,Caffe,OpenCV3.1,Theano,Tensorflow,纯属转载,等待自己修改

    服务器系统崩溃,买的组装服务器不靠谱啊,售后很热情,但是技术... Ubuntu16.04 Ubuntu16.04就自己装吧,这个省略.安装完成之后,根据自己实际情况,配置一下怎么上网.之后,更新源, ...

  2. ubuntu16.04 cuda8.0 caffe 编译 error: cublas_v2.h 没有那个文件或目录

    ubuntu16.04 cuda8.0 caffe 编译时遇到 caffe fatal error: cublas_v2.h 没有那个文件或目录 参考:http://blog.csdn.net/qq_ ...

  3. cuda8.0.44linux.run,ubuntu16.04+cuda8.0+cudnn6+tensorflow(gpu)1.4,一遍成功

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 0 python环境(ubuntu16.04自带2.7.12)0.1 查看python版本与安装路径1 2 3 4pyt ...

  4. ubuntu16.04+cuda8.0+cudnn5.1+caffe 安装(基于独立主机集成显卡GTX1080Ti)

    最近开始配置自己的深度学习主机,由于之前只在笔记本上和单显卡主机上安装过,所以可以说是zero经验,以至于很多问题不了解都当成了bug,故为了方便以后的自己以及大众,特在此写下post一篇.(由于可能 ...

  5. 深度学习环境配置Ubuntu16.04+CUDA8.0+CuDNN+Anaconda2+openCV2.4.9+caffe(全离线GPU版)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Bernice_lying [前言] 深度学习燎原之势势不可当,现在很多现场使用深度方法的比赛需要自行 ...

  6. ubuntu16.04装机:网易云+搜狗拼音+chrome+uGet+caffe(openCV3.1+CUDA+cuDNN+python)

    ubuntu16.04装机:网易云+搜狗拼音+chrome+uGet+caffe(openCV3.1+CUDA+cuDNN+python) 寒假之前配好的ubutnu,但是没有做好记录.回校之后需要重 ...

  7. ubuntu16.04+cuda9.0_cudnn7.5+tensorflow-gpu==1.12.0

    1.查找可用的tensorflow源,该命令运行后终端会输出所有可用的源 anaconda search -t conda tensorflow 2.这里name是上一步中输出源的tensorflow ...

  8. win10+Ubuntu16.04+Quadro P600双系统安装以及独显驱动安装

    win10+Ubuntu16.04+Quadro P600双系统安装以及独显驱动安装 终于装完了双系统并完成了显卡配置这一步.安装双系统可以说是巨坑无数,这里从头记录一下 烧录镜像 首先是制作镜像,在 ...

  9. Ubuntu16.04+Cuda8.0+Caffe+ Opencv3.2+Matlab2015b的配置、安装与编译 (二)

    二.安装Cuda,Caffe [参考文献] [1].Ubuntu 16.04 安装配置Caffe 图文详解★★★★ [2]. Ubuntu下安装Caffe.pdf★★★★★ [3]. CUDA_Qui ...

  10. Ubuntu16.04+CUDA8.0+cudnn v5.1+opencv3.1(2.4.10)+caffe+GTX 1080Ti 机器配置记录

    从暑假就开始装环境,一路踩坑,终于忍不了了决定在博客上记录一下,方便自己查看,也希望能帮到遇到同样问题的朋友. 2017.11.23: caffe又不能训练了,怀疑是之前为了提取光流把opencv版本 ...

最新文章

  1. mybatis源码分析之事务管理器
  2. T-SQL的高级查询详解(一)--函数的综合应用
  3. Linux Lernel Panic 报错解决思路
  4. nyoj117求逆序数 并归排序法
  5. 2021青海高考文综成绩查询,2021年青海高考分数线预测 文理科录取分数线预测
  6. python open 追加
  7. 2018年暑假第四次周赛-图论部分题解
  8. 【JS基础】异步和单线程
  9. Ruby 之父:编程要给程序员带来乐趣
  10. 不同线程产生的map,会崩溃?
  11. 一文解决C语言运算符的优先性与结合性——Think like a computer
  12. 如何运营批量推特账户
  13. 个性篮球队名_你的篮球个性是什么
  14. Antd的Upload组件上传文件控制文件数量、格式等,以及提交时如何获取文件
  15. 织梦(dede)更改默认管理员名称admin技巧
  16. Error contacting service. It is probably not running.
  17. 华为ensp小型综合实验
  18. ffmpeg录制桌面(队列方式)
  19. 中国东极岛,“挑战吧净味君第二季之一级带货王”巅峰成团赛,名单揭晓!
  20. 即使是月薪2000的工作,也要拿出月薪一万的干劲

热门文章

  1. 如何区分前后端 BUG
  2. RS触发器、D触发器、JK触发器、T,T‘触发器的功能详细总结
  3. linux上压缩pdf文件,如何压缩PDF文件?
  4. 如何注册谷歌账号、邮箱(22.8.23亲测可用)
  5. 适合孕妇吃的低糖水果
  6. Google AI 博客:Hum to Search 项目,使用机器学习来识别随口哼唱的旋律
  7. LTE学习笔记五:LTE两种帧结构
  8. 微信小程序开发-软件外包平台案例
  9. Google预训练语言模型T5
  10. java实现界面化,java实现图形化界面