New custom constraints are encouraged to subclass keras$constraints$Constraint
directly.
An R6Class generator object
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.
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()
.
call(w)
Constrain the specified weights.
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())
}