Keras 2 API 文件 / 層 API / 正規化層 / 群組正規化層

群組正規化層

[來源]

GroupNormalization 類別

tf_keras.layers.GroupNormalization(
    groups=32,
    axis=-1,
    epsilon=0.001,
    center=True,
    scale=True,
    beta_initializer="zeros",
    gamma_initializer="ones",
    beta_regularizer=None,
    gamma_regularizer=None,
    beta_constraint=None,
    gamma_constraint=None,
    **kwargs
)

群組正規化層。

群組正規化將通道劃分為群組,並計算每個群組內的平均值和變異數以進行正規化。從經驗上來看,如果學習率隨著批次大小線性調整,則在各種小批次大小中,其準確性比批次正規化更穩定。

與層正規化的關係:如果群組數量設定為 1,則此操作幾乎與層正規化相同(詳情請參閱層正規化文件)。

與實例正規化的關係:如果群組數量設定為輸入維度(群組數量等於通道數),則此操作與實例正規化相同。

參數

  • groups:整數,群組正規化的群組數量。可以在 [1, N] 範圍內,其中 N 是輸入維度。輸入維度必須可被群組數量整除。預設值為 32
  • axis:整數或列表/元組。要進行正規化的軸或軸。通常,這是特徵軸/軸。剩下的軸通常是批次軸/軸。-1 是輸入中的最後一個維度。預設值為 -1
  • epsilon:加到變異數上的小浮點數,以避免除以零。預設值為 1e-3
  • center:如果為 True,則將 beta 的偏移量加到正規化的張量。如果為 False,則忽略 beta。預設值為 True
  • scale:如果為 True,則乘以 gamma。如果為 False,則不使用 gamma。當下一層是線性層時(例如,nn.relu),可以禁用此選項,因為縮放將由下一層完成。預設值為 True
  • beta_initializer:beta 權重的初始化器。預設值為零。
  • gamma_initializer:gamma 權重的初始化器。預設值為一。
  • beta_regularizer:beta 權重的可選正規化器。預設為 None。
  • gamma_regularizer:gamma 權重的可選正規化器。預設為 None。
  • beta_constraint:beta 權重的可選約束。預設為 None。
  • gamma_constraint:gamma 權重的可選約束。預設為 None。# 輸入形狀 任意。當將此層用作模型中的第一層時,請使用關鍵字參數 input_shape(整數元組,不包括樣本軸)。# 輸出形狀 與輸入相同。

呼叫參數

  • inputs:輸入張量(任意階)。
  • mask:mask 參數是一個張量,用於指示計算平均值和變異數時輸入張量中每個位置的權重。

參考文獻:- Yuxin Wu & Kaiming He, 2018