这一段时间把caffe官网上的例子跑了一下,对caffe有了一个大概的了解。如果你想对caffe有个比较清晰的了解,建议认真阅读官网上的资料,尤其在caffe资料极少的情况下,这种方法是最有效的途径,可以让你少走许多弯路,不要上来就在网上随便找个教程配置环境,上来就想跑例子。。博主就是赤裸裸的例子,在配置环境的时候浪费了好多时间

一、caffe的基本组成 

一个caffe的工程主要包含两个部分:网络模型,参数配置,分别对应***.prototxt , ****_solver.prototxt文件。

网络模型:即定义你网络的每一层,下图是用caffe中 /python/draw_net.py画出的的siamese的模型,非常清晰

层包含:

DATA: 一般指输入层,包含数据路径,批处理数据大小batch_size,scale表示数据表示在[0,1],0.00390625即 1/255

CONVOLUATION:卷积层,blobs_lr:1 , blobs_lr:2分别表示weight 及bias更新时的学习率,这里权重的学习率为solver.prototxt文件中定义的学习率真,bias的学习率真是权重学习率的2倍,这样一般会得到很好的收敛速度。

num_output表示滤波的个数,kernelsize表示滤波的大小,stride表示步长,weight_filter表示滤波的类型

POOLING: 池化层

INNER_PRODUCT: 其实表示全连接,不要被名字误导

RELU:激活函数,非线性变化层 max( 0 ,x ),一般与CONVOLUTION层成对出现

SOFTMAX:

参数配置文件:

***_solver.prototxt文件定义一些模型训练过程中需要到的参数,比较学习率,权重衰减系数,迭代次数,使用GPU还是CPU等等

训练出的模型被存为***.caffemodel,可供以后使用。

二、使用caffe训练模型包含以下几个步骤:

  1. 准备数据
  2. 重建lmdb/leveldb文件,caffe支持三种数据格式输入:images, levelda, lmdb
  3. 定义.prototxt , solver.prototxt文件
  4. 训练模型

三、caffe中比较有用且基础的接口

1、训练模型,比如使用mnist的例子

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

2、观察各个阶段的运行时间可以使用

./build/tools/caffe time --model=models/bvlc_reference_caffenet/train_val.prototxt

3、使用已有模型提取特征

./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/imagenet_val.prototxt conv5 examples/_temp/features 10

conv5表示提取第五个卷积层的特征, examples/_temp/feaures表示存放结果的目录

4、对已有模型进行find-tuning,比如我们现在有一个1000类的分类模型,但目前我们的需求仅是20类,此时我们不需要重新训练一个模型,只需要将最后一层换成20类的softmax层,然后使用已有数据对原模型进行fine-tuning即可

 ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0

如果使用cpu模式,那么最后的-gpu省略

5、还有一个是python下面的接口,draw_net.py可以根据.prototxt文件将模式用图示的方法表示出来,博文开始的模型图即用该接口所绘

./python/draw_net.py ./examples/siamese/mnist_siamese.prototxt   ./examples/siamese/mnist_siamese.png

第一个参数为模型文件,第二个参数为所绘模型图的保存地址

四、运行caffe自带例子需要注意的问题

1、需要在caffe_root路径下执行所有操作,因为所有的操作都是基于该路径的,如数据的路径等

2、建议在sudo权限下执行,一般用户权限下执行时有时会报错

3、在运行程序前确定你的环境配置正确,以免在后面浪费时间,环境配置见caffe + ubuntu14.04 + cuda 6.5 无gpu配置

原文地址: http://www.cnblogs.com/dupuleng/articles/4242906.html

