当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.keras.layers.experimental.SyncBatchNormalization用法及代码示例


跨副本同步标准化和缩放输入或激活。

继承自:LayerModule

用法

tf.keras.layers.experimental.SyncBatchNormalization(
    axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True,
    beta_initializer='zeros', gamma_initializer='ones',
    moving_mean_initializer='zeros',
    moving_variance_initializer='ones', beta_regularizer=None,
    gamma_regularizer=None, beta_constraint=None, gamma_constraint=None, **kwargs
)

参数

  • axis 整数,应该归一化的轴(通常是特征轴)。例如,在带有 data_format="channels_first"Conv2D 层之后,在 BatchNormalization 中设置 axis=1
  • momentum 移动平均线的动量。
  • epsilon 小浮点数添加到方差中以避免除以零。
  • center 如果为 True,则将 beta 的偏移量添加到归一化张量。如果为 False,则忽略 beta
  • scale 如果为真,乘以 gamma 。如果为 False,则不使用 gamma。当下一层是线性的(例如 nn.relu )时,可以禁用此函数,因为缩放将由下一层完成。
  • beta_initializer Beta 权重的初始化程序。
  • gamma_initializer 伽马权重的初始化器。
  • moving_mean_initializer 移动均值的初始化器。
  • moving_variance_initializer 移动方差的初始化程序。
  • beta_regularizer beta 权重的可选正则化器。
  • gamma_regularizer 伽马权重的可选正则化器。
  • beta_constraint Beta 权重的可选约束。
  • gamma_constraint 伽马权重的可选约束。

通过在训练模型的所有设备上同步全局批次统计信息,将批次标准化应用于每个批次的前一层的激活。有关批量标准化的具体细节,请参阅tf.keras.layers.BatchNormalization 层文档。

如果在使用 tf.distribute 策略跨设备/工作人员训练模型时使用此层,则将有一个 allreduce 调用来聚合每个训练步骤中所有副本的批处理统计信息。如果没有 tf.distribute 策略,该层的行为类似于常规的 tf.keras.layers.BatchNormalization 层。

示例用法:

strategy = tf.distribute.MirroredStrategy()

with strategy.scope():
  model = tf.keras.Sequential()
  model.add(tf.keras.layers.Dense(16))
  model.add(tf.keras.layers.experimental.SyncBatchNormalization())

调用参数:

  • inputs:输入张量(任意等级)。
  • training:Python 布尔值,指示层应该在训练模式还是推理模式下运行。
    • training=True:该层将使用当前批次输入的均值和方差对其输入进行归一化。
    • training=False:该层将使用在训练期间学习的移动统计数据的均值和方差对其输入进行归一化。

输入形状:

随意的。将此层用作模型中的第一层时,请使用关键字参数input_shape(整数元组,不包括样本轴)。

输出形状:

与输入的形状相同。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.experimental.SyncBatchNormalization。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。