tfl.linear_layer.LinearConstraints

Applies monotonicity constraints and normalization to TFL Linear layer.

Monotonicity is specified per input dimension in which case learned weight for those dimensions is guaranteed to be either non negative for increasing or non positive for decreasing monotonicity.

Monotonic dominance can be specified for any pair of dimensions referred to as dominant and weak dimensions such that the effect (slope) in the direction of the dominant dimension to be greater than that of the weak dimension for any point. Both dominant and weak dimensions must be increasing.

Range dominance can be specified for any pair of dominant and weak dimensions such that the range of possible outputs to be greater if one varies the dominant dimension than if one varies the weak dimension for any point. We require the slope of the dominant dimension scaled by its input range to be greater than the slope of the weak dimension similarly scaled by its input range. Both dimensions must have the same direction of monotonicity and their input min and max must be provided.

Weights can be constrained to have norm 1.

monotonicities Same meaning as corresponding parameter of Linear.
monotonic_dominances Same meaning as corresponding parameter of Linear.
range_dominances Same meaning as corresponding parameter of Linear.
input_min Same meaning as corresponding parameter of Linear.
input_max Same meaning as corresponding parameter of Linear.
normalization_order Same meaning as corresponding parameter of Linear.

Methods

from_config

Instantiates a weight constraint from a configuration dictionary.

Example:

constraint = UnitNorm()
config = constraint.get_config()
constraint = UnitNorm.from_config(config)

Args
config A Python dictionary, the output of get_config.

Returns
A tf.keras.constraints.Constraint instance.

get_config

View source

Standard Keras get_config() method.

__call__

View source

Applies constraints to w.

Args
w Tensor which represents weights of TFL linear layer. Must have shape: (len(self.monotonicities), 1).

Raises
ValueError if shape of w is not (len(self.monotonicities), 1).

Returns
Tensor w with monotonicity constraints and normalization applied to it.