Экспорт в ONNX для переносимости
Переносите модель между фреймворками и средами выполнения
«Экспорт в ONNX для переносимости» — бесплатный урок MLOps Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MLOps Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MLOps Academy содержит 4 уроков всего.
Проблема переносимости
Вы обучили модель в PyTorch, но хотите обслуживать её в C++ или браузере. Файл, привязанный к одной платформе, создаёт сложности. ONNX решает эту проблему. 🌍
Что такое ONNX
ONNX — это открытый общий формат для моделей. Он описывает математические операции в виде графа, который могут читать многие платформы и среды выполнения.
Граф операторов
Внутри модель ONNX представляет собой граф стандартных операторов, таких как MatMul и Relu, а также обученных весов.
Обучите один раз, запускайте где угодно
Экспортируйте модель один раз, и тот же файл будет работать на серверах, мобильных и периферийных устройствах через разные среды выполнения — повторное обучение не требуется.
Экспорт из PyTorch
PyTorch поставляется с инструментом экспорта. Передайте ему модель и пример входных данных в torch.onnx.export, чтобы он мог проследить граф.
import torch
torch.onnx.export(model, sample, 'model.onnx')Зачем нужен пример входных данных?
Инструмент экспорта запускает модель на примере, чтобы записать, какие операции выполняются. Этот прослеженный запуск становится сохраняемым графом.
Преобразование из sklearn
Для scikit-learn используйте библиотеку skl2onnx. Передайте ей модель и форму входных данных, чтобы получить граф ONNX.
from skl2onnx import to_onnx
onx = to_onnx(model, X[:1])Запуск с ONNX Runtime
ONNX Runtime — это быстрая кроссплатформенная среда выполнения. Загрузите файл .onnx в сеанс и вызовите run, чтобы получить прогнозы.
import onnxruntime as ort
sess = ort.InferenceSession('model.onnx')Скорость и оборудование
ONNX Runtime может использовать поставщиков выполнения, таких как CUDA или TensorRT, чтобы ускорять одну и ту же модель на разном оборудовании. ⚡
Версии набора операторов
Каждый экспорт рассчитан на определённую версию набора операторов, которая определяет доступные операторы. Она должна соответствовать возможностям среды выполнения, иначе загрузка завершится ошибкой.
Всегда проверяйте результаты
После экспорта запустите обе модели на одних и тех же входных данных и сравните результаты. Перед выпуском убедитесь, что результат ONNX совпадает с исходным. ✅
Быстрая проверка
Проверим, насколько хорошо вы понимаете ONNX.
Итоги
Вы умеете экспортировать модели в ONNX, запускать их с помощью ONNX Runtime на любом оборудовании, учитывать набор операторов и всегда проверять совпадение результатов. 🎉
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Экспорт в ONNX для переносимости» бесплатный?
Да — полный текст урока «Экспорт в ONNX для переносимости» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MLOps Academy, подпишись на CoddyKit PRO. Курс MLOps Academy содержит 4 уроков всего.
Чему я научусь в уроке «Экспорт в ONNX для переносимости»?
Переносите модель между фреймворками и средами выполнения Ты практикуешь MLOps Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать MLOps Academy?
Предыдущий опыт не требуется. MLOps Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Экспорт в ONNX для переносимости»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке MLOps Academy?
Да. Каждый урок MLOps Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сериализация с помощью Pickle и Joblib
- Формат модели MLflow
- Экспорт в ONNX для переносимости
- Определение сигнатуры и схемы модели