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)
。