最新博客地址已转到:

  http://blog.csdn.net/zzlyw?viewmode=contents  

------------------------------------------------------------------------

  深度学习是研究计算机视觉的重要工具,尤其在图像分类与识别等领域有着划时代的意义。现在有很多深度学习框架,Caffe是比较常用的一个。本文讲述了Ubuntu 14.04(64位)系统下配置Caffe的基本步骤,参考了Caffe的官方网站   http://caffe.berkeleyvision.org/

一、系统环境配置

1.1 首先安装一般会用到的一些依赖项。打开Ubuntu系统的终端,输入以下命令:

  sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

  sudo apt-get install --no-install-recommends libboost-all-dev

1.2 下载并安装CUDA

  我使用的是CUDA 7.5,下载地址 https://developer.nvidia.com/cuda-downloads

  选择合适的版本,下载下来即可。按照图中的设置,下载到的是cuda_7.5.18_linux.run,默认下载路径是~/Downloads,在终端中输入:

  cd ~/Downloads

  sudo sh cuda_7.5.18_linux.run

  运行后会有一大段文字要让你浏览,终端左下角有进度显示,当前应为0%,没必要看,直接按Ctrl+C 跳过,之后要输入“accept”。在下边就是要你选择装各个组件。第一个显卡驱动不要装,剩下的可以都装上。注意,也不要自己另外装NVIDIA显卡的官方驱动,可能会产生系统启动循环登录不进去的情况。我当时就是因为装了最新版官方驱动,导致循环登录不进去,尝试了网络上各路大神给出的方法,均不奏效。最后放弃了,还是使用自带的开源显卡驱动好了。

--------------------------------------------------------------------

  但是即使这样可能会出现一些特殊情况。比如使用了自带的开源驱动,在编译完成caffe后,运行使用GPU的测试,会提示Error: CUDA driver version is insufficient for CUDA runtime version 。这表示显卡驱动没装对。这时只能不使用GPU,仅仅使用CPU了。当然如果非要使用GPU,只能安装合适的显卡驱动。正如前文所说,安装了最新的NVIDIA显卡驱动反而造成Ubuntu登录出现问题,那么应该装哪个驱动呢?

  打开System Settings ——> Software & Updates——> Additional Drivers

  我的显卡是GTX 760,列表中显示驱动中较新的是352.63版本。于是,我们可以从NVIDIA官网下载这个版本的显卡驱动。根据自己的显卡和系统来下载对应的驱动,我的下载后是NVIDIA-Linux-x86_64-352.63.run。 (一种更简单的方法是直接选中列表中的驱动版本,点击右下角的“Apply Changes”)

  安装方法:

  (1)先关闭桌面系统,终端输入:

   sudo service lightdm stop

  (2)然后按Ctrl + Alt +F1进入控制台,输入帐号和密码。cd到显卡驱动所在目录,然后执行:

  sudo  sh NVIDIA-Linux-x86_64-352.63.run

  按照指令一步步安装完即可。

  (3)中间可能会要求禁用自带开源驱动并重启计算机。重启后需要重复之前的步骤,然后一路确认就可以了。安装完成后,输入命令:

   sudo service lightdm start

  即可返回桌面系统。

--------------------------------------------------------------------

  安装完CUDA后,需要在用户环境变量中加入两个路径。在终端中输入

  gedit  ~/.bashrc

  在打开的文件末尾添加下面两行:

  export PATH=/usr/local/cuda-7.5/bin:$PATH
  export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH

  然后保存并退出。

1.3 安装BLAS

  终端中输入以下命令:

  sudo apt-get install libatlas-base-dev

1.4 安装Python(可选的)

  如果需要使用内置的Python,就需要运行下面的命令,这样在生成pycaffe接口时候才能有Python头文件:

  sudo apt-get install the python-dev

1.5 剩下的一些依赖

  sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

二、Caffe的安装和编译

2.1安装Caffe

  我们使用git来获取Caffe,如果之前没有安装git,需要手动安装

  sudo apt-get install git

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

2.2 配置Caffe

  进入caffe的根目录。我的caffe下载后在主目录下,所以在终端输入:

  cd ~/caffe

  然后创建一个配置文件。由于下载后的caffe目录中自带一个Makefile.config.example文件,所以只需要将该文件复制一份,并且命名为Makefile.config即可。所以可以使用下面的命令:

  cp Makefile.config.example Makefile.config

  关于Makefile.config的一些说明如下:

  (1)使用CPU&GPU加速的Caffe,不需要修改现有配置;

  (2)使用NVIDIA的cuDNN软件加速的Caffe,则需要取消 “USE_CUDNN := 1”之前的注释符号。需要指出的是,cuDNN并不是一定会比Caffe的GPU加速快。

  (3)仅使用CPU的Caffe,取消 “CPU_ONLY := 1”前面的注释。

2.3 编译Caffe

  我们使用CMake来编译Caffe,如果之前没有安装CMake,需要手动安装

  sudo apt-get install cmake

  然后一次执行以下命令(如果遇到执行权限问题,在命令前加上 sudo)

  mkdir build

  cd build

  cmake ..

  make all

  make install

  sudo make runtest

  至此,已经成功安装了Caffe。可以在一些数据集上进行一些测试了。

三、使用Caffe

3.1 准备MNIST 数据集

  首先准备数据集。我们需要从MNIST网站上下载数据并转换格式。为了简单,可以直接执行下面的命令:

  cd  ~/caffe

  ./data/mnist/get_mnist.sh

  ./examples/mnist/create_mnist.sh

  运行后,在caffe/examples/mnist下会生成mnist_train_lmdb和 mnist_test_lmdb两个文件夹。

3.2 执行结果

  终端输入以下命令(当前工作目录仍然是~/caffe):

  ./examples/mnist/train_lenet.sh

  运行这句命令,最后训练成功结果如图。

Ubuntu14.04 64位配置Caffe 教程(基于CUDA7.5)的更多相关文章

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

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

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

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

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

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

  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. [LeetCode] Container With Most Water 装最多水的容器

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). ...

  2. 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题

    一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...

  3. TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)

    状态说明 SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置. 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同 ...

  4. python基础-生成随机字符串方法

    python解释器示例 >>> import uuid >>> uuid.uuid1() UUID('ae6822e6-c976-11e6-82e0-0090f5f ...

  5. ios app 企业帐号发布,在浏览器中直接点击链接下载安装

    软件环境:Xcode 6.4 参考链接: 1.http://zxs19861202.iteye.com/blog/1997722 2.http://www.cnblogs.com/abl1992/p/ ...

  6. insmod模块的几种常见错误

    1. 与内核版本不一致 嵌入式开发时,模块编译时需要制定内核的路径,内核的版本信息会加入到模块文件中,如果目标板上运行的内核与模块中包含的内核版本对不上,加载就会出错,报如下错误:  insmod i ...

  7. MindManager中发送导图给别的用户的教程

    使用MindManager思维导图的过程中,可以发送当前导图.导图模版或导图主题给其他的Mindjet用户,如果正在进行导图审阅,发送导图时可以使用"供审阅"选项,本文具体为大家讲 ...

  8. StringTokenizer类的使用

    StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数. 1.构造函数 public StringTokenizer(String str) public Str ...

  9. input placeholder属性 样式修改(颜色,大小,位置)

    placeholder属性 样式修改 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  10. ARM-汇编指令集(总结)

    ARM汇编指令集 指令.伪指令 (汇编)指令:   是机器码的助记符,经过汇编器编译后,由CPU执行. (汇编)伪指令:用来指导指令执行,是汇编器的产物,最终不会生成机器码. 有两种不同风格的ARM指 ...