首先说明,这是在台式机上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双系统,显卡为GTX1060
台式机显示器接的是GTX1060 HDMI口
一、首先安装nvidia显卡驱动
- 打开终端,先删除旧的驱动: sudoapt-getpurgenvidia*
- 禁用自带的 驱动 (很重要!),通过如下命令创建一个文件: sudovim/etc/modprobe.d/blacklist-nouveau.conf
- 在文件内添加如下内容:1.blacklistnouveau 2.optionsnouveaumodeset=0
- 更新一下:sudoupdate-initramfs-u
- 关闭
X-Window@H_502_83@
:sudoservicelightdmstop - 切换到tty1控制台:Ctrl+Alt+F1
- 执行如下命令开始安装:sudo./NVIDIA.run
- 安装完成后重新启动
X-Window: sudoservicelightdmstart @H_502_83@
- 然后
Ctrl+Alt+F7@H_502_83@
进入图形界面如果安装后驱动程序工作不正常,使用下面的命令进行卸载:sudosh~/NVIDIA-Linux-x86_64-367.44.run--uninstall
检查是否安装成功,过程跟第一种方案一样,输入:1.nvidia-smi 2.nvidia-settings
进入ubuntu系统设置-软件与更新-ubuntu软件,使用的是中科大的源:http://mirrors.ustc.edu.cn/ubuntu,如下所示
更新Ubuntu16.04源,终端输入cd /etc/apt/@H_502_83@
sudo cp sources.list sources.list.bak@H_502_83@
sudo vi sources.list@H_502_83@
把下面的这些源添加到source.list中:deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse@H_502_83@
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse@H_502_83@
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse@H_502_83@
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse@H_502_83@
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse@H_502_83@
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse@H_502_83@
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse@H_502_83@
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse@H_502_83@
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse@H_502_83@
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse@H_502_83@
最后更新源和更新已安装的包:
终端输入sudo apt-get update@H_502_83@
sudo apt-get upgrade@H_502_83@
安装nvidia驱动,终端输入(这是第二种方法)
sudo add-apt-repository ppa:graphics-drivers/ppa@H_502_83@
回车后继续
sudo apt-get update
sudo apt-get install nvidia-390
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
之后重启系统让GTX1060显卡驱动生效测试
二、cuda安装
下载cuda_8.0.27_linux.run和cudnn-8.0-linux-x64-v5.1.tgz
安装cuda8.0
终端输入
cd 下载/@H_502_83@
sh cuda_8.0.27_linux.run --override@H_502_83@
启动安装程序,一直按空格到最后,输入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/lhu(lhu是我的用户名),该安装路径测试完可以删除
安装完显示如下图安装cudnn v5.1
终端输入
cd 下载/@H_502_83@
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz@H_502_83@
解压在下载目录下产生一个cuda目录cd cuda/include/@H_502_83@
sudo cp cudnn.h /usr/local/cuda/include/@H_502_83@ 复制头文件
cd ../lib64@H_502_83@ 打开lib64目录
sudo cp lib* /usr/local/cuda/lib64/@H_502_83@ 复制库文件
sudo chmod a+r /usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*@H_502_83@给所有用户增加这些文件的读权限
建立软链接
终端输入
cd /usr/local/cuda/lib64/@H_502_83@
sudo rm -rf libcudnn.so libcudnn.so.5@H_502_83@
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5@H_502_83@
sudo ln -s libcudnn.so.5 libcudnn.so@H_502_83@
设置环境变量,终端输入sudo gedit /etc/profile@H_502_83@
在末尾加入PATH=/usr/local/cuda/bin:$PATH@H_502_83@
export PATH@H_502_83@
保存后,创建链接文件sudo vim /etc/ld.so.conf.d/cuda.conf@H_502_83@
按a进入插入模式,增加下面一行/usr/local/cuda/lib64@H_502_83@
按esc退出插入模式,按:wq保存退出
最后在终端输入sudo ldconfig@H_502_83@使链接生效
cuda Samples测试
打开CUDA 8.0 Samples默认安装路径,终端输入
cd /home/lhu/NVIDIA_CUDA-8.0_Samples@H_502_83@
sudo make all -j4@H_502_83@ (4核)
出现“unsupported GNU version! gcc versions later than 5.3 are not supported!”@H_502_83@的错误,这是由于GCC版本过高,在终端输入
cd /usr/local/cuda-8.0/include@H_502_83@
sudo cp host_config.h host_config.h.bak@H_502_83@
sudo gedit host_config.h@H_502_83@
ctrl+f寻找有“5.3”的地方,只有一处,如下# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)@H_502_83@
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!@H_502_83@
将两个5改成6,即#if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)@H_502_83@
保存退出,继续在终端输入cd /home/lhu/NVIDIA_CUDA-8.0_Samples@H_502_83@ (lhu是我的用户名)
sudo make all -j4@H_502_83@ (4核)
完成后继续向终端输入cd bin/x86_64/linux/release@H_502_83@
./deviceQuery@H_502_83@
完成之后出现如下图所示,表示成功安装cuda
三、安装opencv 3.2
从官网上下载opencv3.2.0
http://opencv.org/downloads.html
并将其解压到你要安装的位置,假设解压到了/home
首先安装Ubuntu系统需要的依赖项,虽然我也不知道有些依赖项是干啥的,但是只管装就行,也不会占据很多空间的。
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
- 1
然后安装opencv需要的一些依赖项,一些文件编码解码之类的东东。
sudo apt-get install build-essential cmake git
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
- 1
- 2
- 3
在终端中cd到opencv文件夹下,然后
mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.2 -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..
- 3
-- Configuring done -- Generating done -- Build files have been written to: /home/ise/software/opencv-3.1.0/build
- 3
然后make编译就可以了
make -j8
- 1
上面是将opencv编译成功,但是并没有安装到我们的系统中,有很多的设置都没有写入到系统中,因此还要进行install。
sudo make install
下面用一个小程序测试一下
找到
cd到opencv-3.2.0/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
cmake .
make
./opencv_example
- 3
即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功
四
安装python的pip和easy_install,方便安装软件包
终端输入
cd@H_502_83@
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py@H_502_83@
sudo python ez_setup.py --insecure@H_502_83@
wget https://bootstrap.pypa.io/get-pip.py@H_502_83@
sudo python get-pip.py@H_502_83@
五
安装科学计算和python所需的部分库
终端输入
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy@H_502_83@
六
安装git,拉取源码
终端输入
sudo apt-get install git@H_502_83@
git clone https://github.com/BVLC/caffe.git@H_502_83@
七
安装python依赖
终端输入
sudo apt-get install python-pip@H_502_83@ 安装pip
sudo su@H_502_83@
for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done@H_502_83@
按Ctrl+D退出sudo su模式
八、编译caffe(暂不对matlab说明)
终端输入
cd /home/lhu/caffe@H_502_83@
cp Makefile.config.example Makefile.config@H_502_83@
gedit Makefile.config@H_502_83@
①将
USE_CUDNN := 1@H_502_83@取消注释,
②
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include@H_502_83@后面打上一个空格 然后添加
/usr/include/hdf5/serial@H_502_83@如果没有这一句可能会报一个找不到hdf5.h的错误
终端输入
make all -j4@H_502_83@
make过程中出现找不到lhdf5_hl和lhdf5的错误,
解决方案:
在计算机中搜索libhdf5_serial.so.10.1.0@H_502_83@,找到后右键点击打开项目位置
该目录下空白处右键点击在终端打开,打开新终端输入sudo ln libhdf5_serial.so.10.1.0 libhdf5.so@H_502_83@
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so@H_502_83@
最后在终端输入sudo ldconfig@H_502_83@使链接生效
原终端中输入make clean@H_502_83@清除第一次编译结果
再次输入make all -j4@H_502_83@重新编译
终端输入
make test -j4@H_502_83@
make runtest -j4@H_502_83@
make pycaffe -j4@H_502_83@
make distribute@H_502_83@ 生成发布安装包
测试python,终端输入
cd /home/pawn/caffe/python@H_502_83@
python@H_502_83@
import caffe@H_502_83@
如果不报错就说明编译成功
九、mnist测试
下载mnist数据集,终端输入
cd /home/pawn/caffe/data/mnist/@H_502_83@
./get_mnist.sh@H_502_83@ 获取mnist数据集
在/home/pawn/caffe/data/mnist/@H_502_83@目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件
mnist数据格式转换,终端输入
cd /home/pawn/caffe/@H_502_83@
./examples/mnist/create_mnist.sh@H_502_83@
必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh
此时在/caffe/examples/mnist/@H_502_83@目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集
LeNet-5模型描述在
/caffe/examples/mnist/lenet_train_test.prototxt@H_502_83@
Solver配置文件在
/caffe/examples/mnist/lenet_solver.prototxt@H_502_83@
训练mnist,执行文件在
/caffe/examples/mnist/train_lenet.sh@H_502_83@
终端输入cd /home/pawn/caffe/@H_502_83@
./examples/mnist/train_lenet.sh@H_502_83@
测试结果如下