caffe中网络结构参数详解
prototxt文件是caffe的配置文件,用于保存CNN的网络结构和配置信息。prototxt文件有三种,分别是deploy.prototxt,train_val.prototxt和solver.prototxt。
1. solver.prototxt
- test_iter: 299
- test_interval: 224
- base_lr: 0.01
- display: 20
- max_iter: 6720
- lr_policy: "step"
- gamma: 0.1
- momentum: 0.9
- weight_decay: 0.0001
- stepsize: 2218
- snapshot: 224
- snapshot_prefix: "snapshot"
- solver_mode: GPU
- net: "train_val.prototxt"
- solver_type: SGD
test_iter:表示网络的测试迭代次数。网络一次迭代将一个batchSize的图片进行测试,所以为了能将validation集中所有图片都测试一次,这个参数乘以TEST的batchSize应该等于validation集中图片总数量。即test_iter*batchSize=val_num。
2. deploy.prototxt和train_val.prototx
- 在train_val.prototx中网络结构的data层有两种,分别为TRAIN和TEST。顾名思义,TRAIN是网络训练时后的数据结构,TEST是网络做验证时候的数据结构。一般来说TRAIN中的batchSize比TEST中的要大一些。
- 在train_val.prototx中的卷积层(Convolution)中存在学习率和权重衰减的参数,而deploy.prototxt文件中则没有这些参数(有些deploy.prototxt中仍然有这些参数,但是对测试不起任何作用)。
1.data层
- layer {
- name: "train-data"
- type: "Data"
- top: "data"
- top: "label"
- include {
- phase: TRAIN
- }
- transform_param {
- mirror: true
- crop_size: 227
- mean_file: "./mean.binaryproto"
- }
- data_param {
- source: "./train_db"
- batch_size: 128
- backend: LMDB
- }
- }
name: 这一层的名字。
2. Convolution层
- layer {
- name: "conv1"
- type: "Convolution"
- bottom: "data"
- top: "conv1"
- param {
- lr_mult: 1.0
- decay_mult: 1.0
- }
- param {
- lr_mult: 2.0
- decay_mult: 0.0
- }
- convolution_param {
- num_output: 96
- kernel_size: 11
- stride: 4
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0.0
- }
- }
- }
lr_mult: 学习率。这里有两个学习率,分别是filter和bias的学习率。
decay_mult::衰减系数。同样有两个,与学习率对应。
num_output::这一层输出的特征图个数。即改成用多少个卷积核去对输入做卷积操作。
kernel_size:卷积核的尺寸。
stride:卷积的步长。
weight_filler {
type: "gaussian"
std: 0.01
}
整个参数是表示使用高斯方法初始化滤波器参数。这里是使用均值为0,方差为0.01的高斯核。
bias_filler {
type: "constant"
value: 0.0
}
整个参数表示使用constant方法初始化偏置。即初始偏置设置为0。
caffe中还有RELU,pooling,LRN,SoftMax,IP,FC等层。这些层参数比较少,也比较容易理解。这里就不详细介绍了。
caffe中网络结构参数详解相关推荐
- Linux系统中网络配置详解
从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面来介绍 ...
- Linux系统中网络配置详解(一)
从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面 ...
- web中网络编程详解
今天是冬至,不知道大家有没有吃饺子啊! 每日分享: 冬至是北半球一年之中夜晚最长的一天,愿你在这个长夜能融化掉这一年所有的不快乐!! 目录: IP地址的介绍 端口和端口号的介绍 TCP的介绍 sock ...
- caffe中Makefile.config详解
## Refer to http://caffe.berkeleyvision.org/installation.html # Contributions simplifying and improv ...
- ubuntu系统写路由指令_在Ubuntu中如何查看网络路由表详解,
在Ubuntu中如何查看网络路由表详解, 什么是Linux中的路由和路由表? 路由的过程意味着IP包在网络上从一点传输到另一点.当你向某人发送电子邮件时,你实际上是在将一系列IP数据包或数据报从你的系 ...
- caffe网络模型各层详解(中文版)
caffe网络模型各层详解(中文版) 参考网址:https://blog.csdn.net/qq_34220460/article/details/79872830 一.数据层及参数 要运行caffe ...
- Docker(十四):Docker:网络模式详解
Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...
- Linux中iptraf命令详解(IP局域网监控工具)
2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03 作者:佚名 ...
- 用netstat查看网络状态详解
--用netstat查看网络状态详解 -----------------------------2014/06/11 一.Linux服务器上11种网络连接状态: ...
- ARP命令详解--网络命令详解二
显示和修改"地址解析协议 (ARP)"缓存中的项目.ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址.计算机上安装的每一个以太网或令牌环 ...
最新文章
- Jquery 将表单序列化为Json对象
- BATCH+VBS脚本自动执行命令
- mysql t-sql,将T-SQL转换为MySQL
- VS Tips]Visual Studio 2008 Toolbox里控件消失(#13119)的问题
- vscode用作markdown入门2--代码上下标目录字体
- CodeDom六--实体类生成示例
- RedHat as4 u2下的oracle9.2.0.4安装
- 陈国荣 计算机科学,信息工程中计算机网络技术的应用-网络技术论文-计算机论文(10页)-原创力文档...
- CUDA文件缺失解决方法——以cudart64_110.dll not found为例
- 计算机系军训口号四句霸气,军训口号四句霸气一班
- 个人信贷不良资产管理 难题亟待解决
- 如何给产品引流?一个产品如何做引流?
- java8我的世界打不开_我的世界打不开
- 史上最详细SharePoint 2007安装步骤图解新手教程
- Bitdefender 查询域名和url是否恶意
- Linux部署集群入门
- 【bitset乱搞】BZOJ3687 简单题
- AIGC用于智能写作的技术综述-达观数据
- leetcode 974 Subarray Sums Divisible by K
- 开放世界游戏中的大地图的实现——内容制作篇/异次元篇