рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн ultralytics/utils/callbacks/base.py

рдиреЛрдЯ

рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ https://github.com/ultralytics/ultralytics/рдмреВрдБрдж/рдореБрдЦреНрдп/ultralytics/utils/callbacks/base.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдпреЛрдЧрджрд╛рди рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ ЁЯЫая╕Пред ЁЯЩП рдзрдиреНрдпрд╡рд╛рдж !



ultralytics.utils.callbacks.base.on_pretrain_routine_start(trainer)

рдкреНрд░реАрдЯреНрд░реЗрдирд┐рдВрдЧ рд░реВрдЯреАрди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_pretrain_routine_start(trainer):
    """Called before the pretraining routine starts."""
    pass



ultralytics.utils.callbacks.base.on_pretrain_routine_end(trainer)

рдкреНрд░реАрдЯреНрд░реЗрдирд┐рдВрдЧ рд░реВрдЯреАрди рдЦрддреНрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_pretrain_routine_end(trainer):
    """Called after the pretraining routine ends."""
    pass



ultralytics.utils.callbacks.base.on_train_start(trainer)

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_start(trainer):
    """Called when the training starts."""
    pass



ultralytics.utils.callbacks.base.on_train_epoch_start(trainer)

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_epoch_start(trainer):
    """Called at the start of each training epoch."""
    pass



ultralytics.utils.callbacks.base.on_train_batch_start(trainer)

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_batch_start(trainer):
    """Called at the start of each training batch."""
    pass



ultralytics.utils.callbacks.base.optimizer_step(trainer)

рдЬрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЛрдИ рдХрджрдо рдЙрдард╛рддрд╛ рд╣реИ рддреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def optimizer_step(trainer):
    """Called when the optimizer takes a step."""
    pass



ultralytics.utils.callbacks.base.on_before_zero_grad(trainer)

рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_before_zero_grad(trainer):
    """Called before the gradients are set to zero."""
    pass



ultralytics.utils.callbacks.base.on_train_batch_end(trainer)

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_batch_end(trainer):
    """Called at the end of each training batch."""
    pass



ultralytics.utils.callbacks.base.on_train_epoch_end(trainer)

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_epoch_end(trainer):
    """Called at the end of each training epoch."""
    pass



ultralytics.utils.callbacks.base.on_fit_epoch_end(trainer)

рдкреНрд░рддреНрдпреЗрдХ рдлрд┐рдЯ рдпреБрдЧ (рдЯреНрд░реЗрди + рд╡реИрд▓) рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_fit_epoch_end(trainer):
    """Called at the end of each fit epoch (train + val)."""
    pass



ultralytics.utils.callbacks.base.on_model_save(trainer)

рдореЙрдбрд▓ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_model_save(trainer):
    """Called when the model is saved."""
    pass



ultralytics.utils.callbacks.base.on_train_end(trainer)

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_train_end(trainer):
    """Called when the training ends."""
    pass



ultralytics.utils.callbacks.base.on_params_update(trainer)

рдЬрдм рдореЙрдбрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_params_update(trainer):
    """Called when the model parameters are updated."""
    pass



ultralytics.utils.callbacks.base.teardown(trainer)

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдлрд╛рдбрд╝ рдХреЗ рджреМрд░рд╛рди рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def teardown(trainer):
    """Called during the teardown of the training process."""
    pass



ultralytics.utils.callbacks.base.on_val_start(validator)

рд╕рддреНрдпрд╛рдкрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_val_start(validator):
    """Called when the validation starts."""
    pass



ultralytics.utils.callbacks.base.on_val_batch_start(validator)

рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрдпрд╛рдкрди рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_val_batch_start(validator):
    """Called at the start of each validation batch."""
    pass



ultralytics.utils.callbacks.base.on_val_batch_end(validator)

рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрдпрд╛рдкрди рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_val_batch_end(validator):
    """Called at the end of each validation batch."""
    pass



ultralytics.utils.callbacks.base.on_val_end(validator)

рд╕рддреНрдпрд╛рдкрди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_val_end(validator):
    """Called when the validation ends."""
    pass



