Перейти к содержимому

Как экспортировать в формат PaddlePaddle из моделей YOLOv8

Преодолеть разрыв между разработкой и внедрением моделей компьютерного зрения в реальных сценариях с меняющимися условиями может быть непросто. PaddlePaddle делает этот процесс проще, уделяя особое внимание гибкости, производительности и возможности параллельной обработки в распределенных средах. Это значит, что ты сможешь использовать свои модели компьютерного зрения YOLOv8 на самых разных устройствах и платформах, от смартфонов до облачных серверов.

Возможность экспорта в формат модели PaddlePaddle позволяет тебе оптимизировать свои Ultralytics YOLOv8PaddlePaddle . PaddlePaddle известен тем, что облегчает промышленное внедрение и является хорошим выбором для развертывания приложений компьютерного зрения в реальных условиях в различных областях.

Почему тебе стоит экспортировать на PaddlePaddle?

PaddlePaddle Логотип

Разработана компанией Baidu, PaddlePaddle(PArallel Distributed Deep LEarning) - это первая китайская платформа глубокого обучения с открытым исходным кодом. В отличие от некоторых фреймворков, созданных в основном для исследований, PaddlePaddle ставит во главу угла простоту использования и плавную интеграцию в различные отрасли.

Он предлагает инструменты и ресурсы, схожие с популярными фреймворками вроде TensorFlow и PyTorch, что делает его доступным для разработчиков любого уровня опыта. Большое сообщество разработчиков PaddlePaddle, насчитывающее более 4,77 миллиона человек, помогает создавать и внедрять ИИ-приложения - от фермерских хозяйств и заводов до предприятий сферы услуг.

Экспортируя файл Ultralytics YOLOv8 models в PaddlePaddle формата, вы можете использовать PaddlePaddleСильные стороны в оптимизации производительности. PaddlePaddle Отдает приоритет эффективному выполнению модели и уменьшению использования памяти. В результате, ваш YOLOv8 Модели потенциально могут достичь еще более высокой производительности, обеспечивая первоклассные результаты в практических сценариях.

Ключевые особенности моделей PaddlePaddle

Модели PaddlePaddle обладают целым рядом ключевых особенностей, которые способствуют их гибкости, производительности и масштабируемости в различных сценариях развертывания:

  • Dynamic-to-Static Graph: PaddlePaddle поддерживает компиляцию динамического графа в статический, при которой модели могут быть преобразованы в статический вычислительный граф. Это позволяет оптимизировать работу, что уменьшает накладные расходы во время выполнения и повышает производительность вычислений.

  • Слияние операторов: PaddlePaddle, как и TensorRT, использует слияние операторов для оптимизации вычислений и снижения накладных расходов. Фреймворк минимизирует передачу памяти и вычислительные шаги за счет слияния совместимых операций, что приводит к более быстрому выводу.

  • Квантование: PaddlePaddle поддерживает техники квантования, включая квантование после обучения и обучение с учетом квантования. Эти техники позволяют использовать представления данных с более низкой точностью, эффективно повышая производительность и уменьшая размер модели.

Варианты развертывания в PaddlePaddle

Прежде чем погрузиться в код для экспорта моделей YOLOv8 в PaddlePaddle, давай рассмотрим различные сценарии развертывания, в которых модели PaddlePaddle превосходят все остальные.

