Keras 2 API 文件 / 層 API / 層權重約束

層權重約束

[原始碼]

MaxNorm 類別

tf_keras.constraints.MaxNorm(max_value=2, axis=0)

最大範數權重約束。

約束每個隱藏單元的權重,使其範數小於或等於期望值。

也可透過捷徑函數 tf.keras.constraints.max_norm 取得。

參數

  • max_value:輸入權重的最大範數值。
  • axis:整數,沿著哪個軸計算權重範數。例如,在 Dense 層中,權重矩陣的形狀為 (input_dim, output_dim),設定 axis0 以約束每個長度為 (input_dim,) 的權重向量。在 data_format="channels_last"Conv2D 層中,權重張量的形狀為 (rows, cols, input_depth, output_depth),設定 axis[0, 1, 2] 以約束每個大小為 (rows, cols, input_depth) 的濾波器張量的權重。

[原始碼]

MinMaxNorm 類別

tf_keras.constraints.MinMaxNorm(min_value=0.0, max_value=1.0, rate=1.0, axis=0)

最小最大範數權重約束。

約束每個隱藏單元的權重,使其範數介於下限和上限之間。

也可透過捷徑函數 tf.keras.constraints.min_max_norm 取得。

參數

  • min_value:輸入權重的最小範數。
  • max_value:輸入權重的最大範數。
  • rate:強制約束的比率:權重將被重新縮放以產生 (1 - rate) * norm + rate * norm.clip(min_value, max_value)。實際上,這表示 rate=1.0 代表嚴格執行約束,而 rate<1.0 表示權重將在每個步驟中重新縮放,以緩慢地朝向期望區間內的值移動。
  • axis:整數,沿著哪個軸計算權重範數。例如,在 Dense 層中,權重矩陣的形狀為 (input_dim, output_dim),設定 axis0 以約束每個長度為 (input_dim,) 的權重向量。在 data_format="channels_last"Conv2D 層中,權重張量的形狀為 (rows, cols, input_depth, output_depth),設定 axis[0, 1, 2] 以約束每個大小為 (rows, cols, input_depth) 的濾波器張量的權重。

[原始碼]

NonNeg 類別

tf_keras.constraints.NonNeg()

約束權重為非負數。

也可透過捷徑函數 tf.keras.constraints.non_neg 取得。


[原始碼]

UnitNorm 類別

tf_keras.constraints.UnitNorm(axis=0)

約束每個隱藏單元的權重,使其具有單位範數。

也可透過捷徑函數 tf.keras.constraints.unit_norm 取得。

參數

  • axis:整數,沿著哪個軸計算權重範數。例如,在 Dense 層中,權重矩陣的形狀為 (input_dim, output_dim),設定 axis0 以約束每個長度為 (input_dim,) 的權重向量。在 data_format="channels_last"Conv2D 層中,權重張量的形狀為 (rows, cols, input_depth, output_depth),設定 axis[0, 1, 2] 以約束每個大小為 (rows, cols, input_depth) 的濾波器張量的權重。

[原始碼]

RadialConstraint 類別

tf_keras.constraints.RadialConstraint()

約束 Conv2D 核心權重在每個半徑上相同。

也可透過捷徑函數 tf.keras.constraints.radial_constraint 取得。

例如,以下 4x4 核心的期望輸出為:

    kernel = [[v_00, v_01, v_02, v_03],
              [v_10, v_11, v_12, v_13],
              [v_20, v_21, v_22, v_23],
              [v_30, v_31, v_32, v_33]]

是這個:

    kernel = [[v_11, v_11, v_11, v_11],
              [v_11, v_33, v_33, v_11],
              [v_11, v_33, v_33, v_11],
              [v_11, v_11, v_11, v_11]]

此約束可應用於任何版本的 Conv2D 層,包括 Conv2DTransposeSeparableConv2D,以及 "channels_last""channels_first" 資料格式。此方法假設權重張量的形狀為 (rows, cols, input_depth, output_depth)