Caffe – 一个基于C++编写的深度学习框架,由于其高效性和便捷性广泛应用于CV领域。它是由贾杨清在业余时间编写的一个框架,现在是由伯特利尔大学(BVLC)来进行维护和更新。

由于它出现的比较早,刚开始得到了广泛的应用,你会在许多学术论文中看到它的身影,当然由于它的高效性,它也成为许多公司和研究所的利器,可以用来进行“模型的部署”。尽管如今出现了许多强大的深度学习框架,但是caffe仍然很受欢迎,尤其是在CV领域。

在你使用了caffe之后,你会发现它非常简单,你需要做的就是“装载并转换数据类型”“构建自己的Model””编写相应的配置文件” “编写相应的部署文件”“编写一些额外的C++代码”。最常用到的应该是.prototxt文件,它常被用来构建Model,配置模型参数,部署模型。

它提供了python和matlab接口。你可以借助方便的python和matlab来加速你的开发过程。pycaffe是对应的python接口,里面封装了一些类接口,你只需要简单的调用或者编写一些新的类接口来扩展你自己的应用。matcaffe是matlab接口,它的接口和pycaffe很像,详细的内容可以看我后面更新的一些博客。

caffe有cpu版本和gpu版本,你需要根据自己的情况,选择合适的版本,本文介绍的是gpu版本。
好了,既然你知道了caffe,并且知道了它有什么用,下面就开始的配置过程吧。(知其然,更要知其所以然!)

1. 首先你需要下载caffe,你可以选择如下的几种方式
方式一:使用Git下载
git clone https://github.com/BVLC/caffe
方式二:本机下载--即使用浏览器进行下载
方式三:使用wget
wget https://github.com/BVLC/caffe
2. 解压当前的文件;
unzip xxx.zip
3. 重命名为caffe
mv xxx xxxx    # 即将文件xxx重新命名为xxxx
4. 安装依赖包:
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 libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
5. 因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config
sudo cp Makefile.config.example Makefile.config 
6. 打开并修改配置文件
sudo gedit Makefile.config 或者 sudo vim Makefile.config
#打开Makefile.config文件 根据个人情况修改文件:
a.若使用cudnn,则将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
b.若使用的opencv版本是3的,则将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
c.若要使用python来编写layer,则将
#WITH_PYTHON_LAYER := 1
修改为 WITH_PYTHON_LAYER := 1
d.重要的一项 :
将 # Whatever else you find you need goes here. 下面的
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为Ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.
注:我的建议改变a/b/c/d四项,具体的原因你会在后续的使用中体会到。
7. 修改makefile文件
打开makefile文件,做如下修改:将
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
8. 编辑/usr/local/cuda/include/host_config.h
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
9. 编译
sudo make all -j8 或者 sudo make all -j4
#-j根据自己电脑配置决定注:
1)这个过程会花费很长的时间,你需要耐心等待。
2)这个过程可能会出现许多错误,典型错误及其解决方案如下所示:
问题一:"fatal error: hdf5.h: 没有那个文件或目录"
解决方案:
step1:在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。将:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
stept2:在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial问题二:"libcudnn.so.5 cannot open shared object file: No such file or directory"
解决方案:将一些文件复制到/usr/local/lib文件夹下,注意自己CUDA的版本号!
1. sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
2. sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
3. sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
4. sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig
10. 运行测试
sudo make runtest
如果出现如下结果,表示安装成功。结果如下图所示:

11. 测试caffe是否安装成功 -- 这一步相当重要!!!
1)将终端定位到Caffe根目录
cd ~/caffe2)下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh3)将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh4)训练网络
./examples/mnist/train_lenet.sh
训练的时候可以看到损失与精度数值,如下图所示:

运行的结果是:0.9914 相当高的精确度!!!
注:这期间会产生大量的输出,包括训练网络和测试网络的架构,参数信息,以及迭代次数,损失率loss和学习率lr,准确率accuracy等,你可以通过观察这些参数来查看训练结果。
12. 配置Pycaffe
1)安装一些依赖包
sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
注:这里面安装了很多有用的工具,你会在后续的开发中使用到它。
2)sudo apt-get install protobuf-c-compiler protobuf-compiler3) 编译依赖库
cd ~/caffe     # 切换到你的caffe安装路径
make pycaffe   # 编译pycaffe4) 添加文件路径
sudo gedit /etc/profile 或者 sudo vim /etc/profile
在文件末尾添加:export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
source /etc/profile   # 使得配置生效5)测试pycaffe
python
import caffe
如果没有报错,表明Pycaffe安装成功!
13. 安装Matlab
1) 下载matlab,内容包括以下三部分:其中Crack为激活的补丁包,dvd1.iso和dvd2.iso为分包压缩的MATLAB镜像文件;

