此教程适用于对于刚接触caffe和ubuntu系统的同学,请一步一步耐心地跟着教程走,尽量避免踩坑。对于习惯Windows系统的人来说,接触Ubuntu也算是一种有趣的体验,感受仁爱吧!
1.安装Ubuntu16.04
在Win10系统上装上最新的稳定兼容版本Ubuntu16.04(不是我想踩坑而是14.04上也会有一些坑…),装双系统教程参照如下,亲测有效 安装ubuntu双系统 参照此教程还需注意的是,最好在Windows系统上给ubuntu系统分配内存时,可以给80G或以上(如果有足够的空间,可以按照自己需求分配),在安装ubuntu过程中,安装类型一定要选其他选项,否则将不能进行双系统引导。对空闲空间进行分区时,可以按以下建议,/分区给20~30G,swap分区给16G(两倍物存),/home分区给30~40G,/boot分区给200M,四个分区都选择逻辑分区,并在下拉选项中选择/boot分区作为系统引导,装好后回到windows系统要利用EasyBCD软件设置此分区作为双系统ubuntu引导。
在安装完之后,搜索-软件和更新,更新服务源,我选的阿里的服务器。
如果你是初次接触linux系统或ubuntu系统,建议你在装好Ubuntu系统后不要急着进行下一步,可以了解学习一下linux系统基础和基本指令 linux基础和命令
2.安装NVIDIA显卡驱动
要跑GPU加速必须要先装NVIDIA显卡驱动,而且在我安装之前,屏幕分辨率低的惊人,窗口都已经只能看到一半了,还不能在系统设置-显示里面修改,试了网上的说法还是不行,有看到说可能是显卡驱动的原因,但没太放在心上。网上搜了装NVIDIA显卡的方法没看太懂,最后在搜索-软件和更新,附加驱动中找到了,Ubuntu提供了两种显卡驱动,一个是NVIDIA显卡官方驱动,另一个是第三方NVIDIA的开源驱动nouveau,Ubuntu系统默认驱动是后者,改为前者就好了,然后在命令窗口中输入nvidia-smi会出现gpu清单。
3.安装CUDA8.0
网上的教程大部分是关于CUDA7.5的,之前看博客找到过CUDA7.5的下载链接,但装CUDA的时候没在NVIDIA官网找到7.5的,只看得到最新版8.0,不过相信NVIDIA肯定会考虑兼容性的,到NVIDIA官网可以下载CUDA8.0,我下载的是离线.deb包进行安装 CUDA8.0下载
官网下载页面给出了安装命令如下图中的Installation instructions:
下载完成之后,打开命令行终端,进入到.deb包的下载目录下,依次执行以下命令,其中第一个指令中的.deb包就是自己下载的.deb包名。
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安装完cuda后必须重启电脑,才能让显卡配置生效!
4.安装cuDNN v5
先说明一下,cuDNN v4是不支持ssd的,并且用v4编译faster r-cnn后测试score时结果不对,faster r-cnn默认是v3,通过替换和修改少量文件即可使用v5,因此在这里强烈建议大家使用v5版本。到NVIDIA官网下载cuDNN,进去要先用邮箱注册一下,填个问卷,很快的。选择cuDNN v5(May 27,2016),for CUDA 8.0下载,官网下载地址: cuDNN v5下载
下载之后进入到下载文件所在文件夹,解压,进入cuda文件夹下,并执行相关文件的拷贝:
tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz(或你的版本对应的压缩包)
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h usr/local/cuda/include/
然后更新软连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.0.5(或你自己的版本对应的)
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
5.添加环境变量
编辑计算机文件夹下的/etc/profile(可以在终端使用以下命令行打开):
sudo gedit /etc/profile
在文件末尾加入CUDA环境变量,保存。
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后在终端执行以下命令使其生效:
source /etc/profile
然后,进入到/etc/ld.so.conf.d/文件夹下,执行以下命令,新建了一个cuda.conf文件
sudo gedit cuda.conf
在文件中写入并保存:
/usr/local/cuda/lib64
保存后使其生效:
sudo ldconfig
6.Build CUDA Sample
进入usr/local/cuda/samples,然后build samples,命令如下:
sudo make all -j4(4表示采用4核,当然如果你是8核你也可以用8)
继续进入到samples/bin/x86_64/linux/release目录下,在终端执行查询命令:
./deviceQuery
如果返回你电脑显卡信息,结尾有Result=PASS,则安装成功,否则,建议重启电脑再尝试查询命令。
7.安装caffe的基本依赖库
首先安装以下软件包括python,不过好像Ubuntu16.04已经自带了。
sudo apt-get install git
sudo apt-get install build-essential
sudo apt-get python
然后安装caffe依赖库,建议一个一个装
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 libatlas-base-dev
8.安装opencv
安装opencv可以选择源码安装和脚本安装,脚本安装OpenCV2.4.10比较方便 opencv安装包下载
下载安装包后,解压后进入Install-OpenCV/Ubuntu/2.4,然后执行脚本文件:
sudo ./opencv2_4_10.sh
编译时间比较长,可以去喝杯咖啡,编译到最后报了几个错,没有理会它,没有影响后面的使用。
9.配置caffe的python环境
先下载caffe-master包,下载后解压,进入caffe-master/python文件夹下,然后在终端执行:caffe-master下载
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install -r python/requirements.txt
为了后面能够使用python绘制caffe的网络模型等可视化操作,执行:
sudo apt-get install graphviz
sudo pip install pydot
然后
make pycaffe
10.编译caffe
进入到caffe-master文件夹下,复制配置文件,终端执行:
cp Makefile.config.example Makefile.config
打开Makefile.config文件,对以下几点去掉注释并修改:
USE_CUDNN := 1
USE_OPENCV := 1
USE_LMDB := 1
WITH_PYTHON_LAYER := 1
如果只进行以上修改最后编译会报关于hdf5的错,解决方案参照博客 编译caffe时hdf5报错
解决方案如下,首先在Makefile.config文件大概第85行,找到
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
并修改成
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
修改后保存,然后再打开Makefile文件,找到大概第173行
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
修改完保存,然后在终端caffe目录下执行编译:
make all -j4
make test -j4
make runtest -j4
如果没有报错,那么恭喜你成功了,如果没有成功,请根据报错内容仔细检查整个过程是否有遗漏,或者百度谷歌报错内容来得到解决方案。
11 绘制caffe网络模型
caffe的python目录下有一个draw_net.py是python绘制caffe网络模型的工具。在终端进入caffe的python目录下,执行:
python draw_net.py ../models/bvlc_alexnet/train_val.prototxt alexnet.png
就会在caffe的python生成alexnet网络模型可视化图像alexnet.png。
参考链接
http://blog.csdn.net/leo_xu06/article/details/53010900
http://caffe.berkeleyvision.org/install_apt.html