跨副本同步標準化和縮放輸入或激活。
用法
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。