PaddlePaddle предлагает целый ряд вариантов, каждый из которых отличается балансом простоты использования, гибкости и производительности:

  • Paddle Serving: Этот фреймворк упрощает развертывание моделей PaddlePaddle в виде высокопроизводительных RESTful API. Paddle Serving идеально подходит для производственных сред, предоставляя такие возможности, как версионирование моделей, онлайн-тестирование A/B и масштабируемость для обработки больших объемов запросов.

  • Paddle Inference API: Paddle Inference API дает тебе низкоуровневый контроль над выполнением модели. Этот вариант хорошо подходит для сценариев, когда тебе нужно плотно интегрировать модель в пользовательское приложение или оптимизировать производительность для конкретного оборудования.

  • Paddle Lite: Paddle Lite предназначен для развертывания на мобильных и встраиваемых устройствах, где ресурсы ограничены. Он оптимизирует модели для меньших размеров и более быстрого вывода на ARM CPU, GPU и другом специализированном оборудовании.

  • Paddle.js: Paddle.js позволяет тебе разворачивать модели PaddlePaddle прямо в веб-браузерах. Paddle.js может либо загружать предварительно обученную модель, либо преобразовывать модель из paddle-hub с помощью инструментов преобразования моделей, предоставляемых Paddle.js. Он может работать в браузерах, поддерживающих WebGL/WebGPU/WebAssembly.

Экспорт в PaddlePaddle: Преобразование твоей модели YOLOv8

Преобразование моделей YOLOv8 в формат PaddlePaddle может повысить гибкость исполнения и оптимизировать производительность для различных сценариев развертывания.

Установка

Чтобы установить нужный пакет, выполни:

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.

Использование

Прежде чем погрузиться в инструкцию по использованию, важно отметить, что, хотя все моделиUltralytics YOLOv8 доступны для экспорта, ты можешь убедиться, что выбранная тобой модель поддерживает функцию экспорта, здесь.

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to PaddlePaddle format
model.export(format="paddle")  # creates '/yolov8n_paddle_model'

# Load the exported PaddlePaddle model
paddle_model = YOLO("./yolov8n_paddle_model")

# Run inference
results = paddle_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to PaddlePaddle format
yolo export model=yolov8n.pt format=paddle  # creates '/yolov8n_paddle_model'

# Run inference with the exported model
yolo predict model='./yolov8n_paddle_model' source='https://ultralytics.com/images/bus.jpg'

Более подробно о поддерживаемых вариантах экспорта можно узнать на странице документацииUltralytics , посвященной вариантам развертывания.

Развертывание экспортированных YOLOv8 PaddlePaddle моделей

После успешного экспорта твоих моделей Ultralytics YOLOv8 в формат PaddlePaddle ты можешь приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска модели в формате PaddlePaddle является использование метода YOLO("./model_paddle_model"), как описано в предыдущем фрагменте кода.

Однако для получения подробных инструкций по развертыванию твоих моделей PaddlePaddle в различных других условиях, взгляни на следующие ресурсы:

  • Сервировка весла: Узнай, как развернуть свои модели PaddlePaddle в виде перфоманс-сервисов с помощью Paddle Serving.

  • Paddle Lite: Узнай, как оптимизировать и разворачивать модели на мобильных и встраиваемых устройствах с помощью Paddle Lite.

  • Paddle.js: Узнай, как запускать модели PaddlePaddle в веб-браузерах для клиентского ИИ с помощью Paddle.js.

Резюме

В этом руководстве мы рассмотрели процесс экспорта моделей Ultralytics YOLOv8 в формат PaddlePaddle. Следуя этим шагам, ты сможешь использовать сильные стороны PaddlePaddle в различных сценариях развертывания, оптимизируя свои модели для различных аппаратных и программных сред.

Более подробную информацию об использовании ты найдешь в официальной документацииPaddlePaddle .

Хочешь изучить больше способов интеграции твоих моделей Ultralytics YOLOv8 ? На странице нашего руководства по интеграции рассматриваются различные варианты, снабжая тебя ценными ресурсами и знаниями.

ВОПРОСЫ И ОТВЕТЫ

Как экспортировать модели Ultralytics YOLOv8 в формат PaddlePaddle ?

Экспортировать модели Ultralytics YOLOv8 в формат PaddlePaddle очень просто. Ты можешь использовать export метод класса YOLO , чтобы выполнить этот экспорт. Вот пример с использованием Python:

Использование

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to PaddlePaddle format
model.export(format="paddle")  # creates '/yolov8n_paddle_model'

# Load the exported PaddlePaddle model
paddle_model = YOLO("./yolov8n_paddle_model")

