guodong's blog

master@zhejiang university
   

tensorflow BN(batchNorm)的使用

https://www.cnblogs.com/hrlnw/p/7227447.html

注意第4点。关于training参数,官方定义

  • training: Either a Python boolean, or a TensorFlow boolean scalar tensor (e.g. a placeholder). Whether to return the output in training mode (normalized with statistics of the current batch) or in inference mode (normalized with moving statistics). NOTE: make sure to set this parameter correctly, or else your training/inference will not work properly.

参考https://stackoverflow.com/questions/50047653/set-training-false-of-tf-layers-batch-normalization-when-training-will-get-a

当training为false时,均值方差使用的时储存的均值和方差,而不是这个batch的均值和方差。同时这个储存的值不会更新,默认初始化均值和方差分别时0,1. 当训练时如果training为false,那么就相当于没有进行BN操作。

当training为true时,均值方差是根据batch计算得到,对于其中的超参数moving average,默认值是0.99, 太大,根据经验可以调0.9。




上一篇:
下一篇:没有了

头像

guodong

没有评论


你先离开吧:)



发表评论

电子邮件地址不会被公开。 必填项已用*标注