前言:

最近在学习深度学习,最先要解决的当然是开源框架的环境安装了。之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建好Caffe环境跑别人的代码。这中间经历过很多弯路,开始是入了Ubuntu16.04的坑,很多教程都说GCC版本不匹配,需要降级,我也尝试过发现很多坑;另外,就是安装matlab版本的Caffe以及安装GPU版本的Caffe,都经历了很多的波折,这前后摸索大概花了半个月左右。最后发现Ubuntu14.04最适合安装Caffe环境。

于是,我想着既然GPU版本或者matlab版本的Caffe环境配置很多坑,为什么不先从最简单的CPU+Python版本开始配置呢?到后面对Caffe框架熟悉了或者有需要用matcaffe的时候,再去摸索GPU或者matlab版本的Caffe配置。这就是我写本博客的初衷,先写个配置Caffe CPU ONLY版本的博客教程,希望初学者不再对caffe环境配置谈虎色变。话不多说,开始我们的教程吧!

首先,说一下本教程适用的计算机系统环境,本人笔记本安装了Win7+Ubuntu14.04双系统。至于安装双系统,可以参考网上博客:https://www.jianshu.com/p/dfd9436956b9

我下载的Ubuntu14.04是Kyliin版本,这里附上下载链接,直接复制到迅雷就可以下载速度很快:http://cdimage.ubuntu.com/ubuntukylin/releases/14.04/release/ubuntukylin-14.04.5-desktop-amd64.iso

至于硬件嘛,由于安装的是CPU ONLY版本的Caffe,我觉得现在的计算机CPU基本上都可行吧,内存啥的也不是要求太高。

亲测教程:

至此,同学你应该装好了Ubuntu14.04了,对吧,那我继续手把手教你。

注意,此时装好Ubuntu14.04之后,不要换源,系统可能会提示你升级到Ubuntu16.04,你选择不升级。

此时,打开终端

Step1:输入以下代码:

sudo apt-get update

Step2:安装caffe必要依赖,记住每一步的依赖都要安装:

sudo apt-get install git

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

sudo apt-get install build-essential

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

sudo apt-get install libatlas-base-dev

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

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

Step3:官网拉取源码:

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

注意第三步如果终端下载太慢,可以将该网址

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

复制到浏览器地址栏,然后手动点击下载ZIP包,“caffe-master.zip”,之后解压到home文件夹即可,将解压出来的文件夹重命名为“caffe”。

Step4:安装第二部分依赖:

sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy

sudo apt-get install python-pip

sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn 

sudo apt-get install python-skimage python-h5py python-protobuf python-leveldb 

sudo apt-get install python-networkx python-nose python-pandas 

sudo apt-get install python-gflags Cython ipython 

sudo pip install --upgrade matplotlib

sudo apt-get update

Step5:修改配置文件:

cd caffe

cp Makefile.config.example Makefile.config
gedit Makefile.config

仅修改一处,将“CPU_ONLY”选项打开即可。

(注意:如果是Ubuntu16.04,除了修改上处外,还需修改以下地方:

加入后面的部分即可

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/hdf5/serial

)

Step6:编译及测试:

make all -j4

make test -j4
make runtest -j4
make pycaffe -j4
make distribute

测试时,输入以下代码:

cd /home/dylan/caffe/python
python
import caffe

其中”dylan“是我的Ubutnu用户名,更改为你自己的即可,如果不出错,就表示Caffe CPU+Python版本环境安装成功,恭喜!

Step7:在Mnist运行Lenet,第一个CNN的试炼!

获取数据源

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

修改在examples文件下的Mnist下的lenet_solver.prototxt中的solver_mode:CPU

sudo gedit ./examples/mnist/lenet_solver.prototxt
solver_mode: CPU

训练模型

./examples/mnist/train_lenet.sh

等待训练完成。至此,本教程结束。

后续:

本教程亲测成功,如有问题欢迎留言讨论。

本教程只针对初学者安装最简单的Caffe(CPU)+Python环境

本博主会再写后续Caffe初学者四部曲博客,尽请期待:

Caffe初学者第一部:Caffe(CPU)+Python教程

