最近因为各种原因,装过不少次Caffe,安装过程很多坑,为节省新手的时间,特此总结整个安装流程。

关于Ubuntu 版本的选择,建议用14.04这个比较稳定的版本,但是千万不要用麒麟版!!!比原版体验要差很多!!!

Caffe的安装过程,基本采纳 这篇文章 然后稍作改动,跳过大坑。

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明  http://www.linuxidc.com/Linux/2015-04/116444.htm

1. 安装开发依赖包

sudo apt-get install build-essential
sudo apt-get install vim cmake git
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

2. 安装CUDA

一般电脑都有双显卡:Intel 的集成显卡 + Nvidia 的独立显卡。要想两个显卡同时运行,需要关闭 lightdm 服务。

2.1 到 这里 下载安装包,选Linux x86 下的 Ubuntu 14.04, Local Package Installer,下载下来的文件为

  cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb

2.2 在BIOS设置里选择用Intel显卡来显示或作为主要显示设备

2.3 进入Ubuntu, 按 ctrl+alt+F1 ,登入自己的账号,然后输入以下命令

sudo service lightdm stop

2.4 安装 CUDA,cd 到安装包目录,输入以下命令:

sudo dpkg -i cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install cuda 

安装完后重启电脑。

3. 安装cuDNN

3.1 到这里注册下载

3.2 完后到下载目录,执行以下命令安装

tar -zxvf cudnn-7.0-linux-x64-v3.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 rm -rf libcudnn.so libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so

3.3 设置环境变量

gedit /etc/profile

在打开的文件尾部加上

PATH=/usr/local/cuda/bin:$PATH
export PATH

保存后执行以下命令使之生效

source /etc/profile

同时创建以下文件

sudo vim /etc/ld.so.conf.d/cuda.conf

内容是

/usr/local/cuda/lib64

保存后,使之生效

sudo ldconfig

4. 安装CUDA Sample 及 ATLAS

4.1 Build sample

cd /usr/local/cuda/samples
sudo make all -j8

我电脑是八核的,所以make 时候用-j8参数,大家根据情况更改,整个过程有点长,十分钟左右。

4.2 查看驱动是否安装成功

cd bin/x86_64/linux/release
./deviceQuery

出现以下信息则成功

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670"
CUDA Driver Version / Runtime Version 6.5 / 6.5
CUDA Capability Major/Minor version number: 3.0
Total amount of global memory: 4095 MBytes (4294246400 bytes)
( 7) Multiprocessors, (192) CUDA Cores/MP: 1344 CUDA Cores
GPU Clock rate: 1098 MHz (1.10 GHz)
Memory Clock rate: 3105 Mhz
Memory Bus Width: 256-bit
L2 Cache Size: 524288 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result = PASS

4.3 安装ATLAS

ATLAS是做线性代数运算的,还有俩可以选:一个是Intel 的 MKL,这个要收费,还有一个是OpenBLAS,这个比较麻烦;但是运行效率ATLAS < OpenBLAS < MKL

我就用ATLAS咯:

sudo apt-get install libatlas-base-dev 

5. 安装Caffe需要的Python包

网上介绍用现有的anaconda,我反正不建议,因为路径设置麻烦,很容易出错,而且自己安装很简单也挺快的。

首先需要安装pip

sudo apt-get install python-pip

再下载caffe,我把caffe放在用户目录下

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

再转到caffe的python目录,安装scipy

cd caffe/python
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

最后安装requirement里面的包,需要root权限

sudo su
for req in $(cat requirements.txt); do pip install $req; done

如果提示报错,一般是缺少必须的包引起的,直接根据提示 pip install <package-name>就行了。

安装完后退出root权限

exit 

6. 编译caffe

首先修改配置文件,回到caffe目录

cd ~/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config

这里仅需修改两处:

i) 使用cuDNN

# USE_CUDNN := 1 

这里去掉#,取消注释为

USE_CUDNN := 1 

ii) 修改python包目录,这句话

PYTHON_INCLUDE := /usr/include/python2.7 \
  /usr/lib/python2.7/dist-packages/numpy/core/include

改为

PYTHON_INCLUDE := /usr/include/python2.7 \
  /usr/local/lib/python2.7/dist-packages/numpy/core/include

因为新安装的python包目录在这里: /usr/local/lib/python2.7/dist-packages/

接下来就好办了,直接make

make all -j4
make test
make runtest
make pycaffe

这时候cd 到caffe 下的 python 目录,试试caffe 的 python wrapper安装好没有:

python
import caffe

如果不报错,那就说明安装好了。

---------------------------error fix-------------------------------
先拿make all测试,提示错误如下: make: protoc:命令未找到
make: *** [.build_release/src/caffe/proto/caffe.pb.h] 错误 127

solution: 编译以及安装protoc

那就下载protobuf吧,在github下载,解压

https://github.com/google/protobuf:

运行

$ ./autogen.sh

原来先要安装curl:额,貌似curl安装不成功那就跳过吧。因为curl祈祷的作用就是下载文件,但

https://googletest.googlecode.com/files/gtest-1.7.0.zip这个东西还是要下,那就直接下载吧,可能需要科学上网,这个方法那就八仙过海各显省通,我就不赘述。

