安装流程:
1. Ubuntu16.04系统安装;
2. NVIDIA-387显卡安装;
3. CUDA-8.0安装;
4. Cudnn-v5.1安装;
5. Tensorflow-gpu 1.2版安装;
6. Opencv3.2安装;
7. Matlab2016b安装;
8. Caffe安装;
一. Win10+ubuntu16.04双系统安装
电脑型号:华硕飞行堡垒
配置:i7-7700 ,8g-ddr4 ,128g ssd+1T机械硬盘,gtx1050;
具体安装步骤:
1.调整系统自带的bios设置(此处略过,自行百度)
2.进入系统安装界面,选择到install Ubuntu处,按下键盘e键,进入grub界面,找到quite splash并在后面空格接着输入
$ vt_handoff acpi_osi=linux nomodeset
然后按F10保存。静待一两分钟(或者更多)进入系统安装界面;
3.系统安装时选择机械硬盘,系统安装的分区处理,按照自己的需求进行分区处理,本人的分区仅供参考:/ 分配了100g;/boot 分配10g;/swap 分配8g;/home 剩下所有的内存。
4.分好区后直接安装。
5.安装完后重启电脑,同样在开机系统引导选择界面,将选项移动至ubuntu处,并且再次按下e进入grub界面。找到quite splash并在后面空格接着输入
$ vt_handoff acpi_osi=linux nomodeset
然后按F10保存。静待几分钟(或者更多)顺利进入系统;
6.进入系统后连接网络,先update一下,并且确保网络可用。接下来我们为了防止再次开机时进入不了系统,我们先将闭源N卡安装好。
二.安装NVIDIA显卡
安装步骤:
- 紧接上面第6步。开机后,按住ctrl+alt+F1进入tty界面,并且登陆自己的电脑账户;
- 登陆后,关闭桌面显示管理器;
$ sudo service lightdm stop
- 添加源
$ sudo add-apt-repository ppa:graphics-drivers/ppa
运行完此指令后按下enter键,确认添加源
$ sudo apt-get update
- 寻找合适的驱动版本
$ ubuntu-drivers devices
- 再次关闭桌面显示管理器;
$ sudo service lightdm stop
- 安装N卡,选择第四步推荐的型号(第四步推荐的型号后面有recommend一词)
$ sudo apt-get install nvidia-387
(具体型号看个人电脑推荐)
- 确保网络通畅的情况下安装完后重启电脑
$ sudo reboot
- 此时则可正常进入系统,并且查看N卡安装情况
$ nvidia-smi
有显卡信息显示出来,则表示安装成功。
三. Cuda8.0安装
安装步骤:
在安装cuda之前对gcc进行降级操作,在ubuntu16.04中默认的gcc版本为5.4,而cuda8.0在这里支持最高5.3版本;
降级操作:
- 下载gcc源码
$ wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz
- 解压文件
$ tar -zxvf gcc-5.3.0.tar.gz
- 载编译所需文件库
$ cd gcc-5.3.0
$ ./contrib/download_prerequisites
$ cd …
- 建立编译输出目录
$ mkdir gcc-build-5.3.0
- 进入编译目录并且生成makefile文件
$ cd gcc-build-5.3.0
$ …/gcc-5.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
- 编译以及安装
$ sudo make –j8
$ sudo make install
- 检查是否安装成功
$ gcc –version
$ g++ --version
安装成功则会有版本信息输出。
Cuda安装:
- 去NVIDIA官网下载相应cuda;
- 将下载好的文件放置在对应的目录下,并输入指令执行
$ sudo sh cuda_8.0.27_linux.run
-
开始安装,按空格阅读安装证书内容,并确认安装。在提示到安装显卡时,我们不再安装显卡,因为之前我们已经安装好。 其他的安装选项用使用默认安装;
-
安装完成后声明环境变量,并将其写入到 ~/.bashrc 的尾部:
$ export PATH=/usr/local/cuda-8.0/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64KaTeX parse error: Expected '}', got 'EOF' at end of input: …LIBRARY_PATH:+:{LD_LIBRARY_PATH}} -
然后设置环境变量和动态链接库,在命令行输入
$ sudo gedit /etc/profile
- 在打开的文件末尾加入
$ export PATH=/usr/local/cuda/bin:$PATH
- 保存之后,创建链接文件:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
- 在打开的文件中添加如下语句:
$ /usr/local/cuda/lib64
- 使链接立即生效
$ sudo ldconfig
测试cuda是否安装成功:
$ cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
$ make
$ sudo ./deviceQuery
如果终端显示出显卡信息,则表示安装成功。
四. CuDNN V5.1安装
- 去nvidia官网下载对应版本的cudnn,这里我下载的是cudnn v5.1。下载下来后解压到自己指定的目录下;
- 进入目录,建立软件链接(注意自己cudnn版本号):
$ sudo cp ~/cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp ~/cuda/lib64/lib* /usr/local/cuda/lib64
$ cd /usr/local/cuda/lib64
$ sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
$ sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接
$ sudo ln -s libcudnn.so.5 libcudnn.so
$ sudo ldconfig
- 安装成功;(检验安装是否成功,用tensorflow 写个helloworld的例子)
小插曲[安装后,以后若想要更换cudnn版本可以进行以下操作,然后再重新安装新版本的cudnn
删除原来的cudnn:
$ sudo rm –rf /usr/local/cuda/include/cudnn.h
$ sudo rm –rf /usr/local/cuda/lib64/libcudnn*
删除完后重新安装新版的cudnn,步骤如上,请注意软链接的版本信息]
五.Tensorflow-gpu安装
升级pip到9.01
- 去官网下载pip安装包;
- 将下载好的安装包解压到自己安装文件的目录下;
- 进入解压后的文件下,安装pip
$ sudo python setup.py install
- 检查pip安装情况;
$ pip --version
tf安装
打开终端输入指令
$ sudo pip install tensorflow-gpu==1.2
六.Opencv-3.2安装
- 安装依赖库
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install ffmpeg
- 去官网下载opencv-3.2安装包,并且解压;
- 进入opencv文件夹,新建build文件夹
$ cd ~/opencv-3.2.0
$ mkdir build
- 利用cmake编译opencv,若果没有cmake,请自行安装;
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
在配置过程中会出现一直卡在 – ICV: Downloading ippicv_linux_20151201.tgz…
此时,终止编译,去网站上下载相对应的ippicv_linux_20151201.tgz文件,并且进入以下目录将文件替换成自己下载的:opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b
替换好后,打开CMakeLists.txt文件,在文件开头处加入以下代码,并且保存:
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)
- 重新编译和安装opencv
$ cd opencv-3.2.0/build
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
$ make –j8
$ sudo make install
七.Matlab2016b安装
- 下载Matlab2016b linux版本到自己电脑内并且解压;
- 创建挂载目录并且挂载上去:
$ sudo mkdir /media/matlab
$ sudo mount –o loop /your matlab path/R2016****dvd1.iso /media/matlab
- 挂载好后进行安装:
$ cd /media/matlab
$ sudo ./install
- 由于matlab2016b有两个镜像,所以安装到大概百分之九十左右会需要挂载第二个镜像:
$ sudo mount –o loop /your matlab path/R2016****dvd2.iso /media/matlab
- 挂载完后即可继续安装
- 安装完后开始破解激活
$ cd /your matlab install path/Matlab/bin/
$ sudo ./matlab
- 打开后选择不需连接网络破解,然后将 license_standalone.lic 文件导入,激活
- 将破解文件glnxa64下面的四个文件复制到Matlab安装路径下的/bin/glnxa64目录下,替换对应的四个文件,至此,matlab安装成功。
- 安装后将挂载的目录卸载
$ sudo umount /media/matlab
$ sudo umount /media/matlab
(挂载了两次所以需要卸载两次)
八.Caffe安装及编译
- 安装对应package:
$ sudo apt-get update
$ sudo apt-get install -y build-essential cmake git pkg-config
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install -y libatlas-base-dev
$ sudo apt-get install -y–no-install-recommends libboost-all-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install -y python-pip
$ sudo apt-get install -y python-dev
$ sudo apt-get install -y python-numpy python-scipy
- 下载caffe源码:
$ sudo git clone https://github.com/BVLC/caffe.git
- 修改配置文件:
$ cd ~/caffe-master
$ sudo cp Makefile.config.example Makefile.config
$ sudo gedit Makefile.config
打开之后修改如下内容:
使用cudnn,则将# USE_CUDNN := 1
修改成: USE_CUDNN := 1
使用的opencv版本是3的,则将# OPENCV_VERSION := 3
修改为: OPENCV_VERSION := 3
使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1
修改为 WITH_PYTHON_LAYER := 1
重要的一项 将# Whatever else you find you need goes here
.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
使用MATLAB接口,把MATLAB_DIR换成自己的MATLAB安装路径
MATLAB_DIR := /your install path
MATLAB_DIR := /your install path/Matlab2016b
- 打开Makefile文件修改:
$ sudo gedit Makefile
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
- 编辑
/usr/local/cuda/include/host_config.h
,将其中的第115行注释掉:
$ sudo gedit /usr/local/cuda/include/host_config.h
将:
#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!
- 编译caffe
$ make all –j8
$ make test –j8
$ make runtest -j8
$ make pycaffe –j8
$ make mattes –j8
$ make matcaffe –j8
[在编译pycaffe时,会有一个package没有安装,请自行安装,以及需要在/etc/profile文件内添加caffe路径等问题,等遇到时自行百度或者google]
至此,整体环境搭建成功,至于中间各个测试,请自行进行实验。
若有不足请大家指出。该文件仅供参考!
本博客作于一年前,当时未保存参考网址,现已无法追溯,请谅解!