# Run inference
results = paddle_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to PaddlePaddle format
yolo export model=yolov8n.pt format=paddle  # creates '/yolov8n_paddle_model'

# Run inference with the exported model
yolo predict model='./yolov8n_paddle_model' source='https://ultralytics.com/images/bus.jpg'

Для более детальной настройки и устранения неполадок посмотри руководство по установкеUltralytics и руководство по общим проблемам.

В чем преимущества использования PaddlePaddle для развертывания моделей?

PaddlePaddle предлагает несколько ключевых преимуществ для развертывания модели:

  • Оптимизация производительности: PaddlePaddle отличается эффективным выполнением моделей и уменьшенным использованием памяти.
  • Динамико-статическая компиляция графики: Она поддерживает компиляцию из динамической в статическую, что позволяет оптимизировать работу во время выполнения.
  • Слияние операторов: Объединяя совместимые операции, он снижает вычислительные затраты.
  • Техники квантования: Поддерживает как посттренировочное обучение, так и обучение с учетом квантования, позволяя представлять данные с меньшей точностью для повышения производительности.

Ты можешь добиться улучшенных результатов, экспортируя свои модели Ultralytics YOLOv8 в PaddlePaddle, обеспечивая гибкость и высокую производительность в различных приложениях и аппаратных платформах. Узнай больше о возможностях PaddlePaddleздесь.

Почему я должен выбрать PaddlePaddle для развертывания своих моделей YOLOv8 ?

PaddlePaddleразработанный компанией Baidu, оптимизирован для промышленного и коммерческого внедрения ИИ. Его большое сообщество разработчиков и надежный фреймворк предоставляют обширные инструменты, аналогичные TensorFlow и PyTorch. Экспортируя свои модели из YOLOv8 в PaddlePaddle, ты получаешь возможность использовать все преимущества:

  • Повышенная производительность: Оптимальная скорость выполнения и уменьшение занимаемой памяти.
  • Гибкость: Широкая совместимость с различными устройствами - от смартфонов до облачных серверов.
  • Масштабируемость: Эффективные возможности параллельной обработки для распределенных сред.

Эти особенности делают PaddlePaddle привлекательным выбором для развертывания моделей YOLOv8 в производственных условиях.

Как PaddlePaddle улучшает производительность модели по сравнению с другими фреймворками?

PaddlePaddle использует несколько продвинутых техник для оптимизации работы модели:

  • Динамический граф в статический: Преобразует модели в статичный вычислительный граф для оптимизации во время выполнения.
  • Слияние операторов: Комбинирует совместимые операции, чтобы минимизировать передачу памяти и увеличить скорость вычислений.
  • Квантование: Уменьшает размер модели и повышает эффективность использования данных с более низкой точностью, сохраняя при этом точность.

Эти техники ставят во главу угла эффективное выполнение модели, что делает PaddlePaddle отличным вариантом для развертывания высокопроизводительных моделей YOLOv8 . Подробнее об оптимизации читай в официальной документацииPaddlePaddle .

Какие варианты развертывания предлагает PaddlePaddle для моделей YOLOv8 ?

PaddlePaddle обеспечивает гибкие возможности развертывания:

  • Paddle Serving: Развертывает модели в виде RESTful API, идеально подходит для продакшена с такими функциями, как версионирование моделей и онлайн-тестирование A/B.
  • Paddle Inference API: Дает низкоуровневый контроль над выполнением модели для пользовательских приложений.
  • Paddle Lite: Оптимизирует модели под ограниченные ресурсы мобильных и встраиваемых устройств.
  • Paddle.js: позволяет разворачивать модели непосредственно в веб-браузерах.

Эти варианты охватывают широкий спектр сценариев развертывания, от выводов на устройствах до масштабируемых облачных сервисов. Изучи больше стратегий развертывания на страницеUltralytics Model Deployment Options.



Создано 2024-03-11, Обновлено 2024-07-05
Авторы: glenn-jocher (5), Burhan-Q (1), abirami-vina (2)

Комментарии