版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dyingstraw/article/details/81304538
建议看完后再安装.....
step 1
step .1:首先,检测你的NVIDIA图形卡和推荐的驱动程序的模型。执行命令:
$ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
或者安装某一个驱动
sudo apt install nvidia-384(384是版本号,要根据自己的作修改)
OK 驱动安装完成,重新启动,查看系统配置---》详细信息---》关于 ,图形处理是否对应于自己的独立显卡。
sudo nvidia-smi
显示如图,则代表成功了
step2
下载并安装cuda8.0
首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:
安装cuda8.0,cd到
.run
文件所处的路径下,
安装nvidia driver
sudo chmod +777 cuda_8.0.44_linux.run
sudo sh cuda_8.0.44_linux.run
按照步骤安装,第一个就是问你是否安装显卡驱动,由于前一步已经安装了显卡驱动,所以这里就不需要了,况且 runfile 自带的驱动版本不是最新的。
出现下图则表明成功:
最后你会看到cuda驱动,sample,toolkit已经成功安装,但缺少一些库
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
下载cudnn5.1
首先去官网https://developer.nvidia.com/rdp/cudnn-download 下载cuDNN,需要注册一个帐号。下载版本号如下图
1下载cudnn5.1后进行解压:
sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
2然后更新网络链接:
cd /usr/local/cuda/lib64/
sudo chmod -r libcudnn.so.5.1.10 #查看自己的.so版本
sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5.1
sudo ln -sf libcudnn.so.5.1 libcudnn.so.5
sudo ldconfig
3 重新启动图形化界面
sudo service lightdm start
再按ctrl + alt +f7退出
4 添加环境变量
编辑计算机文件夹的/etc/profile,加入cuda环境变量,保存
sudo gedit /etc/profile
添加以下内容在底部
export PATH=/usr/local/cuda/bin : $PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64 : LD_LIBRARY_PATH
保存后执行一下命令,使其生效:
source /etc/profile
打开~/.bashrc文件: sudo gedit ~/.bashrc 将以下内容写入到~/.bashrc尾部:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
同时 进入/etc/ld.so.conf.d/文件夹,执行以下命令,新建一个名为cuda.conf的文件,然后在文件下写入以下内容:
cd /etc/ld.so.conf.d/
sudo gedit cuda.conf
/usr/local/cuda/lib64
然后执行以下命令,使其生效:
sudo ldconfig
5 检查一下cuda Toolkit是否安装成功
nvcc -v #会显示cuda版本信息
6 测试cuda的samples,编译cuda提供的例子
cd ~/NVIDIA_CUDA-8.0_Samples #根据自己的路径修改
sudo make all -j8
运行编译生成的二进制文件,编译后的二进制文件默认存放在~/NVIDIA_CUDA-8.0_Samples/bin,进入Samples/bin/x86_64/linux/release目录下
cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/
make
./deviceQuery
如果显示"Result = PASS,则安装成功cuda
step3
1下载安装opencv3.3.1和opencv_contrib3.3.1库,opencv_contrib库中的dnn可以直接加载各种神经网络的model和deploy.prototxt,适用常用的框架环境,比如caffe,tensorflow等
wget https://github.com/opencv/opencv/archive/3.3.1.zip
wget https://github.com/opencv/opencv_contrib/archive/3.3.1.zip
(3.3.1.zip就是opencv-3.3.1.zip)
(3.3.1.zip.1就是opencv_contrib-3.3.1.zip)
2 解压两个压缩文件,把并把opencv_contrib-3.3.1放到opencv-3.3.1目录下
unzip opencv-3.3.1.zip -d
unzip opencv_contrib-3.3.1.zip
3 安装各种依赖
sudo apt-get update
sudo apt-get upgrade
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 pkg-config
4 然后在opencv文件夹下创建build目录,并执行cmake
cd ~/opencv3.3.1
mkdir build
cd ./build
cmak -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 INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib- 3.3.1/modules -D BUILD_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D BUILD_TIFF=ON ..
自己根据自己的路径修改OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib- 3.3.1/modules ,后面的..不要省略
出现下图则编译成功
make -j8
sudo make install
5 链接库共享
sudo ldconfig -v
6 编译安装好的cv2.so,在usr/local/lib/python2.7/site-packages或者dist-packages下
在这个目录下可以添加到环境变量中
sudo gedit /etc/profile
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
保存退出
source /etc/profile
然后如图执行
则代表成功了
如果用的是第三方python,还需要将/usr/local/lib/python2.7/site-packages目录下的cv2.so复制到第三方的python
以anaconda为例
sudo cp /usr/local/lib/python2.7/site-packages/cv2.so ~/anaconda/lib/python2.7/site-packages
step4
安装依赖
sudoapt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-devlibhdf5-serial-dev protobuf-compiler
sudoapt-get install --no-install-recommends libboost-all-dev
sudoapt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudoapt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install -y python-numpy python-scipy
下载安装caffe
1 https://github.com/BVLC/caffe下载caffe,下载后
sudo unzip caffe-master.zip
2 然后复制Makefile.config,在caffe目录下(把caffe.master改成caffe)
sudo cp Makefile.config.example Makefile.config
3 打开Makefile.config文件
sudo gedit Makefile.config
根据个人情况修改文件
若用cudnn则
将#use_cudnn := 1改成
use_cudnn := 1
若用opencv3的,将
#OPENCV_VERSION := 3改成
OPENCV_VERSION := 3
若要使用python来编写layer,则
#WITH_PYTHON_LAYER := 1改成
WITH_PYTHON_LAYER := 1
最重要的一项
将# Whatever else you find you need goes here. 下面的
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 改成
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
4 修改Makefile文件
打开makefile文件,做如下修改:(这个不知道有没有用,这一步感觉没作用)
将:
sudo gedit Makefile
把NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 改为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
5 编辑/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!
如果出现src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: 没有那个文件或目录的错误,则
\\首先执行下面两句话:
find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
cd /usr/lib/x86_64-linux-gnu
\\然后根据情况执行下面两句:
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
\\注意:这里的10.1.0和10.0.2根据不同的系统可能对应的数字会不同,比如在ubuntu15.10中其数字就是8.0.2.
\\具体的数字可以在打开的文件中查看对应文件后面跟的数字
然后更改"Makefile.config"文件中的包含目录,在90行左右
INCLUDE_DIRS:=$(PYTHON_INCLUDE) /usr/local/include然后在后面加上"serial"的包含目录,即:
INCLUDE_DIRS:=$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
接着需要更改相应的"Makefile"文件,找到(181行左右)
LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
更改最后两项为:
LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
就可以了,继续make了。
6 编译
sudo make all -j8
sudo test -j8
sudo runtest -j8 出现下图则成功
7 编译pycaffe,不然导不进caffe模块
首先确保pip已经安装
sudo apt-get install python-pip
在caffe/python 下有一个requirement.txt,里面有所需要安装的所有库
cd caffe/python
for req in $(cat requirements.txt); do pip install $req; done
如果出现错误,试一下
sudo gedit /etc/profile
export PYTHONPATH=$~/caffe/python:$PYTHONPATH
export LD_LIBRARY_PATH=$~/caffe/build/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH (~表示你的家目录)
如果执行成功,就代表所需要的库已经安装成功。可以在进入 caffe/python 路径下执行
cd caffe/python
sudo pip install -r requirements.txt
安装成功会看到显示Requirement already satisfied。
然后
cd caffe
sudo make pycaffe -j8
加入环境变量
sudo gedit /etc/profile 加入
export PYTHONPATH=~/caffe/python:$PYTHONPATH
sudo source /etc/profile
验证,在终端
python
import caffe
成功的话出现下图
8 最后 MNIST数据集测试
将终端定位到Caffe根目录
cd ~/caffe
下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh
将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh
训练网络
./examples/mnist/train_lenet.sh
训练的时候可以看到损失与精度数值,如下图所示:
整个过程差不多就是这样了,安装过程中要根据自己的情况做修改!