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