message: Improve docstring of `clone_model`.
diff: @@ -387,22 +387,23 @@ def _clone_sequential_model(model, input_tensors=None, layer_fn=_clone_layer):
  @keras_export('keras.models.clone_model')
  def clone_model(model, input_tensors=None, clone_function=None):
  - """Clone any `Model` instance.
  + """Clone a Functional or Sequential `Model` instance.
  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.
  + Note that
  `clone_model` will not preserve the uniqueness of shared objects within the
  model (e.g. a single variable attached to two distinct layers will be
  restored as two separate variables).
  Args:
  model: Instance of `Model`
  - (could be a functional model or a Sequential model).
  + (could be a Functional model or a Sequential model).
  input_tensors: optional list of input tensors or InputLayer objects
  to build the model upon. If not provided,
  - placeholders will be created.
  + new `Input` objects will be created.
  clone_function: 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
  @@ -417,12 +418,32 @@ def clone_model(model, input_tensors=None, clone_function=None):
  Returns:
  An instance of `Model` reproducing the behavior
  of the original model, on top of new inputs tensors,
  - using newly instantiated weights. The cloned model might behave
  - differently from the original model if a custom clone_function
  + using newly instantiated weights. The cloned model may behave
  + differently from the original model if a custom `clone_function`
  modifies the layer.
  - Raises:
  - ValueError: in case of invalid `model` argument value.
  + Example:
  +
  + ```python
  + # Create a test Sequential model.
  + model = keras.Sequential([
  + keras.Input(shape=(728,)),
  + keras.layers.Dense(32, activation='relu'),
  + keras.layers.Dense(1, activation='sigmoid'),
  + ])
  + # Create a copy of the test model (with freshly initialized weights).
  + new_model = clone_model(model)
  + ```
  +
  + Note that subclassed models cannot be cloned, since their internal
  + layer structure is not known. To achieve equivalent functionality
  + as `clone_model` in the case of a subclassed model, simply make sure
  + that the model class implements `get_config()`
  + (and optionally `from_config()`), and call:
  +
  + ```python
  + new_model = model.__class__.from_config(model.get_config())
  + ```
  """
  with generic_utils.DisableSharedObjectScope():
  if clone_function is None:
  