ultralytics.utils.callbacks.base.on_predict_start(predictor)

рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_predict_start(predictor):
    """Called when the prediction starts."""
    pass



ultralytics.utils.callbacks.base.on_predict_batch_start(predictor)

рдкреНрд░рддреНрдпреЗрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдмреИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_predict_batch_start(predictor):
    """Called at the start of each prediction batch."""
    pass



ultralytics.utils.callbacks.base.on_predict_batch_end(predictor)

рдкреНрд░рддреНрдпреЗрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдмреИрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_predict_batch_end(predictor):
    """Called at the end of each prediction batch."""
    pass



ultralytics.utils.callbacks.base.on_predict_postprocess_end(predictor)

рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдмрд╛рдж рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_predict_postprocess_end(predictor):
    """Called after the post-processing of the prediction ends."""
    pass



ultralytics.utils.callbacks.base.on_predict_end(predictor)

рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_predict_end(predictor):
    """Called when the prediction ends."""
    pass



ultralytics.utils.callbacks.base.on_export_start(exporter)

рдЬрдм рдореЙрдбрд▓ рдирд┐рд░реНрдпрд╛рдд рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_export_start(exporter):
    """Called when the model export starts."""
    pass



ultralytics.utils.callbacks.base.on_export_end(exporter)

рдореЙрдбрд▓ рдирд┐рд░реНрдпрд╛рдд рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def on_export_end(exporter):
    """Called when the model export ends."""
    pass



ultralytics.utils.callbacks.base.get_default_callbacks()

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде default_callbacks рд╢рдмреНрджрдХреЛрд╢ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд▓реМрдЯрд╛рдПрдБ.

рджреЗрддрд╛:

рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
defaultdict

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ default_callbacks рдФрд░ рдЦрд╛рд▓реА рд╕реВрдЪрд┐рдпреЛрдВ рд╕реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯрдбрд┐рдХреНрдЯред

рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def get_default_callbacks():
    """
    Return a copy of the default_callbacks dictionary with lists as default values.

    Returns:
        (defaultdict): A defaultdict with keys from default_callbacks and empty lists as default values.
    """
    return defaultdict(list, deepcopy(default_callbacks))



ultralytics.utils.callbacks.base.add_integration_callbacks(instance)

рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдПрдХреАрдХрд░рдг рдХреЙрд▓рдмреИрдХ рдЬреЛрдбрд╝реЗрдВред

рдкреИрд░рд╛рдореАрдЯрд░:

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо рдЪреВрдХ
instance (Trainer, Predictor, Validator, Exporter)

'рдХреЙрд▓рдмреИрдХ' рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рдХреЙрд▓рдмреИрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреАред

рдЖрд╡рд╢реНрдпрдХ
рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб ultralytics/utils/callbacks/base.py
def add_integration_callbacks(instance):
    """
    Add integration callbacks from various sources to the instance's callbacks.

    Args:
        instance (Trainer, Predictor, Validator, Exporter): An object with a 'callbacks' attribute that is a dictionary
            of callback lists.
    """

    # Load HUB callbacks
    from .hub import callbacks as hub_cb

    callbacks_list = [hub_cb]

    # Load training callbacks
    if "Trainer" in instance.__class__.__name__:
        from .clearml import callbacks as clear_cb
        from .comet import callbacks as comet_cb
        from .dvc import callbacks as dvc_cb
        from .mlflow import callbacks as mlflow_cb
        from .neptune import callbacks as neptune_cb
        from .raytune import callbacks as tune_cb
        from .tensorboard import callbacks as tb_cb
        from .wb import callbacks as wb_cb

        callbacks_list.extend([clear_cb, comet_cb, dvc_cb, mlflow_cb, neptune_cb, tune_cb, tb_cb, wb_cb])

    # Add the callbacks to the callbacks dictionary
    for callbacks in callbacks_list:
        for k, v in callbacks.items():
            if v not in instance.callbacks[k]:
                instance.callbacks[k].append(v)





2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-08
рд▓реЗрдЦрдХ: рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1), рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (3), рд▓рд╛рдлрд┐рдВрдЧ-рдХреНрдпреВ (1)