New custom constraints are encouraged to subclass keras$constraints$Constraint directly.

Format

An R6Class generator object

Details

You can implement a custom constraint either by creating an R function that accepts a weights (w) parameter, or by creating an R6 class that derives from KerasConstraint and implements a call method.

Note

Models which use custom constraints cannot be serialized using save_model_hdf5(). Rather, the weights of the model should be saved and restored using save_model_weights_hdf5().

Methods

call(w)

Constrain the specified weights.

See also

Examples

if (FALSE) {
CustomNonNegConstraint <- R6::R6Class(
  "CustomNonNegConstraint",
  inherit = KerasConstraint,
  public = list(
    call = function(x) {
       w * k_cast(k_greater_equal(w, 0), k_floatx())
    }
  )
)

layer_dense(units = 32, input_shape = c(784),
            kernel_constraint = CustomNonNegConstraint$new())
}