Caffe部署中的几个train-test-solver-prototxt-deploy等说明 (一)

2016-10-13 09:07 99人阅读 评论(0) 收藏 举报
 分类:
caffe(18) 

转载地址: http://blog.csdn.net/lg1259156776/article/details/52550830

本文只是自己学习一天的总结,如有不对的地方,欢迎指正!

欢迎大家转载,但请标明出处,谢谢!

1、*_train_test.prototxt文件

这是训练与测试网络配置文件

(1)在数据层中 参数include{

phase:TRAIN/TEST

}

TRAIN与TEST不能有“...”否则会报错,还好提示信息里,会提示哪一行出现了问题,如下图:

数字8就代表配置文件的第8行出现了错误

(2)卷积层和全连接层相似:卷积层(Convolution),全连接层(InnerProduct,容易翻译成内积层)相似处有两个【1】:都有两个param{lr_mult:1

decay_mult:1

}

param{lr_mult: 2

decay_mult: 0

}

【2】:convolution_param{}与inner_product_param{}里面的参数相似,甚至相同

(3)平均值文件*_mean.binaryproto要放在transform_param{}里,训练与测试数据集放在data_param{}里

2.*_deploy.prototxt文件

【1】*_deploy.prototxt文件的构造和*_train_test.prototxt文件的构造稍有不同首先没有test网络中的test模块,只有训练模块

【2】数据层的写法和原来也有不同,更加简洁:

input: "data"
input_dim: 1
input_dim: 3
input_dim: 32
input_dim: 32

注意红色部分,那是数据层的名字,没有这个的话,第一卷积层无法找到数据,我一开始没有加这句就报错。下面的四个参数有点类似batch_size(1,3,32,32)里四个参数

【3】卷积层和全连接层中weight_filler{}与bias_filler{}两个参数不用再填写,应为这两个参数的值,由已经训练好的模型*.caffemodel文件提供

【4】输出层的变化(1)没有了test模块测试精度(2)输出层

*_train_test.prototxt文件:

layer{
  name: "loss"
  type: "SoftmaxWithLoss"#注意此处与下面的不同
  bottom: "ip2"
  bottom: "label"#注意标签项在下面没有了,因为下面的预测属于哪个标签,因此不能提供标签
  top: "loss"
}

*_deploy.prototxt文件:

layer {
  name: "prob"
  type: "Softmax"
  bottom: "ip2"
  top: "prob"
}

***注意在两个文件中输出层的类型都发生了变化一个是SoftmaxWithLoss,另一个是Softmax。另外为了方便区分训练与应用输出,训练是输出时是loss,应用时是prob。

3、*_slover.prototxt

net: "test.prototxt"
#训练网络的配置文件
test_iter: 100
#test_iter 指明在测试阶段有多上个前向过程(也就是有多少图片)被执行。
在MNIST例子里,在网络配置文件里已经设置test网络的batch size=100,这里test_iter
设置为100,那在测试阶段共有100*100=10000 图片被处理
test_interval: 500
#每500次训练迭代后,执行一次test
base_lr: 0.01
#学习率初始化为0.01
momentum:0.9
#u=0.9
weight_decay:0.0005
#
lr_policy: "inv"
gamma: 0.0001
power: 0.75
#以上三个参数都和降低学习率有关,详细的学习策略和计算公式见下面
// The learning rate decay policy. The currently implemented learning rate
  // policies are as follows:
  //    - fixed: always return base_lr.
  //    - step: return base_lr * gamma ^ (floor(iter / step))
  //    - exp: return base_lr * gamma ^ iter
    - inv: return base_lr * (1 + gamma * iter) ^ (- power)
  //    - multistep: similar to step but it allows non uniform steps defined by
  //      stepvalue
  //    - poly: the effective learning rate follows a polynomial decay, to be
  //      zero by the max_iter. return base_lr (1 - iter/max_iter) ^ (power)
  //    - sigmoid: the effective learning rate follows a sigmod decay
  //      return base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
  // where base_lr, max_iter, gamma, step, stepvalue and power are defined
  // in the solver parameter protocol buffer, and iter is the current iteration.
display:100
#每100次迭代,显示结果
snapshot: 5000
#每5000次迭代,保存一次快照
snapshot_prefix: "path_prefix"
#快照保存前缀:更准确的说是快照保存路径+前缀,应为文件名后的名字是固定的
solver_mode:GPU
#选择解算器是用cpu还是gpu

批处理文件编写:

