了解 Model Soups 如何通过对Ultralytics YOLO 权重进行平均来提升准确率和鲁棒性。学习如何在不增加延迟的情况下提升性能。
“模型混合”是一种机器学习技术,其原理是将多个神经网络的权重进行平均,这些网络均基于同一个预训练基础模型,但使用不同的超参数进行了微调,从而构建出一个更稳健的单一模型。这种方法使开发人员能够在不增加推理阶段计算成本的前提下,提升整体准确率和泛化能力。
在对模型进行微调时,从业者通常会进行广泛的 超参数调优扫描,以寻找 性能最佳的配置。 传统做法是选出单个最佳模型,其余的则被舍弃。然而, 构建“模型混合体”则充分利用了扫描过程中所有模型所学习到的多样化特征。通过直接 对模型权重进行平均,生成的网络 通常表现优于单个最佳模型,既有效整合了各模型的优势,又最大限度地 降低了过拟合风险。这一过程效率极高,且 Ultralytics 等协作环境中 可轻松管理。
在计算资源受限但又需要高精度和 鲁棒性的场景中,模型混合方法非常有效。
要深入了解深度学习优化领域, 区分“模型汤”与类似技术至关重要:
要创建一个统一的模型集合,需要访问 多个已训练模型的 PyTorch 字典,并对它们的张量进行数学平均。下面是一个简明的示例,展示了如何 利用由PyTorch 原生支持的Ultralytics 工作流 来实现这一点。
import torch
# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()
# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}
# The resulting soup_dict can now be loaded into a new YOLO26 instance
通过运用这项技术,计算机视觉从业者可以轻松提升诸如 零样本学习能力和整体 鲁棒性等性能指标,同时又不牺牲现代“边缘优先”AI架构所要求的部署速度。
开启您的机器学习未来之旅