§
    é&Vff&  ã                   óZ   — d dl mZ d dlmZ  ed¦  «         G d„ d¦  «        ¦   «         ZdS )é    )Úbackend)Úkeras_exportzkeras.callbacks.Callbackc                   óº   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚCallbacka/  Base class used to build new callbacks.

    Callbacks can be passed to keras methods such as `fit()`, `evaluate()`, and
    `predict()` in order to hook into the various stages of the model training,
    evaluation, and inference lifecycle.

    To create a custom callback, subclass `keras.callbacks.Callback` and
    override the method associated with the stage of interest.

    Example:

    >>> training_finished = False
    >>> class MyCallback(Callback):
    ...   def on_train_end(self, logs=None):
    ...     global training_finished
    ...     training_finished = True
    >>> model = Sequential([
    ...     layers.Dense(1, input_shape=(1,))])
    >>> model.compile(loss='mean_squared_error')
    >>> model.fit(np.array([[1.0]]), np.array([[1.0]]),
    ...           callbacks=[MyCallback()])
    >>> assert training_finished == True

    If you want to use `Callback` objects in a custom training loop:

    1. You should pack all your callbacks into a single `callbacks.CallbackList`
       so they can all be called together.
    2. You will need to manually call all the `on_*` methods at the appropriate
       locations in your loop. Like this:

    Example:

    ```python
    callbacks =  keras.callbacks.CallbackList([...])
    callbacks.append(...)
    callbacks.on_train_begin(...)
    for epoch in range(EPOCHS):
        callbacks.on_epoch_begin(epoch)
        for i, data in dataset.enumerate():
        callbacks.on_train_batch_begin(i)
        batch_logs = model.train_step(data)
        callbacks.on_train_batch_end(i, batch_logs)
        epoch_logs = ...
        callbacks.on_epoch_end(epoch, epoch_logs)
    final_logs=...
    callbacks.on_train_end(final_logs)
    ```

    Attributes:
        params: Dict. Training parameters
            (eg. verbosity, batch size, number of epochs...).
        model: Instance of `Model`.
            Reference of the model being trained.

    The `logs` dictionary that callback methods
    take as argument will contain keys for quantities relevant to
    the current batch or epoch (see method-specific docstrings).
    c                 ó"   — d | _         d | _        d S ©N)Úvalidation_dataÚ_model©Úselfs    úY/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/callbacks/callback.pyÚ__init__zCallback.__init__B   s   € Ø#ˆÔØˆŒˆˆó    c                 ó   — || _         d S r   )Úparams)r   r   s     r   Ú
set_paramszCallback.set_paramsF   s   € ØˆŒˆˆr   c                 ó   — || _         d S r   )r
   )r   Úmodels     r   Ú	set_modelzCallback.set_modelI   s   € ØˆŒˆˆr   c                 óš   — t          j         ¦   «         dk    r.t          | j        d¦  «        r| j                             ¦   «          | j        S )NÚjaxÚjax_state_sync)r   Úhasattrr
   r   r   s    r   r   zCallback.modelL   sJ   € åŒ?ÑÔ Ò%Ð%­'ØŒKÐ)ñ+
