1.安装Ubuntu16.04
进入BIOS功能,将启动优先权各项全部关闭,F10保存,进入U盘启动模式,安装Ubuntu16.04
1.1 EFI引导分区 200M
1.2 swap area(交换空间)大约与本机内存相等
1.3 剩余空间全部用作Ext4日志文件系统, 挂在点选“/”
1.4 Device foor boot loader installation 选择在EFI引导分区下
2.预检
# lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GK110 [Geforce GTX 780] (rev a1)
01:00.1 Audio device:NVIDIA Corporation GK110 HDMI Audio (rev a1)
#uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.1 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
UBUNTU_CODENAME=xenial
#gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.02) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3.更新 /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ precise main restricted universe multiverse
#
apt-get update
4. 安装cmake-2.8.12.1
# sudo wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1-Linux-i386.tar.gz
#tar xzvfcmake-2.8.11.tar.gz
# cd cmake-2.8.11
# ./configure; make; make install
5. 安装依赖
# sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
# sudo apt-get install --no-install-recommends libboost-all-dev
# sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
6. 安装cuda
因为需要GPU,故安装CUDA
6.1 安装NVIDIA驱动
Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,没能得到NVIDIA的认可与支持,不过确让Linux更容易的应对各种复杂的NVIDIA显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,故很多Linux发行版默认集成了Nouveau驱动,在遇到NVIDIA显卡时默认安装。企业版的Linux更是如此,几乎所有支持图形界面的企业Linux发行版都将Nouveau收入其中。
关闭Nouveau
#sudo gedit /etc/modprobe.d/blacklist.conf
在文件后面加入blacklist nouveau
#mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak (无效)
#dracut -v /boot/initramfs-$(uname -r).img $(uname -r) (sudo apt-get install dracut)
下载驱动程序NVIDIA-Linux-x86_64-367.44.run
# sudo service lightdm stop 进入命令行
# sudo ./NVIDIA-Linux-x86_64-367.44.run
You appear to be running an X server; please exit X ...
# ps -e | grep X
# sudo kill Xorg
kill掉X进程
# sudo ./NVIDIA-Linux-x86_64-367.44.run
中途会报一些错误与警告,不用搭理
# sudo service lightdm start 返回图像界面
进入图像界面后报错:
System program problem detected (未解决)
# nvidia-smi 检查驱动
6.2 安装CUDA
# sudo ./
cuda_7.5.18_linux.run --override
# sudo gedit ~/.bashrc
修改环境变量
export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
#source
~/.bashrc
# sudo gedit /etc/ld.so.conf 修改动态链接
/usr/local/cuda/lib64
# sudo ldconfig
#
nvcc -V 检查CUDA
# cd /usr/local/cuda-7.5/samples
# sudo make 测试CUDA
报错:unsupported GNU version! gcc versions later than 4.9 are not supported
gcc版本过高,修改CUDA配置文档,没有选择去降低gcc版本
# cd /usr/local/cuda/include/
# sudo cp host_config.h host_config.h.bak
# sudo gedit host_config.h
if _GNUC_>4 || (_GNUC_ == 4 && _GNUC_MINOR_ > 9) 将两个4改为5
# cd /usr/local/cuda-7.5/samples
# sudo make 测试CUDA,通过
6.3 安装CUDNN
下载cudnn7.5-linux-x64-v5.1.tgz
# sudo cpinclude/cudnn.h /usr/local/cuda/include
# sudo cp lib64/libcudnn.* /usr/local/cuda/lib64
# cd /usr/local/cuda/lib
需要对cudnn进行修改,添加软链接
# sudo rm -rf libcudnn.so libcudnn.so.5
# sudo ln -s libcudnn.5.1.3 libcudnn.so.5
# sudo ln -s libcudnn.so libcudnn.so
7. 安装 MKL (需要序列号,现有文件包安装)
# tar xzvf l_mkl2017.0.098.tgz
# cd
l_mkl2017.0.098
# ./install.sh
# serial number xxxx-xxxxxxxx
# sudo vim ~/.bashrc
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:
$LD_LIBRARY_PATH
# source ~/.bashrc
8. 安装Anaconda
下载Anaconda2-4.1.1-Linux-x86_64
# sudo bash
Anaconda2-4.1.1-Linux-x86_64
PREFIX=/usr/anaconda2
installing: hdf5-1.8.16-0 ...
installing: mkl-11.3.3-0 ...
anaconda 自动添加环境变量
export PATH="/root/anaconda/bin:$PATH"
9. 安装opencv
9.1 opencv2.4.13安装
下载opencv2.4.13.zip
# unzip opencv2.4.13.zip && cd opencv2.4.13
# mkdir release
# cd release
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 -D CUDA_GENERATION=Kepler .. (GTX780显卡,Kelper架构)
# make
报错
error:/usr/include/string.h:652:42:error: ‘memcpy’ wasnotdeclaredin this scope
原因g++版本太新了,兼容一下,在出现上面错误时,在CMakeLists.txt中前几行添加
set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
# sudo make install
set runtime path of "/usr/local/opencv2/bin/opencv_visualisation" to "/usr/local/opencv2/lib:/usr/local/cuda/lib64"
...
9.2 配置环境变量
# sudo gedit ~/.bashrc
# exportPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
# exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib
# source ~/.bashrc
9.3 opencv测试
# cd /usr/opencv-2.4.13/samples/c
# sudo ./build_all.sh
报错: coutours.c:1:39 fatal error: opencv2/imgproc/imgproc_c.h: No such file or direction
第7步已经配置了环境变量,大费周章后
# sudo
cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig
#
/usr/opencv-2.4.13/samples/c下
./find_obj 测试通过
10. 安装 caffe
10.1 下载caffe-master.zip 进行安装
# unzip caffe-master.zip
# cd caffe-master
# sudo cp Makefile.config.example Makefile.config
# sudo vim Makefile.config
###############[Makefile.config]
USE_CUDNN = 1
BLAS := mkl
PYTHON_INCLUDE := /usr/anaconda2/include/python2.7 \
/usr/anaconda2/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := /usr/anaconda2/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include \
/opt/intel/mkl/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib \
/opt/intel/mkl/lib
###############[Makefile.config]
# make all -j8
报错:
fatal error: hdf5.h: No such file or direction
进入
Makefile.config文件
INCLUDE_DIRS
:
=
$(
PYTHON_INCLUDE
) ... \
/usr/
include
/hdf5/serial 将该路径添加至
INCLUDE_DIRS中
进入
Makefile 181行
LIBRARIES +
= ...
hdf5_hl hdf5
改为
LIBRARIES += ...
hdf5_serial_hl hdf5_serial
报错:
./include/caffe/util/cudnn.hpp: In function 'void caffe::cudnn::createPoolingDesc(...'
./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t
caffe版本与cudnn版本不匹配,下载最新版caffe安装
报错:
NVCC src/caffe/layers/silence_layer.cu
/usr/include/string.h:652:42 error:'mempy' was not declared in this scope
在
Makefile文件609行,添加
-D_FORCE_INLINES
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
# make test -j8
# make runtest -j8
报错:
symbol lookup error: /opt/intel/mkl/lib/intel64/libmkl_intel_thread.so: undefined symbol:
libmkl_intel_thread未找到libomp5
#sudo cp /opt/intel/lib/intel64_lin/libomp5.so /usr/local/lib
# make pycaffe
export PYTHONPATH=
$PYTHONPATH: .../caffe/python
进入python环境,测试import caffe通过
10.2 测试MNIST
进入到caffe根目录下
./data/mnist/get_mnist.sh 下载minst数据库
一定要在caffe的根目录下运行./examples/mnist/create_mnist.sh
否则会有错误“ build/examples/mnist/convert_mnist_data.bin: not found”
./examples/mnist/create_mnist.sh 数据转成lmdb格式
./examples/mnist/train_lenet.sh 训练mnist
输出正确率为99.05%
至此,caffe安装完成