美文网首页MxNet
5.10 Batch Normalization 关于批量归一化

5.10 Batch Normalization 关于批量归一化

作者: XBruce | 来源:发表于2019-11-28 10:20 被阅读0次

1.对全连接层做批量归⼀化:

将批量归⼀化层置于全连接层中的仿射变换和激活函数之间。

2.对卷积层做批量归⼀化

  • 批量归⼀化发⽣在卷积计算和激活函数之间。
  • 如果卷积计算输出多个通道,我们需要对这些通道的输出分别做批量归⼀化,且每个通道都拥有独⽴的拉伸和偏移参数,并均为标量
net = nn.Sequential()
net.add(nn.Conv2D(6, kernel_size=5),
        nn.BatchNorm(),
        nn.Activation('sigmoid'),
        nn.MaxPool2D(pool_size=2, strides=2),
        nn.Conv2D(16, kernel_size=5),
        nn.BatchNorm(),
        nn.Activation('sigmoid'),
        nn.MaxPool2D(pool_size=2, strides=2),
        nn.Dense(120),
        nn.BatchNorm(),
        nn.Activation('sigmoid'),
        nn.Dense(84),
        nn.BatchNorm(),
        nn.Activation('sigmoid'),
        nn.Dense(10))

查看第一个批量归一化层学习到的拉伸参数gamma和偏移参数beta。

net[1].gamma.data().reshape((-1,)), net[1].beta.data().reshape((-1,))
  • 在模型训练时,批量归一化利用小批量上的均值和标准差,不断调整神经网络的中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。
  • 对全连接层和卷积层做批量归一化的方法稍有不同。
  • 批量归一化层和丢弃层一样,在训练模式和预测模式的计算结果是不一样的。
  • batchnorm主要是让收敛变快,但对acc影响不大

相关文章

网友评论

    本文标题:5.10 Batch Normalization 关于批量归一化

    本文链接:https://www.haomeiwen.com/subject/tyyvwctx.html