ô +
Ð%ð ŒK×&Ò&Ñ(Ô(Ð(ØŒ{Ðr   Nc                 ó   — dS )z;A backwards compatibility alias for `on_train_batch_begin`.N© ©r   ÚbatchÚlogss      r   Úon_batch_beginzCallback.on_batch_beginX   ó   € € € r   c                 ó   — dS )z9A backwards compatibility alias for `on_train_batch_end`.Nr   r   s      r   Úon_batch_endzCallback.on_batch_end[   r    r   c                 ó   — dS )ae  Called at the start of an epoch.

        Subclasses should override for any actions to run. This function should
        only be called during TRAIN mode.

        Args:
            epoch: Integer, index of epoch.
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   ©r   Úepochr   s      r   Úon_epoch_beginzCallback.on_epoch_begin^   r    r   c                 ó   — dS )a0  Called at the end of an epoch.

        Subclasses should override for any actions to run. This function should
        only be called during TRAIN mode.

        Args:
            epoch: Integer, index of epoch.
            logs: Dict, metric results for this training epoch, and for the
              validation epoch if validation is performed. Validation result
              keys are prefixed with `val_`. For training epoch, the values of
              the `Model`'s metrics are returned. Example:
              `{'loss': 0.2, 'accuracy': 0.7}`.
        Nr   r$   s      r   Úon_epoch_endzCallback.on_epoch_endj   r    r   c                 ó4   — |                       ||¬¦  «         dS )aÿ  Called at the beginning of a training batch in `fit` methods.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        ©r   N)r   r   s      r   Úon_train_batch_beginzCallback.on_train_batch_beginy   s#   € ð 	×Ò˜E¨ÐÑ-Ô-Ð-Ð-Ð-r   c                 ó4   — |                       ||¬¦  «         dS )aº  Called at the end of a training batch in `fit` methods.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Aggregated metric results up until this batch.
        r*   N)r"   r   s      r   Úon_train_batch_endzCallback.on_train_batch_endŠ   s#   € ð 	×Ò˜% dÐÑ+Ô+Ð+Ð+Ð+r   c                 ó   — dS )au  Called at the beginning of a batch in `evaluate` methods.

        Also called at the beginning of a validation batch in the `fit`
        methods, if validation data is provided.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   r   s      r   Úon_test_batch_beginzCallback.on_test_batch_beginš   r    r   c                 ó   — dS )a*  Called at the end of a batch in `evaluate` methods.

        Also called at the end of a validation batch in the `fit`
        methods, if validation data is provided.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Aggregated metric results up until this batch.
        Nr   r   s      r   Úon_test_batch_endzCallback.on_test_batch_end¬   r    r   c                 ó   — dS )aú  Called at the beginning of a batch in `predict` methods.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   r   s      r   Úon_predict_batch_beginzCallback.on_predict_batch_begin½   r    r   c                 ó   — dS )aµ  Called at the end of a batch in `predict` methods.

        Subclasses should override for any actions to run.

        Note that if the `steps_per_execution` argument to `compile` in
        `Model` is set to `N`, this method will only be called every
        `N` batches.

        Args:
            batch: Integer, index of batch within the current epoch.
            logs: Dict. Aggregated metric results up until this batch.
        Nr   r   s      r   Úon_predict_batch_endzCallback.on_predict_batch_endÌ   r    r   c                 ó   — dS )zþCalled at the beginning of training.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   ©r   r   s     r   Úon_train_beginzCallback.on_train_beginÚ   r    r   c                 ó   — dS )a.  Called at the end of training.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently the output of the last call to
              `on_epoch_end()` is passed to this argument for this method but
              that may change in the future.
        Nr   r7   s     r   Úon_train_endzCallback.on_train_endä   r    r   c                 ó   — dS )a  Called at the beginning of evaluation or validation.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   r7   s     r   Úon_test_beginzCallback.on_test_beginï   r    r   c                 ó   — dS )aC  Called at the end of evaluation or validation.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently the output of the last call to
              `on_test_batch_end()` is passed to this argument for this method
              but that may change in the future.
        Nr   r7   s     r   Úon_test_endzCallback.on_test_endù   r    r   c                 ó   — dS )a   Called at the beginning of prediction.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   r7   s     r   Úon_predict_beginzCallback.on_predict_begin  r    r   c                 ó   — dS )zúCalled at the end of prediction.

        Subclasses should override for any actions to run.

        Args:
            logs: Dict. Currently no data is passed to this argument for this
              method but that may change in the future.
        Nr   r7   s     r   Úon_predict_endzCallback.on_predict_end  r    r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Úpropertyr   r   r"   r&   r(   r+   r-   r/   r1   r3   r5   r8   r:   r<   r>   r@   rB   r   r   r   r   r      s¯  € € € € € ð9ð 9ðvð ð ðð ð ðð ð ð ð	ð 	ñ „Xð	ðJð Jð Jð JðHð Hð Hð Hð
ð 
ð 
ð 
ðð ð ð ð.ð .ð .ð .ð",ð ,ð ,ð ,ð ð ð ð ð$ð ð ð ð"ð ð ð ðð ð ð ðð ð ð ð	ð 	ð 	ð 	ðð ð ð ð	ð 	ð 	ð 	ðð ð ð ðð ð ð ð ð r   r   N)Ú	keras.srcr   Úkeras.src.api_exportr   r   r   r   r   ú<module>rJ      s}   ðØ Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -ð €Ð(Ñ)Ô)ðPð Pð Pð Pð Pñ Pô Pñ *Ô)ðPð Pð Pr   