Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 )
1. 前言
本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为7.5,使用的NVIDIA驱动版本为352。
如果您使用的Pascal架构显卡,如GTX1080或者新ttx,则必须使用更高版本的驱动和CUDA 8。本教程不适于这种情况,请不要尝试。
Ubuntu每两年发布一次LTS版本(即长期支持版),所以现在已经发布了16.04 LTS版本。鉴于很多程序在新系统下的兼容性还没有测试,本教程依然介绍的是上一个LTS版本上安装Caffe的方法,随后会推出针对于Ubuntu 16.04和CUDA 8的教程。
本教程很多细节已经尽量详细,但是还是要求使用者有一定的Linux基础,后续可能会推出针对于Linux新用户的更为详细的教程。
2. 安装基础依赖项
sudo apt-get install build-essential
sudo apt-get install cmake git
3. 安装NVIDIA驱动和CUDA7.5
从NVIDIA官网下载CUDA 7.5的deb本地安装包:下载地址
点击如上的链接可以下载支持x86架构CPU和Ubuntu 14.04系统的deb本地安装包,大小约1.9GB,如果需要其他安装方式可以按官网教程进行。
下载完成后,使用Ctrl+Alt+F1进入虚拟控制台,然后输入用户名和密码登陆。
然后关闭lightdm
sudo /etc/init.d/lightdm stop
前往指定的目录,然后执行:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
CUDA安装包中含有NVIDIA显卡驱动程序,会自动安装。
安装完成之后重启:
sudo reboot
重启后后,需要添加环境变量。使用gedit打开如下文档:
sudo gedit /etc/profile
PS:只有在图形桌面环境下才能使用gedit,如果未启动图形界面请使用vim等基于命令行的编辑器。
在文件末尾添加:
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存完成后,执行如下命令使环境变量立即生效:
source /etc/profile
然后还需要添加lib的路径:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在文件中写入如下内容然后保存:
/usr/local/cuda/lib64
之后执行如下命令使之生效:
sudo ldconfig
PS:上面的命令使L-D-C-O-N-F-I-G!!! 无数的人把L写成了I,然后告诉我报错。
执行完了这些操作之后,还可以安装CUDA SAMPLES来检测CUDA是否运行正常,鉴于这不是CUDA编程教程,本教程暂不介绍。
4. 安装其他的一些依赖项
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
sudo apt-get install 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 libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
PS:复制粘贴太长的命令可以能因为浏览器的原因导致输入了多余的换行符,如果复制粘贴带有换行符的命令进Terminal,会被当做两条命令来执行,一定要注意这一点。
5. 安装ATLAS
本步骤可以用OpenBLAS或者Intel MKL替代。我在E5-2690v2+GTX780的平台上测试过这三种库,性能相差无几,这里就介绍其中一种:
sudo apt-get install libatlas-base-dev
然后自动安装完成即可。
目前intel MKL是收费软件,OpenBLAS可以免费下载和安装。如果使用这两种库,编译Caffe时要在Makefile.config做出对应的修改。
6. 安装OpenCV
如果不需要使用OpenCV 3的其他功能,使用步骤4中安装的libopencv-dev即可。如需单独安装OpenCV,请点击:这里。
7.下载Caffe
从GitHub上直接下载Caffe的最新版
git clone https://github.com/BVLC/caffe.git
也可以从Caffe的GitHub工程中下载Caffe的历史版本:
8. 安装Python
先安装相关依赖项
sudo apt-get install python-dev python-pip
转到下载的caffe的目录下,然后转到python目录下
cd python
执行如下命令:
for req in $(cat requirements.txt); do sudo pip install $req; done
等待其自动安装即可。
9. 安装MATLAB
下载正版matlab镜像。
打开Terminal,创建文件夹用于挂载matlab的iso:
sudo mkdir /mnt/matlab_iso
然后挂载matlab的iso(将红色内容根据自己的文件路径和名称进行修改):
sudo mount -o loop /路径/Matlab镜像文件名.iso /mnt/matlab_iso
然后执行安装程序:
sudo /mnt/matlab_iso/install
会弹出图形化安装界面,按步骤安装即可,跟windows上安装matlab基本一样。
安装完成后,需激活matlab。先前往matlab的安装路径(根据版本不同前往自己的安装路径即可,下面的路径仅是示范):
cd /usr/local/MATLAB/R2016a/bin
然后在sudo权限下启动matlab(如果不在sudo下启动,matlab会因权限不够无法激活):
sudo ./matlab
然后按图形界面提示激活即可。
激活之后,可以为matlab创建快捷方式:
sudo gedit /usr/share/applications/Matlab.desktop
写入以下内容:
[Desktop Entry]
Type=Application
Name=Matlab
GenericName=Matlab 2016a
Comment=Matlab:The Language of Technical Computing
Exec=sh /usr/local/MATLAB/R2016a/bin/matlab -desktop
Icon=/路径/Matlab.png
Terminal=false
Categories=Development;Matlab;
根据自己的情况更改图标路径和matlab路径。
10. 配置cuDNN
cuDNN需要注册Accelerated Computing Developer Program,然后可以免费下载。
cuDNN是The NVIDIA CUDA Deep Neural Network library,对于使用NVIDIA显卡进行深度学习加速具有很大的性能提升,非常建议添加。
在如下地址进行注册和下载,支持下载历史版本:
PS:另外,cuDNN在很多工程中兼容性较差,可能需要安装特定的历史版本。
下载后解压缩,转到该目录下,执行:
sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/
更新软链接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.
sudo ln -s libcudnn.so.5.1. libcudnn.so.
sudo ln -s libcudnn.so. libcudnn.so
PS:根据你下载的cuDNN版本不同,需要对如上命令中的版本进行修改,以上展示的命令是对于cuDNN 5.1.3的。
11. 编译Caffe
在caffe目录下,执行:
cp Makefile.config.example Makefile.config
然后打开Makefile.config,根据自己的需要修改相关参数。
如果使用了cuDNN,则如下行取消注释:
# USE_CUDNN :=
其他可以根据需求修改,比如安装了MATLAB后写入正确的MATLAB安装路径等。
然后进行编译:
make all -j10
make test
make runtest
PS:-j10指10线程同时编译,根据自己CPU的特点调整该参数,如果不了解自己CPU,直接执行make即可。
然后可以根据需求编译matcaffe和pycaffe:
make matcaffe
make pycaffe
然后caffe就安装结束了。
12. 运行minist demo
转到 Caffe 目录下
sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
sh examples/mnist/train_lenet.sh
如果运行正常,caffe就可以正常工作了。
本教程编写参考了如下教程,特此鸣谢:
http://www.cnblogs.com/platero/p/3993877.html
http://www.linuxidc.com/Linux/2011-01/31632.htm
http://blog.csdn.net/xanxus46/article/details/7945993
Caffe的官方网站是 http://caffe.berkeleyvision.org/
如果有任何问题可以联系我:yaoyaoliu AT outlook.com
最近更新于2016-09-23 16:59:31
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 )的更多相关文章
- NVIDIA DIGITS 学习笔记(NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0)
转自:http://blog.csdn.net/enjoyyl/article/details/47397505?from=timeline&isappinstalled=0#10006-we ...
- 【转载】Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南
洋洋洒洒一大篇,就没截图了,这几天一直在折腾这个东西,实在没办法,不想用Linux但是,为了Caffe,只能如此了,安装这些东西,遇到很多问题,每个问题都要折磨很久,大概第一次就是这样的.想想,之后应 ...
- UBUNTU 14.04 + CUDA 7.5 + CAFFE
这个也是困扰我很久的问题,之前用 http://www.cnblogs.com/platero/p/3993877.html 的安装方法,装了五六七八九十次,总是出问题. 后来找到了一种新的方法,一个 ...
- Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解
随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...
- VirtualBox 安装 Ubuntu 14.04 无法调节分辨率问题
基础环境 宿主系统:Windows 10 虚拟机系统:Ubuntu 14.04-32bit.Ubuntu 14.04-64bit VirtualBox:5.2.0 r118431 (Qt5.6.2) ...
- Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安装配置教程
http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 随着深度学习快速发展的浪潮,许多有兴趣的工作者都转入 ...
- Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0
由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对 ...
- Caffe + Ubuntu 15.04 + CUDA 7.0 安装以及配置
作为小码农的我,昨天就在装这个东东了,主要参考第一篇博文,但是过程发现很多问题,经过反反复复,千锤百炼,终于柳暗花明,我把这个caffe给搞定了,是故,我发布出来,后之来者,欲将有感于斯文~ 本分分为 ...
- rcnn caffe matlab 配置完成 14.04 cuda 7.0
http://blog.csdn.net/real_myth/article/details/42672381 各种痛苦.实验室网速还是龟速. 莫名其妙的错误. gcc还降级到4.7,opencv 3 ...
随机推荐
- 04_Swift2基础之类型安全和类型推测+字面量+类型别名
1. 类型安全和类型推测 1> 类型安全 Swift 是一个 _类型安全(type safe)_ 的语言.类型安全的语言可以让你清楚地知道代码要处理的值的类型.如果你的代码需要一个`String ...
- SOAPUI测试步骤之流量控制(Conditional Goto)
1. TestSteps流量控制 1.1.有条件转到一步步测试 Conditional Goto拥有任意数量的的XPath表达式伴随相应的目标测试步骤.这些被应用到在先前的采样测试的最近的响应; 配置 ...
- Codeforces Round #242 (Div. 2) B. Megacity
按照半径排序,然后累加人数直到超过百万 #include <iostream> #include <algorithm> #include <cmath> #inc ...
- ACM 对决
对决 时间限制:1000 ms | 内存限制:65535 KB 难度:0 描述 Topcoder要招进来了 n 个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中 ...
- 【BZOJ】3239: Discrete Logging
http://www.lydsy.com/JudgeOnline/problem.php?id=3239 题意:原题很清楚了= = #include <bits/stdc++.h> usi ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- osg实例介绍
osg实例介绍 转自:http://blog.csdn.net/yungis/article/list/1 [原]osgmotionblur例子 该例子演示了运动模糊的效果.一下内容是转自网上的:原理 ...
- linux查看memcached状态
一.使用memcache top脚本 memcache-top 是一个用 Perl 编写的命令行小工具,用来实时的获取 memcached 缓存服务器的详细信息,例如缓存命中率等.到官网下载脚本,放到 ...
- Find a way——L
L. Find a way Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave N ...
- C++ substr() 和 Java substring() 区别
Java和C++中都有关于子字符串的操作,C++中是substr(),Java中是substring(),两者的用法上稍有些区别,首先针对只有一个参数的情况: s.substr(start) 和 s. ...