caffe 中 BatchNorm layer设定
来源:互联网 发布:阿迪达斯淘宝 编辑:程序博客网 时间:2024/05/16 05:25
转载于http://blog.csdn.net/u012939857/article/details/70740283
BN层的设定一般是按照conv->bn->scale->relu的顺序来形成一个block。
关于bn,有一个注意点,caffe实现中的use_global_stats参数在训练时设置为false,测试时设置为true。
因为在训练时bn作用的对象是一个batch_size,而不是整个训练集,如果没有将其设置为false,则有可能造成bn后数据更加偏离中心点,导致nan或87.3365的问题。
caffe 中为什么bn层要和scale层一起使用
这个问题首先要理解batchnormal是做什么的。它其实做了两件事。
1) 输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。
2)y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。
那么caffe中的bn层其实只做了第一件事。scale层做了第二件事。
这样也就理解了scale层里为什么要设置bias_term=True,这个偏置就对应2)件事里的beta。
代码:
第一种情况,phase: TRAIN/TEST都不加 ,caffe会自动匹配去设置use_global_stats的值
layer {name: "conv1"type: "Convolution"bottom: "data" top: "conv1"param{lr_mult:1decay_mult:1}param{ lr_mult:2decay_mult:0} convolution_param{num_output:32kernel_size:5weight_filler{type:"xavier"}bias_filler{type:"constant"}}}layer { name: "BatchNorm1" type: "BatchNorm" bottom: "conv1" top: "conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 }} layer { name: "scale1" type: "Scale" bottom: "conv1" top: "conv1" scale_param { bias_term: true } } layer{name:"relu1"type:"ReLU"bottom:"conv1"top:"conv1"}第二种情况:加上use_global_stats, 测试的时候再改成true
layer { name: "BatchNorm1" type: "BatchNorm" bottom: "conv1" top: "conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param {use_global_stats: false}}
阅读全文
0 0
- caffe 中 BatchNorm layer设定
- BatchNorm layer设定
- caffe中的batchNorm层
- caffe中的batchNorm层
- caffe中的batchNorm层(caffe 中为什么bn层要和scale层一起使用)
- caffe常用层:batchNorm使用
- Caffe中Layer注册机制
- caffe中layer层介绍
- Caffe中Layer注册机制
- Caffe 中 BN(BatchNorm ) 层的参数均值、方差和滑动系数解读
- Caffe 中 BN(BatchNorm ) 层的参数均值、方差和滑动系数解读
- caffe中BatchNorm层和Scale层实现批量归一化(batch-normalization)注意事项
- caffe层解读系列——BatchNorm
- caffe学习笔记20-BatchNorm层分析
- Batchnorm
- batchnorm
- Caffe中新建Layer--改写Faster-RCNN的proposal layer
- Caffe中新建Layer--改写Faster-RCNN的proposal layer
- SQL 优化实例
- 关卡设计快速入门_6. 执行构建过程
- Hibernate之一对多单向外键关联(OneToMany)
- Unity3D 中的定制特性
- Codeforces-814E An unavoidable detour for home(DP)
- caffe 中 BatchNorm layer设定
- HttpServlet详解
- 词向量源码解析:(1)词向量(词表示)简单介绍
- drawImage问题
- 递归实现1-9之间添加"+"或"-"或""使得运算结果为100
- Java识别两张图片相识度
- Codeforces #430(div2) A. Kirill And The Game
- react.js框架Redux:初步认识
- java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState