Ubuntu16.04+cuda8.0+cudnn7.1+caffe+jupyter-notebook

由于工作的需要,要在设备上安装caffe框架进行深度学习的相关工作。折腾了大概两天的时间,中间遇到诸如驱动不匹配、缺少相应的库文件等问题,艰难的安装成功。所以记录下来,希望能够帮到有相同需求和遇到同样问题的童鞋。


第一步:首先,你要有个纯净的ubuntu16.04系统。所谓纯净,最基本的要求是你现在基本上没有安装太多的东西。如果方便,建议直接重新安装系统。但是,有一点要切记!!!!装完系统千万不要更新,保留原始状态,虽然更新后不一定会失败,但这样是最稳妥的。至于怎么装系统?请另开网页,自行百度。


第二步:下载cuda8.0+cudnn7.1。这个可以去官网下载,如果官网上不去,翻墙试一试,再不行自己想办法吧。博主还没学会怎么上传这些包。


第三步:安装cuda8.0。在此之前要先装一个显卡驱动,因为cuda8,和cuda9自带的N卡驱动都是375.26,可能最新的版本会有一些变化,但是建议你去N卡官网查一下你的显卡对应的驱动的版本,然后使用最新的版本。比如。博主的显卡是Geforce GTX 980 ti 支持的版本是384,所以安装384就可以。至于安装的问题请参考我之前的博客:https://mp.csdn.net/postedit/79135560

这里有详细的过程。需要补充的是,如果你不禁掉nouveau直接切入到文本形似,即alt+ctrl+f1,能够通过apt-get install nvidia-384安装成功,那也可以。这个安装过程不同的机器会有不同的状况。

驱动安装成功后,就可以安装cuda了,博主下载的是.run文件,建议下载.run文件,因为.deb文件是默认安装N卡驱动的,这会覆盖你之前辛苦装好的驱动。安装过程依然参考:https://mp.csdn.net/postedit/79135560


之后是安装cudnn,博主的是.tgz压缩包,cd到压缩包所在目录下,解压,

tar -xvf cudnn-7.0-linux-x64-v4.0-prod.tgz

解压后,该目录下会有一个cuda文件夹,该文件夹下有:



如果你的cuda 和我的一样是默认安装在/usr/local/目录下的,那么可以执行如下操作:

sudo cp lib64/* /usr/local/cuda/lib64
sudo cp include/* /usr/local/cuda/include

这是为了让cuda 和cudann连接起来,让cuda 加速时利用cudnn的加速库。

注意大部分安装报错都是缺少了库文件,所以要安装大量的依赖库。

如下命令可以安装一些依赖库:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev \
libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
sudo apt-get install -y --no-install-recommends libboost-all-dev

再之后,就是安装caffe了。

之前如果不确定cuda,cudnn 是否安装成功。可以 cd NVIDIA_CUDA-8.0_Samples,然后 make all,之后会生成一个bin目录。

cd bin/x86_64/linux/release

然后:./deviceQuery 出现如下信息说明安装成功。

最重要的是最后几行,一定要有,否则就是安装失败,建议重装。卸载过程自行百度,一个简单的命令就行。



第四步:安装caffe。强烈建议在网络环境较好的情况下安装。

git clone https://github.com/BVLC/caffe

一般都是从github 上下载。完成后执行下面的操作:

cd caffe

我们只是下载了caffe 要想使用它,还要进行编译,这也是会出现大量问题的地方。

在caffe 目录下,你可以找到一个叫 Makefile.config.example的文件


那个Makefile.config是下一步操作会产生的,原来是没有的。

cp Makefile.config.example Makefile.config

这是会有一个Makefile.config文件,我们要对它进行修改。

sudo gedit Makefile.config
或者 sudo vi Makefile.config

取决于你用什么编辑器了。

# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1
USE_OPENCV := 1
# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3  如果你的opencv版本是3开头的话,这个可以随时调整,我们最后安装opencv,这个并不影响

# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
		/usr/lib/python2.7/dist-packages/numpy/core/include   这里要先安装numpy ,sudo pip install numpy
# Uncomment to support layers written in Python (will link against Python libs)
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/ /usr/local/cuda/lib64

 

修改完成后保存退出,接下来要编译caffe.

sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8   -j8表示8核加速,如果你有的话,这个不影响,只是没有加速会慢一些。

最可能出现的问题是 缺少库文件,xxx  no such file xxxx,直接复制百度,按照别人的命令进行安装就行。

参考这篇博客:

https://blog.csdn.net/u012576214/article/details/68947893

如果你尝试了所有的解决方案,依然报错并且是与 **opencv** 有关,这就说明你成功了,因为我们还没有安装opencv 所以如果只剩下这一个错误,实际上是已经编译成功了。只需要在安装opencv 就行了,然后重复caffe的编译过程,每一步都不要少,尤其是

sudo make clean

安装opencv3.4.1,首先是要安装一大堆的依赖库。

sudo apt-get install build-essential cmake git pkg-config libjpeg8-dev \
libjasper-dev libpng12-dev libgtk2.0-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev gfortran
sudo apt-get install libtiff5-dev 

sudo apt-get install libatlas-base-dev
sudo apt-get install python2.7-dev

之后是下载opencv3.4.1,git 也行,直接下载压缩包也行。

cd opencv3.4.1  一定要是你opencv的文件名
sudo mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local  ..

依然是在build 目录下,继续一下操作

sudo make

sudo make install

你需要等待.......................................................................................................................................................................................................................................................................

不报错直接完成,报错请百度。

安装完成后,切回caffe目录,重复上述编译过程,直到不报错。

如果出现 *****.so  文件未找到,可以尝试如下操作:

sudo cp /usr/local/lib64/libcudnn.so.7(这个是你库文件所在的位置)  /usr/local/lib/libcudnn.so.7 && sudo ldconfig

类似的问题都可以这么试一试。这些都做完后,然后回到上面的caffe编译过程,一定不要忘记了 sudo make clean。

如果,再无问题出现,那么恭喜你,caffe环境安装成功,下一步就是在一个python的ide中使用它了。万里长征走到了最后一步。

这时你可以测试一个Mnist 数据集,注意,如果你的所有make 和博主一样都是给的root 权限,即都是sudo make *,那么测试时也一定要用sudo。

cd ~/caffe
sudo ./data/mnist/get_mnist.sh
sudo ./examples/mnist/create_mnist.sh
sudo ./examples/mnist/train_lenet.sh

一般都会出结果。自此整个caffe环境的搭建就完成了。



第五步:安装jupyter notebook


python3 -m pip install --upgrade pip
python3 -m pip install jupyter            python3及以上
python -m pip install --upgrade pip
python -m pip install jupyter             python2.7

命令行启动:jupyter notebook

会有一个网页版的交互界面。然后到下面的网址下载一个.ipynb的文件,在界面右侧,选中然后右键,有download选项。然后在你的网页版的交互界面的home下找到这个文件,打开它,就可以愉快的输入输出了。详情参考我的博客:

https://mp.csdn.net/postedit/79135560 ,或者看一下网上的教程。


https://hub.mybinder.org/user/jupyterlab-jupyterlab-demo-thswcrqq/lab

全文结束。希望对你有帮助。


补充:启动jupyter notebook 时要用root 模式

sudo  jupyter notebook --allow-root

不然的话,是无法进行深度网络的学习训练的,即使你前面所有的make 都不是sudo 模式。


猜你喜欢

转载自blog.csdn.net/zshluckydogs/article/details/79813567
今日推荐