跳至内容

回调

回调

Ultralytics 框架支持将回调作为 train、val、export 和 predict 模式战略阶段的入口点。每个回调都接受一个 Trainer, ValidatorPredictor 对象,具体取决于操作类型。这些对象的所有属性都可以在文档的 "参考 "部分找到。



观看: 掌握Ultralytics YOLOv8 :回调

实例

通过预测返回更多信息

在本例中,我们希望在每个结果对象中返回原始帧。我们可以这样做

from ultralytics import YOLO


def on_predict_batch_end(predictor):
    """Handle prediction batch end by combining results with corresponding frames; modifies predictor results."""
    _, image, _, _ = predictor.batch

    # Ensure that image is a list
    image = image if isinstance(image, list) else [image]

    # Combine the prediction results with the corresponding frames
    predictor.results = zip(predictor.results, image)


# Create a YOLO model instance
model = YOLO(f'yolov8n.pt')

# Add the custom callback to the model
model.add_callback("on_predict_batch_end", on_predict_batch_end)

# Iterate through the results and frames
for (result, frame) in model.predict():  # or model.track()
    pass

所有回调

以下是所有支持的回调。更多详情请查看回调源代码

培训师回电

回调 说明
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 在清理训练过程时触发

验证器回调

回调 说明
on_val_start 验证开始时触发
on_val_batch_start 在每个验证批次开始时触发
on_val_batch_end 在每个验证批次结束时触发
on_val_end 验证结束时触发

预测器回调

回调 说明
on_predict_start 预测过程开始时触发
on_predict_batch_start 在每批预测开始时触发
on_predict_postprocess_end 预测后处理结束时触发
on_predict_batch_end 在每批预测结束时触发
on_predict_end 预测过程结束时触发

出口回调

回调 说明
on_export_start 出口程序启动时触发
on_export_end 输出过程结束时触发


创建于 2023-11-12,更新于 2024-05-03
作者:glenn-jocher(4),RizwanMunawar(1),Laughing-q(1)

评论