MaxNorm
類別tf_keras.constraints.MaxNorm(max_value=2, axis=0)
最大範數權重約束。
約束每個隱藏單元的權重,使其範數小於或等於期望值。
也可透過捷徑函數 tf.keras.constraints.max_norm
取得。
參數
Dense
層中,權重矩陣的形狀為 (input_dim, output_dim)
,設定 axis
為 0
以約束每個長度為 (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
取得。
參數
(1 - rate) * norm + rate * norm.clip(min_value, max_value)
。實際上,這表示 rate=1.0 代表嚴格執行約束,而 rate<1.0 表示權重將在每個步驟中重新縮放,以緩慢地朝向期望區間內的值移動。Dense
層中,權重矩陣的形狀為 (input_dim, output_dim)
,設定 axis
為 0
以約束每個長度為 (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
取得。
參數
Dense
層中,權重矩陣的形狀為 (input_dim, output_dim)
,設定 axis
為 0
以約束每個長度為 (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
層,包括 Conv2DTranspose
和 SeparableConv2D
,以及 "channels_last"
或 "channels_first"
資料格式。此方法假設權重張量的形狀為 (rows, cols, input_depth, output_depth)
。