Model cloning is similar to calling a model on new inputs, except that it creates new layers (and thus new weights) instead of sharing the weights of the existing layers.

clone_model(model, input_tensors = NULL, clone_function = NULL)

## Arguments

model Instance of Keras model (could be a functional model or a Sequential model). Optional list of input tensors to build the model upon. If not provided, placeholders will be created. Callable to be used to clone each layer in the target model (except InputLayer instances). It takes as argument the layer instance to be cloned, and returns the corresponding layer instance to be used in the model copy. If unspecified, this callable defaults to the following serialization/deserialization function: function(layer) layer$__class__$from_config(layer\$get_config()) By passing a custom callable, you can customize your copy of the model, e.g. by wrapping certain layers of interest (you might want to replace all LSTM instances with equivalent Bidirectional(LSTM(...)) instances, for example).