F:/caffe/caffe-windows-master/bin/caffe.exe train --solver=C:/Users/Administrator/Desktop/caffe_test/cifar-10/cifar10_slover_prototxt --gpu=all
pause

Caffe部署中的几个train-test-solver-prototxt-deploy等说明 (一)相关推荐

  1. Caffe部署中的几个train-test-solver-prototxt-deploy等说明二

    Caffe部署中的几个train-test-solver-prototxt-deploy等说明<二> 发表于2016/9/15 20:39:52  1049人阅读 分类: 神经网络与深度学 ...

  2. Caffe部署中的几个train-test-solver-prototxt-deploy等说明三

    Caffe部署中的几个train-test-solver-prototxt-deploy等说明<三> 2016-10-13 14:16 147人阅读 评论(0) 收藏 举报  分类: ca ...

  3. Caffe中对cifar10执行train操作

    参考Caffe source中examples/cifar10目录下内容. cifar10是一个用于普通物体识别的数据集,cifar10被分为10类,分别为airplane.automobile.bi ...

  4. Caffe中对MNIST执行train操作执行流程解析

    之前在 http://blog.csdn.net/fengbingchun/article/details/49849225 中简单介绍过使用Caffe train MNIST的文章,当时只是仿照ca ...

  5. 用MATLAB训练caffe,[转载]windows caffe部署训练+python调用全部流程

    原版caffe代码项目编译在windows下非常麻烦,还好微软集成了所有三方包之后放出了一个windows版本的,省了不少时间. 项目下载地址: https://github.com/Microsof ...

  6. caffe模型文件解析_「机器学习」截取caffe模型中的某层

    通常情况下,训练好的caffe模型包含两个文件: prototxt:网络结构描述文件,存储了整个网络的图结构: caffemodel:权重文件,存储了模型权重的相关参数和具体信息 对于某些大型的网络, ...

  7. caffe ssd中输入图片大小对于内存使用和运行时间的影响

    caffe ssd中输入图片大小对于内存使用和运行时间的影响 一.内存使用 环境为caffe下以imagenet为样本集训练resnset网络.       在初始化生成lmdb的create_ima ...

  8. 保障K8s部署中的安全性

    开发人员需要了解如何在容器化应用程序中嵌入控件,以及如何启用运行时保护机制以阻止黑客访问容器化系统. Kubernetes是当前流行和常用的容器编排工具之一.Kubernetes工作负载就像简单的ng ...

  9. xcode 中无法进行虚拟机调试_在软件部署中使用 strace 进行调试

    我最喜欢的用来解决"为什么这个软件无法在这台机器上运行?"这类问题的工具就是 strace. -- Simon Arneaud(作者) 我的大部分工作都涉及到部署软件系统,这意味着 ...

最新文章

  1. 城市列表简称JSON数据
  2. 笔记-项目沟通管理-规划沟通管理
  3. dorado 刷新_5.dorado查询开发:使用flushData方法 (T1)
  4. 惠新宸php教程_惠新宸:首位国人加入PHP语言官方开发组
  5. mysql group by自定义_mysql – GROUP BY和自定义顺序
  6. JEECG开源说明:JEECG 完全开源,不收任何费用,可以任用于商业!
  7. 会话,授权,认证概念解析
  8. mysql建表主键_常见的MySQL命令大全second
  9. 解决 ModuleNotFoundError: No module named ‘requests‘ 问题
  10. php构造方法什么时候使用,php:构造方法的说明详解
  11. OpenFeign实现微服务间的文件下载
  12. 人脸识别应用在美国受禁,因噎废食还是以人为本?
  13. 数据挖掘学习:站在巨人的肩膀上
  14. notes系统服务器地址,在Notes客户端和Domino服务器上,服务器地址的缓存(Cache)存放在哪里...
  15. electron-builder打包后没生成latest.yml文件问题
  16. 电子稳定程序系统--ESP
  17. pyqt5 制作壁纸切换工具实例 第二章
  18. USB2.0转TTL串口硬件实现
  19. IAR 修改工程名称
  20. 学习3D游戏建模的主要工具与技巧!

热门文章

  1. 下如何画出频率瀑布图_用maftools一行代码画出瀑布图
  2. tf.nn.embedding_lookup函数的用法
  3. linux go 安装
  4. tfs管理java代码_使用Intellij Idea连接Team Foundation Server (TFS)实现代码版本管理
  5. python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...
  6. 84. Leetcode 70. 爬楼梯 (动态规划-基础题)
  7. 258. Add Digits
  8. tensorboardX笔记:理解graph
  9. 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)
  10. 数据结构面试的常客,一文带你深入了解堆