跨副本同步标准化和缩放输入或激活。
用法
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
(整数元组,不包括样本轴)。
输出形状:
与输入的形状相同。
相关用法
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代码示例
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代码示例
- Python tf.keras.layers.experimental.RandomFourierFeatures用法及代码示例
- Python tf.keras.layers.experimental.EinsumDense用法及代码示例
- Python tf.keras.layers.InputLayer用法及代码示例
- Python tf.keras.layers.serialize用法及代码示例
- Python tf.keras.layers.Dropout用法及代码示例
- Python tf.keras.layers.maximum用法及代码示例
- Python tf.keras.layers.LayerNormalization用法及代码示例
- Python tf.keras.layers.Conv2D用法及代码示例
- Python tf.keras.layers.RepeatVector用法及代码示例
- Python tf.keras.layers.Multiply用法及代码示例
- Python tf.keras.layers.Activation用法及代码示例
- Python tf.keras.layers.Conv1D用法及代码示例
- Python tf.keras.layers.CategoryEncoding用法及代码示例
- Python tf.keras.layers.subtract用法及代码示例
- Python tf.keras.layers.Subtract用法及代码示例
- Python tf.keras.layers.ZeroPadding3D用法及代码示例
- Python tf.keras.layers.MaxPool3D用法及代码示例
- Python tf.keras.layers.Dot用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.experimental.SyncBatchNormalization。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。