下载好以后把压缩包移动过去。

找到对应位置注释掉curl

再次运行,提示错误

./autogen.sh: 40: ./autogen.sh: autoreconf: not found

原因是没安装 automake 工具

运行命令安装:sudo apt-get install autoconf automake libtool

再一次./autogen.sh,成功!然后依次运行以下命令

$ ./configure $ make $ make check $ make install
执行完make check以后出现:

就说明没什么问题了,就可以继续执行make install

执行完以后切换到caffe目录,先make clean一下,接着make all

Caffe Ubuntu14.04 64位 的最快安装 (cuda7.5 + cudnn7.0 2016最新)的更多相关文章

  1. Ubuntu14.04 64位机上安装cuda8.0 cudnn5.0操作步骤 - 网络资源是无限的

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  2. VisualBox ubuntu14.04 64位 android4.4.4源码编译总结

    转载请保留出处:http://www.cnblogs.com/wi100sh/p/4337907.html 折腾了好几天,今天终于编译通过,用了4个多小时,太不容易了.如下图所示: 软件环境 虚拟机: ...

  3. Ubuntu14.04(64位)安装ATI_Radeon_R7_M265显卡驱动

    电脑型号:Dell inspiron 14-5447 笔记本 显卡配置:集成显卡Intel核心显卡,Cpu是i5-4210U;独立显卡ATI_Radeon_R7_M265 网上关于ATI/Intel双 ...

  4. ubuntu14.04 64位 安装Tomcat

    ubuntu14.04 64位 安装Tomcat 1 下载Tomcat 在htt://www.tomcat.apache.org官网上下载apache-tomcat-7.0.57.tar.gz 2 解 ...

  5. ubuntu14.04 64位 安装eclipse

    ubuntu14.04 64位 安装eclipse 1 在官网上下载eclipse http://www.eclipse.org/downloads/下载eclipse-jee-luna-SR1-li ...

  6. ubuntu14.04 64位 安装JDK1.7

    ubuntu14.04 64位 安装JDK1.7 1 新建文件夹 youhaidong@youhaidong:~$ sudo mkdir /usr/lib/jvm 2 解压文件 youhaidong@ ...

  7. Ubuntu14.04 64位机上安装OpenCV2.4.13(CUDA8.0)版操作步骤

    Ubuntu14.04 64位机上安装CUDA8.0的操作步骤可以参考http://blog.csdn.net/fengbingchun/article/details/53840684,这里是在已经 ...

  8. Ubuntu14.04 64位机上安装cuda8.0+cudnn5.0操作步骤

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  9. ubuntu14.04 64位安装H3C iNode客户端

    环境: OS:ubuntu14.04LTS 64位 iNode: iNode2.40-R0162 for linux(iNode只有32位的,而且是很久以前的版本) 安装方法: 第一种: 检查本机是6 ...

随机推荐

  1. CentOS采用grub进 single状态

    当系统文件错误,有可能无法进入系统.或者您忘记了原来的系统password. 用这种方法可以,进single状态,编辑系统启动文件或更改的错误password. 1.重新启动系统. 2.按" ...

  2. Struts2_2_第一Struts2应用

    web.xml文件的配置与1同样. 1)HelloWorld类的代码: public class HelloWorldAction { private String message; public S ...

  3. Touch Punch在移动设备上面增加jQuery UI的触摸支持|Jquery UI 支持移动端 触摸滑动等

    jQuery UI是我们前台开发常用的UI前端类库,但是目前的jQuery UI用户界面类库在互动和widget上并不支持touch事件.这意味着你在桌面上设计的优雅的UI可能在触摸设备,例如,ipa ...

  4. android微信付费

    原文地址:http://blog.csdn.net/intbird 微信官方文档地址:t=resource/res_main_tmpl&verify=1&lang=zh_CN" ...

  5. [置顶] EasyMock的简单使用

    EasyMock总览 下面,我将讲述如何使用JUnit和EasyMock框架来进行单元测试. 在现实情况下,我们通常是在一些类里使用另外的一些类.在进行真正的测试之前,你可能需要做很多的工作,比喻说安 ...

  6. 【转】 教你如何创建类似QQ的android弹出菜单

    原文地址:http://www.apkbus.com/android-18034-1-1.html 大家可能看到android的自带的系统菜单比较难看,如图: 2011-12-4 23:13 上传 下 ...

  7. Value Object(值对象)如何使用 EF 进行正确映射

    DDD 领域驱动设计-Value Object(值对象)如何使用 EF 进行正确映射 写在前面 首先,这篇博文是用博客园新发布的 MarkDown编辑器 编写的,这也是我第一次使用,语法也不是很熟悉, ...

  8. TreeMap与TreeSet

    TreeMap与TreeSet TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素.实际上,由于NavigableMap只是一个接口,因此底层依然是使用TreeMap来 ...

  9. .NET面试问答集锦

    程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...

  10. RPC(Remote Procedure Call Protocol)

    远程过程调用协议: 1.调用客户端句柄:执行传送参数 2.调用本地系统内核发送网络消息 3.消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 ...