Caffee 安装过程

1.安装依赖包

$ 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
$ sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.安装caffe

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

3.编译caffe

$ cd caffe
$ cp Makefile.config.example Makefile.config (复制一份Makefile.config文件)

在Makefile.config文件中把CPU_ONLY := 1的注释给去掉,就是去掉前面的#号

接下来在caffe根目录下执行下面命令

$ make all

在这个命令后,我遇到了一个报错信息,

./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

这是hdf5路径问题造成的,可以通过下面命令来获得hdf5的路径,

$ sudo find / -name hdf5.h

我找到的hdf5.h的路径为:/usr/include/hdf5/serial/hdf5.h,于是在makefile.config文件中,把文件改成下面所示:

再执行一遍上述命令,继续报错,这次是/usr/bin/ld: cannot find -lhdf5

于是同上面一个处理 去找libhdf5.so

配置文件改为:

LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial

​ /usr/local/lib /usr/lib

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial

​ /usr/local/include

/usr/bin/ld: cannot find -lcblas

/usr/bin/ld: cannot find -latlas

解决

sudo apt-get install libatlas-base-dev

接着执行下面命令:

make test

最后,

$ make runtest

4.编译python接口

安装pip

$ sudo apt-get install python-pip

执行安装依赖

根据caffe/python目录下的requirements.txt中列出的清单安装即可。

fortran编译器(gfortran)使为了安装scipy,否则会报错。

cd ~/caffe
sudo apt-get install gfortran
cd ./python
for req in $(cat requirements.txt); do pip install $req; done

回到caffe根目录

sudo pip install -r python/requirements.txt

编译pycaffe接口

make pycaffe -j81

此时报错

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录
12

于是,输入如下命令即可

sudo apt-get install python-numpy
import sys
sys.path.append("/(你的caffe路径)/caffe/python")
sys.path.append("/(你的caffe路径)/caffe/python/caffe")

PS:永久性添加python路径:

cd /usr/lib/python2.7/dist-packages
sudo echo mycaffe.pth #建立一个mycaffe.pth文件
sudo gedit mycaffe.pth #编辑文件

开始python2 import caffe

报错:ImportError: No module named skimage.io

解决:

sudo apt-get install python-skimage

报错:ImportError: No module named google.protobuf.internal

conda install protobuf

还是没有解决:

接着找:

sudo apt-get install python-protobuf

成功了!

接下来开始测试:

Mnist 数据集获取:

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

2、修改配置

修改该目录下的prototxt扩展名配置文件

修改./examples/mnist/lenet_solver.prototxt

定位到最后一行:solver_mode: GPU,将GPU改为CPU。 使用CPU进行测试

3、运行

执行文件命令:

sudo sh ./examples/mnist/train_lenet.sh

报错:./train_lenet.sh: 4: ./train_lenet.sh: ./build/tools/caffe: not found

重新编译

sudo make all

显示: nothing to be done for all

最终训练完的模型存储为一个二进制的protobuf文件:

    ./examples/mnist/lenet_iter_10000.caffemodel

这个模型就可以用来直接使用了

突然就可以使用了。。。

重新执行

sudo sh ./examples/mnist/train_lenet.sh

最好加time 看看所用时间

开心,还好是cpu版本的,一点一点问题解决了

主要参考博客:

博客1

博客2

Caffe cpu版本 Linux配置命令及搭建的更多相关文章

  1. Windows上快速编译caffe CPU版本

    windows上快速安装配置Caffe的 cpu_only环境. 一:安装环境: 1.windows10: 2.Visual Studio2013: 3.Caffe版本:http://github.c ...

  2. Linux常用命令及搭建测试环境

    题外话:三大操作系统------Linux.Unix.Windows,Unix系统如常见的Mac OS,Linux的很多命令跟Unix是通用的,所以就有一些开发人猿喜欢用苹果的原因.Linux发行版特 ...

  3. Deb版本Linux配置Selenium+Chrome+Java实现自动化测试

    1.安装chrome sudo apt-get install libxss1 libappindicator1 libindicator7 wget https://dl.google.com/li ...

  4. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  5. linux top命令中各cpu占用率含义

    linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...

  6. LINUX查看硬件配置命令

    LINUX查看硬件配置命令   系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinf ...

  7. Linux - CentOS6.5服务器搭建与初始化配置详解(下)

    传送带:Linux - CentOS6.5服务器搭建与初始化配置详解(上) 继续接着上面的安装,安装完后会出现下面界面 点击reboot重启 重启后可以看到下面的tty终端界面  因为这就是最小化安装 ...

  8. Linux SVN服务器的搭建配置及分支的创建与合并

    第一步:通过yum命令安装svnserve,命令如下: >yum -y install subversion 若需查看svn安装位置,可以用以下命令: >rpm -ql subversio ...

  9. Golang入门教程(十七)Linux/Windows下快速搭建和配置NSQ

    前言 NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub,其当前最新版本是0.3.1版.NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消 ...

随机推荐

  1. Apache Kafka源码分析 – Replica and Partition

    Replica 对于local replica, 需要记录highWatermarkValue,表示当前已经committed的数据对于remote replica,需要记录logEndOffsetV ...

  2. c++ caffe 输出 activation map 、 层参数

    python输出activation map与层参数:https://blog.csdn.net/tina_ttl/article/details/51033660 caffe::Net文档: htt ...

  3. python中yield使用

    16.yield使用   列表推导与生成器表达式   当我们创建了一个列表的时候,就创建了一个可以迭代的对象: >>> squares=[n*n for n in range(3)] ...

  4. Linux进程虚拟地址空间管理2

    2017-04-12 前篇文章对Linux进程地址空间的布局以及各个部分的功能做了简要介绍,本文主要对各个部分的具体使用做下简要分析,主要涉及三个方面:1.MMAP文件的映射过程 2.用户 内存的动态 ...

  5. myeclipse中更改web项目在tomcat中部署的路径

    右键点击项目名称,选择属性properties,选择myeclipse->web.更改web context-root就可以.

  6. django高级之爬虫基础

    目录: 爬虫原理 requests模块 beautifulsoup模块 爬虫自动登陆示例 一.爬虫原理 Python非常适合用来开发网页爬虫,理由如下:1.抓取网页本身的接口相比与其他静态编程语言,如 ...

  7. MySQL协议分析(1)

    MySQL协议分析 此阶段的协议分析是在未压缩未加密情况下的协议分析 思路: 结合Oracle官网和自己用wireshark抓的网络数据包进行协议分析 官网说明 mysql包共分为4段,格式如下: 第 ...

  8. 使用LocationManager来获取移动设备所在的地理位置信息

    在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息.看如下实例:新建android应用程序TestLocation. 1.activity_main.x ...

  9. springCloud--1

    电影微服务是服务消费者,用户微服务是服务提供者. Springcloud对eureka的支持很好,eureka本身是一个基于REST的服务, Eureka里面有一个注册表,Application Cl ...

  10. SiteMesh使用(2.4.2)

    SiteMesh是一个网页布局和修饰的框架.我理解的是在一个母版页上引入页面各个位置的信息,从而拼接成一个页面展示出来.它定义了一个过滤器,把页面统一加上头部和底部. 我的项目是在springmvc中 ...