深圳Yolo 视觉
深圳
立即加入
词汇表

回调

探索回调在机器学习中的重要作用——这些工具可以监控、控制和自动化模型训练,从而提高准确性、灵活性和效率。

机器学习(ML)中,回调是一种 在机器学习(ML)中,回调是一种多功能函数或代码块,用于在计算过程的特定阶段自动运行。在 在训练神经网络(NN)的背景下,回调可作为与神经网络交互的 "钩子"、 回调可作为 "钩子 "与训练生命周期进行交互,以执行以下操作 回调作为与训练生命周期交互的 "钩子",可执行记录指标、保存中间结果或调整参数等操作、 保存中间结果或调整控制参数。通过将这些辅助任务与主 开发人员可以在不修改核心算法的情况下,创建模块化、可读性和高度可定制的工作流。 算法。

回调如何发挥作用

典型的训练过程是在数据集上迭代一组 遍数,称为历元。在这个周期内 系统执行前向传递以进行预测,并执行 反向传播来更新 模型权重。回调在这个循环中的预定义 "事件 "时进行干预。 "事件 "时进行回调--例如训练开始、批次结束或历时结束。

Ultralytics 等框架中的Trainer 对象负责管理这些事件。 对象来管理这些事件。当特定事件发生时,训练器会执行任何已注册的回调函数,并将模型的当前状态传递给它们。 模型的当前状态。这种机制是现代 MLOps 的基础,可实现实时 可观察性和自动干预。

人工智能的常见应用

回调是深度学习(DL)中优化性能和资源使用所不可或缺的。 深度学习(DL)中优化性能和资源使用所不可或缺的。

  • 及早停车最关键的应用之一 最关键的应用之一就是防止过度拟合。早期 停止回调监控验证数据的错误率。 验证数据的错误率。如果模型的性能 性能停滞或下降,回调就会立即停止训练,从而节省时间和云计算成本。 云计算成本。
  • 动态学习率调度: 调整优化算法的步长 对优化算法的收敛至关重要。 收敛至关重要。当检测到高原时,回调可以降低学习率,让模型稳定在一个更优化的解 更优化的解决方案。
  • 模型检查点:为确保模型的最佳版本得以保留,每当出现关键指标(如......)时,检查点回调就会保存系统状态。 保存系统状态。 平均精度(mAP)、 提高时,检查点回调就会保存系统状态。这对于在大型数据集(如 ImageNetCOCO.
  • 实验日志:与可视化工具集成,如 TensorBoardClearMLMLflow等可视化工具的集成通常通过回调来处理。这些工具会记录损耗曲线、系统 硬件使用情况和预测样本,以便日后分析。

执行自定义回调

"(《世界人权宣言》) ultralytics 库提供了一个直接的 API,用于将自定义回调附加到诸如 YOLO11.这样,用户就可以直接在训练管道中注入特定逻辑,如 打印状态更新或与外部 API 交互。

下面的示例演示了如何添加一个简单的回调,在每个 训练周期结束时打印确认信息:

from ultralytics import YOLO


def on_train_epoch_end(trainer):
    """Callback function to print the current epoch number after it finishes."""
    print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")


# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)

与相关概念的区别

要有效使用回调,最好将其与软件工程和数据科学中的类似术语区分开来。 科学中的类似术语区分开来。

  • 钩子 虽然 "回调 "和 "钩子 "经常交替使用,但钩子一般是指代码中可以附加外部函数的地方(拦截点)。 代码中可以连接外部函数的地方(拦截点)。回调是用户提供的要执行的特定 函数。
  • 超参数调整 回调有助于调整(例如,通过学习率调度器或与诸如 Ray Tune),但它们本身并不是调整过程。 调谐涉及搜索最佳配置值,而回调则是在搜索过程中应用变化或监控进度的机制。 在搜索过程中监控进度的机制。
  • 数据增强 增强功能可在输入数据到达网络之前对其进行修改。一些先进的管道使用回调来 回调来动态调整增强强度(例如,"Mosaic probability "中的 "马赛克概率")。 YOLOv5中的马赛克概率),但标准增强通常是数据 加载管道的一部分,而不是训练循环事件。

现实世界的益处

回调的使用可直接转化为更强大、更高效的 人工智能代理和应用程序。例如,在 自动驾驶汽车中,训练模型需要 处理大量传感器数据。回调允许工程师自动快照在困难边缘情况下表现最佳的模型,而无需手动监控。 无需人工监控。同样,在 医疗图像分析中,回调可以 如果模型开始记忆患者数据(过拟合),而不是学习可通用的特征,回调就会触发警报或大量日志记录。 通用特征,确保临床部署的高可靠性。

通过利用回调,使用诸如 PyTorchTensorFlow可以构建自我调节系统,从而节省 节省时间、减少错误并最大限度地提高计算机视觉 (CV) 解决方案的性能。 计算机视觉 (CV)解决方案的性能。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入