caffe使用

caffe是一个卓越的CNN框架

caffe源码是Cpp语言的,基于一些外部的库,包括BLAS(矩阵计算),CUDA(GPU驱动),gflags,glog,boost,protobuf,hdf5,leveldb,lmdb等。

只要各个以来都安装完毕,编译的时候修改下caffe自带的Makefile.config(路径和编译选项的修改),即可编译整个工程。

caffe代码文件夹主要包括:

build  所有编译好的文件存放位置

data   数据文件夹

docs   教程和说明文件夹(建议好好阅读,部分内容讲的非常详细)

include   包含文件夹,头文件

examples  各种demo的文件夹,相关应用可以参考或者直接使用对应的demo和配置

mnist 手写汉字识别   cifar10  场景识别   imagenet 图片分类   cpp_classification 分类的cpp接口文件   feature_extraction提特征的demo文件夹

matlab  matlab对应的接口

python  python对应的接口

models  model文件的路径,一些训练好的model可以参考caffe官网model zoo:http://caffe.berkeleyvision.org/model_zoo.html

tools   一些工具

src  所有源代码存放位置

docs/tutorial 中的文件非常值得阅读,关于caffe 的架构和基本使用讲的很透彻,入门必读

caffe的使用包括 训练 和 识别 两个部分

总参考:

http://blog.csdn.net/hjimce/article/details/48933813 (强烈推荐)

http://blog.csdn.net/u014696921/article/details/52551364

http://blog.csdn.net/pirage/article/details/17553549

一、caffe训练流程:

1、准备训练数据

包括训练集,验证集两个文件夹的图片,和两个txt文件,txt文件中每行是图片名和图片标签

2、图片格式转化

caffe接收imdb,leveldb,hdf5等格式,推荐imdb,用caffe官方提供的convert_imageset脚本可以将图片转化为imdb,见这篇http://blog.csdn.net/hjimce/article/details/48933813

3、定义模型网络结构文件

例如deploy.prototxt、train_val.prototxt等,在caffe安装目录下的models文件夹下,官方提供了一些有名的CNN,如googlenet,alexnet等

参考:http://blog.csdn.net/u014202086/article/details/75226445

模型网络结构文件形如下图,第一行是模型网络的名字,接下来由一个一个layer组成,layer有输入层(data),卷积层,激励层,池化层,全连接层,输出层等组成。

网络结构文件中指定了训练数据(训练集+验证集)的路径,在输入层中指定。

py的caffe包提供了一些函数快速生成网络结构文件(见pdf)

4、定义solver.prototxt文件

在caffe安装目录下的models文件夹下,官方提供了一些有名的CNN,如googlenet,alexnet等

参考:http://blog.csdn.net/Yan_Joy/article/details/53079185

solver文件中主要是定义了模型训练过程中的一些参数,调参也就在这里进行

py的caffe包同样提供了生成solver文件的方法,见这篇http://wentaoma.com/2016/08/10/caffe-python-common-api-reference/

5、训练模型

./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

6、一些杂项

经过上面的5步,你就成功输出了网络结构文件、solver文件、训练得到的模型文件三个主要文件,但是要让模型效果更好,你还需要生成原始数据的均值文件、标签含义文件、bet.pickle文件,来为后面的模型使用者提供参考。

生成均值文件:

http://blog.csdn.net/victoriaw/article/details/53863565

http://blog.csdn.net/gavin__zhou/article/details/50365986

二、caffe识别流程

caffe识别关键就在构造分类器,caffe提供的分类器有两种caffe.Net和caffe.Classifier,现在一般用caffe.Classifier多一点,因为用Net的话还要多些一些数据处理的代码,而Classifier将这些代码封装到了其内部

使用caffe.Net的识别:

https://www.cnblogs.com/denny402/p/5685909.html

http://blog.csdn.net/summermaoz/article/details/64442707

使用caffe.Classifier的识别:

caffe web demo

http://blog.csdn.net/liyaohhh/article/details/50936862

使用caffe.Net批量识别图片

http://blog.csdn.net/fengzhongluoleidehua/article/details/79014671

https://www.cnblogs.com/yyxf1413/p/6339655.html

最新文章

  1. 【转】Windows 窗口层次关系
  2. Cannot forward after response has been committed
  3. SUID, SGID, SBIT
  4. UI控件闪灯
  5. Android中Animation 详细解读
  6. poj 2312 Battle City
  7. 关于2000W数据
  8. centos 6.4 安装firefox使用的flashplayer插件
  9. 测试linux和window下 jdk最大能使用多大内存
  10. MongoDB分片原理篇
  11. JS -- The Scope Chain 作用域链
  12. Android初级教程进程间的通信AIDL
  13. 使用BeautifulSoup
  14. 分析Linux内核5.0系统调用处理过程
  15. java 实现websocket
  16. android studio 设置安装不占用C盘
  17. C#程序中判断DEBUG和RELEASE状态
  18. django之创建第10-1个项目-图片上传并记录上传时间
  19. spring boot 自定义异常
  20. 迅雷7 纯净版v7.9.18.4724

热门文章

  1. 匿名内部类 , Iterable<T> 和 Iterator<T>
  2. bootstrap table 服务器端分页--ashx+ajax
  3. Centos6.5 --配置 vsftp server
  4. CentOS/Linux 网卡设置 IP地址配置永久生效
  5. C. Magic Five
  6. 微信小程序动态显示项目倒计时效果
  7. 快使用阿里云的maven仓库
  8. 第二百四十二节,Bootstrap列表组面板和嵌入组件
  9. SQL Server RAISERROR() 函数
  10. (转)reactor模式