Caffe初学者第二部:Caffe(CPU)+Matlab教程

Caffe初学者第三部:Caffe(GPU)+Python教程

Caffe初学者第四部:Caffe(GPU)+Matlab教程

参考博客:

http://blog.csdn.net/wopawn/article/details/52302164

https://www.jianshu.com/p/dfd9436956b9

https://www.cnblogs.com/xuanxufeng/p/6016945.html

https://blog.csdn.net/u014696921/article/details/52156552

  

Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)的更多相关文章

  1. ubuntu16.04上安装配置DHCP服务的详细过程

    DHCP服务器是为客户端机器分配IP地址的,所有分配的IP地址都保存在DHCP服务器的数据库中.为了在子网中实现DHCP分配IP地址,需要在目标主机上安装配置DHCP服务 1. 安装DHCP服务 安装 ...

  2. [译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js

    原文链接为 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/ 由作者Jacob Nicholson 发表于October ...

  3. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  4. Ubuntu14.04上安装pip的方法

    在Ubuntu14.04上,建议通过下面的方法安装,这是一种通用的方法,也适用于Windows,当然在Windows下 手动下载下来就行了 wget https://bootstrap.pypa.io ...

  5. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  6. 在ubuntu14.04上安装openstack mitaka

    最近在工作环境安装部署了juno版本,在GE口测试网络性能不太满意,发现mitaka版本支持ovs-dpdk,于是抽时间安装实验一番. 参考官网的安装文档,先准备将mitaka版本安装好再配置ovs. ...

  7. AWS ec2的ubuntu14.04上安装git服务

    http://imerc.xyz/2015/11/13/Ubuntu-14-04%E4%B8%8AGit%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%90%AD%E5 ...

  8. 在Ubuntu14.04上安装WordPress4搭建技术博客

    1.安装LAMP环境 1.1 安装Apache2 1.2 安装MySQL5 1.3 安装PHP5 1.4 安装phpMyAdmin 2.初始化数据库 3.下载并配置WordPress 4.配置Apac ...

  9. [原创]在Linux系统Ubuntu14.04上安装部署docker。

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

随机推荐

  1. 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。

    基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别. 我还是喜欢基于Schema风格的Spring事务管理,但也有很多人在用基于@Tras ...

  2. for循环嵌套讲解:

    1.for循环嵌套讲解: class ForForDemo {     public static void main(String[] args)     {         //大圈套小圈思想: ...

  3. Ajax的简单使用

    仅介绍Ajax的使用,让入门小白快速上手 //请自行引入jQuery库文件 <script type="text/javascript"> $(function() { ...

  4. SpringBoot整合ElasticSearch实现多版本的兼容

    前言 在上一篇学习SpringBoot中,整合了Mybatis.Druid和PageHelper并实现了多数据源的操作.本篇主要是介绍和使用目前最火的搜索引擎ElastiSearch,并和Spring ...

  5. 【读书笔记】C++Primer---第二章

    1.C++基本数据类型:字符型.整型.浮点型等: 2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的 ...

  6. TabLayout:另一种Tab的实现方式

    http://blog.csdn.NET/aigestudio/article/details/47155769 在5.0以前我们想要实现像网易新闻客户端那样的的Tab可以有很多种选择: 比如古老的T ...

  7. 搭建centos7的开发环境2-单机版Hadoop2.7.3配置

    最近公司准备升级spark环境,主要原因是生产环境的spark和hadoop版本都比较低,但是具体升级到何种版本还不确定,需要做进一步的测试分析.这个任务对于大数据开发环境配置有要求,这里记录一下配置 ...

  8. 有关于二分搜索的常见问题(java实现)

    前言: 二分搜索是一个非常常见的面试题目,它具有非常广泛的用途.熟练的掌握二分搜索的基本形式和他的变式是非常重要的.接下来我们将使用java实现一些常见的有关二分搜索的问题. 具体内容: 1.二分搜索 ...

  9. python笔记:#013#高级变量类型

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  10. AE、AS调用时用代码提供许可(不需要添加LicenseControl控件)

    private void CheckBindLicense() { ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDe ...