You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5 KiB

Callbacks

Ultralytics framework supports callbacks as entry points in strategic stages of train, val, export, and predict modes. Each callback accepts a Trainer, Validator, or Predictor object depending on the operation type. All properties of these objects can be found in Reference section of the docs.

Examples

Returning additional information with Prediction

In this example, we want to return the original frame with each result object. Here's how we can do that

def on_predict_batch_end(predictor):
    # results -> List[batch_size]
    _, _, im0s, _, _ = predictor.batch
    im0s = im0s if isinstance(im0s, list) else [im0s]
    predictor.results = zip(predictor.results, im0s)

model = YOLO(f'yolov8n.pt')
model.add_callback("on_predict_batch_end", on_predict_batch_end)
for (result, frame) in model.track/predict():
    pass

All callbacks

Here are all supported callbacks.

Trainer

on_pretrain_routine_start

on_pretrain_routine_end

on_train_start

on_train_epoch_start

on_train_batch_start

optimizer_step

on_before_zero_grad

on_train_batch_end

on_train_epoch_end

on_fit_epoch_end

on_model_save

on_train_end

on_params_update

teardown

Validator

on_val_start

on_val_batch_start

on_val_batch_end

on_val_end

Predictor

on_predict_start

on_predict_batch_start

on_predict_postprocess_end

on_predict_batch_end

on_predict_end

Exporter

on_export_start

on_export_end