```
点击这个http://www.linuxidc.com/Linux/2013-12/93755.htm 链接关注 Linux公社官方微信,关注后回复数字142290。即可得到网友的分享密码。
如果取消关注Linux公社公众号,即使再次关注,也将无法提供本服务!
链接:http://pan.baidu.com/s/1kUD7G9p  密码:获得见上面的方法,地址失效请在下面留言。2) 将iso镜像文件挂载到linux中,执行下面命令:
sudo mkdir /media/matlab
sudo mount -o loop [path]R2016b_glnxa64_dvd1.iso  /media/matlab
# 这里 的[path]是指iso镜像的目录位置3) 开始安装MATLAB,先回到主目录
cd ~
4) sudo /media/matlab/install
5)接下来就是安装引导的图像界面了


选择Use a File Installtion Key,点击Next;


选择Yes,点击Next;


选择I have the File Installation Key for my license,然后输入Installation Key,Installation Key可以在Crack文件夹下的readme.txt中找到;
点击Next;

再选择安装自己所需的功能,然后就是半个小时到一个小时左右的等待了……进度条到90%左右的时候,会有一个请弹出DVD1,插入DVD2的提示,因为是分了两个iso压缩的,按照提示弹出dvd1.iso(只需右键图标选择弹出即可),把dvd2.iso同前面一样mount上去就可以了,安装会自动继续;安装完成之后,在MATLAB的安装目录下建一个“licenses”文件夹,将Crack文件夹中的license_standalone.lic拷贝进去(可能需要在终端sudo cp进行拷贝),同时,将Crack/R2016b/bin文件夹覆盖安装目录下的bin文件夹;6)安装Matlab支持包
sudo apt-get install matlab-support
注:中间可选使用这款软件的用户以及重命名GCC库,我把当前用户作为了使用这款产品的用户7) 激活Matlab
sudo matlab
打开Matlab,此时会提示进行激活,使用本地文件激活,选择“licenses”文件夹中刚刚拷贝的license_standalone.lic即可;8)使用
matlab 或者  sudo matlab

注:参考链接:Linux安装matlab

14. 配置matcaffe
1) cd ~/caffe
2) make all matcaffe
3) 将matcaffe加入Matlab搜索路径。在Caffe的根目录启动Matlab,在Matlab命令行中输入以下指令
Addpath ./matlab
4) make mattest   # 测试是否编译成功
注:在此之前需要你安装好Matlab。
注:
1)由于能力有限难免出现一些错误,还望大家多多包涵。
2)如果有任何问题,请发消息给我,大家一起学习,一起进步。
3)由于本博客是我自己原创,如果需要转载,请联系我,我会及时回复大家。谢谢。
邮箱:1575262785@qq.com

1
1

Linux16.04下配置Caffe,Pycaffe,matcaffe相关推荐

  1. Ubuntu16.04下配置caffe(亲测成功)

    前言: 历经一个国庆的折腾,终于成功在Ubuntu下搭建好了caffe,过程中遇到的坑真的是数不胜数,最大的一次坑是本来已经配置好了结果手残命令行一阵不知名命令之后电脑崩溃又得重装系统,结果装好系统再 ...

  2. ubuntu16.04下配置caffe无GPU

    1. 安装依赖项  1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5- ...

  3. Ubuntu17.10 下配置caffe 仅CPU i386可以直接apt install caffe-cpu,但是怎么运行mnist代码我懵逼了...

    Ubuntu16.04下配置caffe(仅CPU) 参考:http://blog.csdn.net/zt_1995/article/details/56283249 第二次配置caffe环境,依旧把之 ...

  4. Ubuntu 16.04下安装Caffe(GPU版本 GTX970)

    Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...

  5. ubuntu 14.04 java_Ubuntu14.04下配置Java环境

    Java环境配置网上已经有很多资料了,不过大多不适合初学者,Linux菜鸟更是不知所措了...Ubuntu14.04下配置Java环境,具体方案如下: Oracle官网上下载"jdk-8-l ...

  6. apache2+支持php7,Ubuntu14.04下配置PHP7.0+Apache2+Mysql5.7

    Apache 步骤一:安装apache ronyao@ubuntu:~$ sudo apt install apache2 安装好后,在浏览器上输入localhost(服务器端,请输入你的IP地址), ...

  7. vscode linux新建c语言,Ubuntu16.04下配置VScode的C/C++开发环境

    1. Vscode安装 Visual studio code是微软发布的一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器.第一种 ...

  8. linux arm移远重启4g,如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组)

    如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组) 如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组) 最近由于工作原因入手了移远的5G(RM500H工业模 ...

  9. Ubuntu 16.04下配置openWRT开发环境

    Ubuntu 16.04下配置openWRT开发环境 1.配置openwrt开发环境,本实验室在ubuntu16.04系统下测试 在编译之前我们先要搭建环境,ubuntu下OpenWrt编译环境需要安 ...

最新文章

  1. 压力传感器 ZNHM-I-5KG初步测试
  2. junit5_使用junit做其他事情
  3. debian7更换gcc版本的二种方法分享
  4. The server time zone value ‘XXXXXX’ is unrecognized or represents more than one time zone
  5. spring集成jndi_Spring应用程序与JNDI连接池的集成测试
  6. 知乎上(知乎上有一个完全错误的回答,下最好的正确评论)非常好的关于mAP,AP等目标检测参数的解释(原来之前我理解错了!!)
  7. 120多套各种类别微信小程序模板源码
  8. Linux 档案与目录管理
  9. QMC解码-某音乐解码
  10. 计算机网络密码用户名是什么,宽带连接的用户名和密码是什么
  11. 模块定义图(BDD)
  12. Hadoop是什么,主要由哪几个项目组成?
  13. 向量数据库极简教程 | A Gentle Introduction to Vector Databases
  14. 欢迎火狐FireFox正式进入中国
  15. 北洋网络口打印机设置
  16. QT简单实验——计算器
  17. colab的简单使用
  18. mysql 127.0.0.13306_MySQL 问题解决
  19. 星火视频网-linux arm视频教程
  20. 飞机3D轨迹绘制(经度-纬度-高度)

热门文章

  1. c语言编程运动会分数统计系统报告,独家稿件:定稿运动会分数统计系统设计报告_完整版...
  2. 美国人用什么android手机,美国人最爱的安卓手机:多年稳居榜首,与iPhone共分一杯羹...
  3. Docker——Docker Compose
  4. Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
  5. 关于json 转换BigDecimal精度丢失问题
  6. 利用dbms_backup_restore函数来恢复数据文件
  7. 附一张css hack
  8. SUSE各个系统版本安装saltstack方法
  9. [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
  10. 改变你人生态度的30个关键词