BatchNorm 动量约定 PyTorch

Posted

技术标签:

【中文标题】BatchNorm 动量约定 PyTorch【英文标题】:BatchNorm momentum convention PyTorch 【发布时间】:2018-06-28 23:24:39 【问题描述】:

batchnorm momentum convention (default=0.1) 是否与其他库一样正确,例如Tensorflow默认情况下似乎通常是0.9或0.99?或者我们只是使用了不同的约定?

【问题讨论】:

discuss.pytorch.org/t/batch-norm-momentum-default-value/11955 【参考方案1】:

看来pytorch中的参数化约定与tensorflow中的不同,所以pytorch中的0.1相当于tensorflow中的0.9。

更准确地说:

在张量流中:

running_mean = decay*running_mean + (1-decay)*new_value

在 PyTorch 中:

running_mean = (1-decay)*running_mean + decay*new_value

这意味着 PyTorch 中的 decay 值等同于 Tensorflow 中的 (1-decay) 值。

【讨论】:

以上是关于BatchNorm 动量约定 PyTorch的主要内容,如果未能解决你的问题,请参考以下文章

nn.BatchNorm讲解,nn.BatchNorm1d, nn.BatchNorm2d代码演示

caffe中应该如何使用“BatchNorm”层?

深入理解BatchNorm的原理代码实现以及BN在CNN中的应用

keras batchnorm 的测试性能很差

google batchnorm 资料总结

深度学习基础之BatchNorm和LayerNorm