Caffe 初识,揭开面纱相关推荐

  1. 揭开面纱:Kubernetes架构详解

    [编者的话] 本文介绍了Kubernetes中的主要组件和各个组件的工作模式. 入门导论:Kubernetes组件和组件之间如何协同工作 本文讲的是揭开面纱:Kubernetes架构详解如果你正在实现 ...

  2. Wiki 2.0 网站 (Wikia) 今日揭开面纱

    数字好莱坞峰会 上,维基百科创始人Jimmy Wales的专访时,介绍了"创新的.社交化.更便捷的" Wikia.Wiki 2.0就此揭开面纱. 该网站具有如下特点: 整合社交工具 ...

  3. 沪上首座“区块链生态谷”揭开面纱!

    "蝶变"中的静安要建设国际一流的"数智经济城" 位于静安的市北高新园区 流传着这样一段诗歌: "依稀走马塘,泥丸沾青草. 汽笛鸣后蛙声起,一片风萧萧. ...

  4. 《上海市道路交通管理条例(修订草案)》揭开面纱,禁停黄线被固化

    备受上海市民关注的<上海市道路交通管理条例(修订草案)>揭开面纱. 截至2015年底,申城机动车实际保有量达430多万辆,各类非机动车总量突破1600万辆,注册机动车驾驶员650多万名,公 ...

  5. IBM z15揭开面纱,多项业界首创技术护航混合多云安全

    2019年10月24日,IBM在京举行新一代Z.LinuxONE发布盛典,正式推出全新企业平台z15,LinuxONE III和高端存储IBM DS8900F.z15是IBM历时四年研发的重磅产品,拥 ...

  6. Android Things揭开面纱

    来源:Google Android 开发者博客 发布者:Google 物联网开发顾问 Wayne Piekarski 物联网 (IoT) 将计算技术引入各类全新的设备.我们宣布对我们的物联网开发者平台 ...

  7. 华为鸿蒙基金,基金筛选:华为鸿蒙新版即将揭开面纱

    "如果有人拧熄了灯塔,我们怎么航行?"近日这句由华为创始人任正非发出的声音成为了眼下华为内部思考最多的话题. 尤其作为华为"三驾马车"之一的消费者业务部门,在接 ...

  8. 这样的设计太妙了!K8S 神秘架构终于揭开面纱!

    Kubernetes,希腊语,意舵手.有时简写为"K8s",其中"8"代表"K"和"s"之间的 8 个字母,是一个开源系 ...

  9. 谷歌物联网操作系统Android Things揭开面纱

    http://stock.10jqka.com.cn/usstock/20161214/c595518581.shtml 腾讯科技讯 安卓已经成为全世界最大的移动设备操作系统,渗透了全球八成五的智能手 ...

最新文章

  1. .NET C# 发送邮件内容嵌入图片
  2. mysql查询不同老师所教不同课程_mysql学习训练记录及笔记(二)
  3. dvd管理器java,简单DVD管理-java练习题
  4. DataTable不能通过已删除的行访问该行的信息解决方法
  5. 以监控为核心 实现安防智能化全面兼容
  6. mysql view在测试过程的应用
  7. 召回离线评估指标(二)
  8. VS2012连接数据库问题
  9. CISSP考试过程,备考过程巨详细!
  10. 联想V470 安装win7系统 经验
  11. java正则顿号怎么表示_3正则表达式3
  12. Windows10搭建EDK2环境
  13. E+H悬浮物测量传感器CUS51D-AAD1A3
  14. 酷狗计算机自动续费,怎么取消酷狗自动续费-APP自动续费关不了?可在微信支付宝这样操作!...
  15. java怎么实现华为云文字识别,华为云语音识别:一句话识别API调用
  16. C语言 - 隐式类型转换
  17. 禁止小红伞(Avira AntiVir)弹出广告
  18. 国仁网络资讯:抖音被降权、限流、警告了怎么办;触碰了抖音哪些违规行为。
  19. 7. Components
  20. 蓝牙无线远程更换语音mp3方案 支持spiflash和TF卡或者U盘

热门文章

  1. SQL SERVER2000中订阅与发布的具体操作
  2. DataGrid中添加背景
  3. 双向链表实现电话簿C++代码实现
  4. 吴恩达 coursera ML 第十五课总结+作业答案
  5. 现代谱估计:多窗口谱相关性
  6. CUDA学习笔记之程序优化
  7. leetcode_longest substring without repeating characters
  8. 【算法】一个简单的k均值(k-means)原理
  9. PHP中的else怎么用,php中ifelse与elseif使用区别实例介绍
  10. VTK修炼之道73:交互部件_Widget应用综述