为什么批标准化层需要张量流中的“训练”参数,但组标准化不需要

时间:2019-05-17 03:08:21

标签: tensorflow batch-normalization

我想在我的resnet模型中将批归一化更改为组归一化。 然后我在tensorflow中发现批处理规范化层需要一个参数“ is_training”,而组规范化则不需要该参数。谁能告诉我为什么?拜托。

Tensorflow API显示两层,如下所示:

批量归一化层

tf.contrib.layers.batch_norm(
    inputs,
    decay=0.999,
    center=True,
    scale=False,
    epsilon=0.001,
    activation_fn=None,
    param_initializers=None,
    param_regularizers=None,
    updates_collections=tf.GraphKeys.UPDATE_OPS,
    is_training=True,
    reuse=None,
    variables_collections=None,
    outputs_collections=None,
    trainable=True,
    batch_weights=None,
    fused=None,
    data_format=DATA_FORMAT_NHWC,
    zero_debias_moving_mean=False,
    scope=None,
    renorm=False,
    renorm_clipping=None,
    renorm_decay=0.99,
    adjustment=None
)

组归一化层

tf.contrib.layers.group_norm(
    inputs,
    groups=32,
    channels_axis=-1,
    reduction_axes=(-3, -2),
    center=True,
    scale=True,
    epsilon=1e-06,
    activation_fn=None,
    param_initializers=None,
    reuse=None,
    variables_collections=None,
    outputs_collections=None,
    trainable=True,
    scope=None
)

0 个答案:

没有答案