当我们在网络中使用BN是,在训练和测试时归一化时使用的均值和方差不同的:
训练时:是在每个batch中计算均值和方差,
而测试时是使用训练时得到的每个batch的均值和方差的平均值。
即:

在tensorflow中加入BN时需要
训练时将BN层中的is_training 设置为Ture
测试时将BN层中的is_training 设置为Flase
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
train_op = optimizer.minimize(loss)
本文详细解释了在网络中使用批标准化(Batch Normalization, BN)层的工作原理。特别指出,在训练阶段,BN层会在每个批次内计算均值和方差;而在测试阶段,则采用训练过程中各批次均值和方差的平均值。此外,文中还提供了TensorFlow中实现BN层的具体代码示例。
3222

被折叠的 条评论
为什么被折叠?



