MaxNorm
类tf_keras.constraints.MaxNorm(max_value=2, axis=0)
MaxNorm 权重约束。
约束每个隐藏单元的入射权重的范数小于或等于期望值。
也可以通过快捷函数 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)
MinMaxNorm 权重约束。
约束每个隐藏单元的入射权重的范数在较低边界和较高边界之间。
也可以通过快捷函数 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)
。