Узнайте, как Model Soups повышают точность и устойчивость за счет усреднения весовYOLO Ultralytics YOLO . Узнайте, как повысить производительность без увеличения задержки.
«Model Soups» — это метод машинного обучения, при котором веса нескольких нейронных сетей, настроенных на основе одной и той же предварительно обученной базовой модели с использованием различных гиперпараметров, усредняются для создания единой, более устойчивой модели. Такой подход позволяет разработчикам повысить общую точность и способность к обобщению без увеличения вычислительных затрат при инференции.
При тонкой настройке модели специалисты обычно проводят широкий прогон по настройке гиперпараметров, чтобы найти наиболее эффективную конфигурацию. Традиционно выбирается одна лучшая модель, а остальные отбрасываются. Однако создание «модельного супа» позволяет использовать разнообразные признаки, выученные всеми моделями в ходе прогона. Благодаря прямому усреднению весов моделей, полученная сеть часто превосходит по эффективности одну лучшую модель, эффективно сочетая их сильные стороны и минимизируя переобучение. Этот процесс является высокоэффективным и может легко управляться в средах совместной работы, таких как Ultralytics .
Модельные супы чрезвычайно эффективны в ситуациях, когда вычислительные ресурсы ограничены, но требуются высокая точность и устойчивость.
Чтобы сориентироваться в области оптимизации глубокого обучения, важно отличать «Model Soups» от схожих методов:
Создание единого набора моделей предполагает доступ к словарюPyTorch , содержащему несколько обученных моделей, и математическое усреднение их тензоров. Ниже приведён краткий пример того, как это можно осуществить с помощью рабочего процесса Ultralytics , нативно поддерживаемого PyTorch .
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
Используя эту методику, специалисты в области компьютерного зрения могут легко повысить такие показатели производительности, как возможности обучения без предварительного обучения и общую устойчивость, не жертвуя при этом скоростью развертывания, необходимой для современных архитектур ИИ, ориентированных на периферию.
Начните свой путь в будущее машинного обучения