Разблокируйте пиковую производительность за счет оптимизации YOLO/ResNet для HiSilicon

Ваша цель оптимизации yolo/resnet на HiSilicon NPU требует определенного рабочего процесса оптимизации. Этот рабочий процесс повышает производительность

Разблокировать

Ваша цель оптимизации yolo/resnet на HiSilicon NPU требует определенного рабочего процесса оптимизации. Этот рабочий процесс повышает производительность и эффективность. Вы будете использовать набор основных инструментов для подготовки вашей модели для платформы Ascend.

Ключевые инструменты для эффективности HiSilicon

  • ONNX:Промежуточный формат для вашей обученной модели.
  • Компилятор Ascend Tensor (ATC):Преобразует вашу модель ONNX в мощную модель Ascend.
  • Квантование INT8:Повышает эффективность обработки в модели.
  • АИПП:Ускоряет вашу модель на Ascend NPU для повышения эффективности.

Модель yolov7-отличный пример. Вы можете добиться высокой эффективности своей модели yolov7 на оборудовании HiSilicon. Этот процесс раскрывает всю мощь платформы HiSilicon Ascend для вашей модели Ascend.

Ключевые выходы

  • Сначала преобразуйте вашу модель в формат ONNX. Это делает его готовым к платформе Ascend.
  • Используйте компилятор Ascend Tensor Compiler (ATC), чтобы изменить модель ONNX в специальный файл. om'. Этот файл лучше всего работает на чипах Ascend.
  • Примените квантование INT8 к своей модели. Это позволяет ему работать намного быстрее и потребляет меньше энергии.
  • Используйте предварительную обработку AI (AIPP). Это помогает чипу Ascend выполнять задачи изображения, делая вашу модель еще быстрее.
  • Проверьте производительность вашей модели. Убедитесь, что все детали работают наНПУДля лучшей скорости и использования энергии.

ОПТИМИЗАЦИЯ YOLO/RESNET ДЛЯ HISILICON:

ОПТИМИЗАЦИЯ

Ваш первый шаг в оптимизации yolo/resnet-чистыйПеренос модели. Вы должны преобразовать обученные модели PyTorch или TensorFlow в формат ONNX (Open Neural Network Exchange). Этот формат выступает в качестве универсального моста к платформе Ascend.

Преобразование модели в ONNX:

Вы можете экспортировать модель PyTorch с помощью простого сценария Python. Этот скрипт отслеживает операции вашей модели и сохраняет их в одну. OnnxФайл.

# Используйте torch.onnx.export для преобразования вашей модели
Torch. onnx.export (
Модель, # ваша модель PyTorch
Sample_input, # входной тензор выборки
"Model. onnx", # имя выходного файла
Opset_version = 17, # версия ONNX для использования
Input_names =['input'],
Output_names =['output']
)

После экспорта вы должны использовать такой инструмент, какOnnx-упрощательОчистить график. Пользователи TensorFlow иногда сталкиваются с проблемами миграции. Общие вопросы включают:

  • Недопустимые имена операторов: Ошибки вродеОшибка ValueError: '/conv_in/Conv_pad/' не является допустимым именем корневой области видимостиМожет произойти. Использование альтернативных инструментов часто решает эту проблему путем переименования операторов.
  • Большие размеры Тензора: Модели сТензоры больше 2 ГБМожет привести к сбою преобразования. Возможно, вам придется настроить архитектуру модели, чтобы справиться с этим.

Эти шаги обеспечивают плавную миграцию для вашей модели.

Адаптация модели YOLOv7:

Современные модели обнаружения объектов, такие как модель yolov7, требуют особого внимания. Архитектура yolov7 имеет уникальные слои. Вы должны адаптировать модель yolov7 для платформы HiSilicon. Эта адаптация имеет решающее значение для миграции модели yolov7. Правильное обращение с моделью yolov7 обеспечивает высокую точность обнаружения. Этот процесс подготавливает модель yolov7 для платформы Ascend. Ваша цель-успешная миграция модели yolov7 для обнаружения объектов на основе глубокого обучения. Модель yolov7-мощный инструмент обнаружения объектов. Эта миграция модели yolov7 является ключевой для производительности. Модель yolov7 помогает найти каждый объект. Адаптация модели yolov7 является частью процесса валидации.

Анализ поддержки оператора NPU:

Ваш следующий шаг миграции-проверка оператора. HiSilicon NPU может поддерживать не всех операторов в вашей модели. Вы должны проверить, каких операторов поддерживает оборудование Ascend. Этот анализ жизненно важен для оптимизации yolo/resnet на HiSilicon.Инструментарий CANN от HuaweiДля платформы Ascend предлагаются инструменты для этого.

  • The Проверка юзабилити моделиМожет определять неподдерживаемые операторы в модели.
  • Он показывает, как модель будет разделена между NPU и CPU. Больше расколов может повредить производительности.

Этот анализ поможет вам максимизировать эффективность на оборудовании HiSilicon. Если вы найдете неподдерживаемых операторов, вам может потребоватьсяПереписайте график вашей модели. Это гарантирует, что каждая часть модели работает на Ascend NPU. Эта миграция графов повышает производительность и эффективность. Основной объект-полная разгрузка НПУ на платформе Ascend. Этот последний шаг миграции раскрывает всю мощь платформы HiSilicon Ascend для ваших моделей обнаружения объектов. Это дает вашему приложению yolov7 лучшую эффективность на HiSilicon и Ascend. Модель yolov7 теперь может выполнять быстрое обнаружение любого объекта. Производительность модели yolov7 на Ascend будет отличной. Модель yolov7 уже готова. Модель yolov7 обеспечивает отличное обнаружение. Модель yolov7 оптимизирована. Модель yolov7 завершена.

ОСНОВНАЯ ОПТИМИЗАЦИЯ И ПРОИЗВОДИТЕЛЬНОСТЬ:

Ядро

У вас чистая модель ONNX. Ваш следующий шаг миграции-преобразование его для платформы Ascend. Этот этап фокусируется на основном росте производительности. Вы будете использовать компилятор Ascend Tensor Compiler (ATC) и квантование, чтобы разблокировать максимальную эффективность и энергоэффективность для ваших моделей обнаружения объектов на аппаратном обеспечении Hisilicon. Этот процесс имеет важное значение дляОптимизация производительности Yolo/Resnet.

Преобразование модели ATC:

Компилятор Ascend Tensor Compiler (ATC) является основным инструментом для этой миграции. Он превращает вашу модель ONNX в. ОмФайл. Этот файл является высоко оптимизированным для процессоров Ascend. Вы запускаете ATC из командной строки.

Типичная команда ATC выглядит так:

Atc -- модель = yolov7.onnx \
-- Каркас = 5 \
-- Output = yolov7 _ bs1 \
-- Input_format = NCHW \
-- Input_shape = "images:1,3,640,640" \
-- Soc_version = Ascend310 \
-- Лог = информация

Ключевые параметры определяют преобразование для процессоров Ascend:

  • -- Модель: Определяет ваш ввод. OnnxФайл модели.
  • -- Рамки: Использование5Для модели ONNX.
  • -- Выход: Определяет имя для вашего вывода. ОмМодель.
  • -- Soc_version: Нацеливается на конкретный Hisilicon SOC, напримерAscend310. Это жизненно важно для производительности.
  • -- Input_shape: Устанавливает фиксированный размер ввода для модели.

Вы должны предоставить фиксированныйВход_формыДля вашей модели. Модели для обнаружения объектов иногда имеют переменные входные размеры. Средство ATC нуждается в статической форме для лучшей производительности на процессорах Ascend. Этот шаг обеспечивает успешную миграцию и предотвращает ошибки при выводе на платформе Hisilicon.

Квантование INT8:

Квантование уменьшает точность вашей модели с 32-битной с плавающей запятой (FP32) до 8-битного целого числа (INT8). Это изменение значительно улучшает скорость вывода и энергоэффективность. Миграция на точность INT8 является ключевым шагом для развертывания модели YOLOv7 на Hisilicon. У вас есть два основных варианта для этой миграции.

МетодОписаниеЛучшее для
Квантование после обучения (PTQ)Применяет квантование после того, как модель уже обучена. Это такПросто и быстро.Быстрое развертывание там, где допустимо небольшое падение точности.
Обучение на основе квантования (QAT)Имитирует квантование в процессе обучения. Модель учится адаптироваться к более низкой точности.Сценарии, требующиеМаксимально возможная точность после квантования.

Для многих моделей обнаружения объектов YOLOv7 PTQ предлагает отличный баланс. Это можетУдвойте скорость выводаИ повысить энергоэффективность процессоров Ascend AI. Это делает ваше приложение YOLOv7 более быстрым для обнаружения любого объекта в реальном времени. Небольшой компромисс в точности часто приемлем для большого повышения производительности и энергоэффективности на процессорах Ascend. Эта последняя миграция моделей подготавливает вашу модель YOLOv7 к максимальной эффективности на процессорах Hisilicon Ascend, готовых быстро найти каждый объект. Производительность обнаружения модели YOLOv7 на Ascend будет отличной.

РАСШИРЕННЫЕ ТЕХНИКИ ТЮНИРОВАНИЯ:

Вы можете еще больше повысить производительность своей модели с помощью расширенной настройки. Эти методы позволяют точно настроить вашу модель YOLOv7 для платформы HiSilicon. Они помогают достичь максимальной эффективности и высокой производительности для приложений в реальном времени.

Предварительная обработка AIPP:

Вы можете ускорить свою модель с помощью предварительной обработки AI (AIPP). AIPP выгружает задачи предварительной обработки изображений из процессора непосредственно на оборудование Ascend. Это является важным шагом для повышения энергоэффективности.

AIPP выполняет такие задачи как:

  • Изменение размера изображения
  • Преобразование цветового пространства (например, BGR в RGB)
  • Среднее вычитание и нормализация

Этот процесс освобождает ваш процессор. Это позволяет процессорам Ascend обрабатывать весь конвейер вывода. Ваша модель YOLOv7 обеспечивает более быстрый вывод в реальном времени с лучшим управлением питанием. Это дает вашей модели превосходную эффективность на HiSilicon.

Память и дозирование:

ПравильноеПамятьУправление имеет важное значение для высокой производительности. Вы должны настроить модель YOLOv7 для эффективного использования памяти на платформе Ascend. Дозирование-мощная техника для этого. Он включает в себя обработку нескольких изображений за один проход вывода.

Размер партииПропускная способностьЗадержка
Малый (например, 1)НижняяБыстрее за изображение
Большой (например, 8, 16)ВысшееСнижение на изображение

Увеличение размера пакета улучшает общую пропускную способность вашей модели на процессорах Ascend. Это приводит к лучшему управлению питанием и эффективности. Вы должны найти правильный баланс для своей модели YOLOv7, чтобы получить наилучшие характеристики обнаружения в реальном времени. Эта оптимизация является ключевым дляВысокопроизводительные модели с искусственным интеллектомНа HiSilicon.

Профилирование выводов:

Вы должны профилировать свою модель, чтобы найти узкие места производительности. Инструменты профилирования показывают, как ваша модель работает на процессорах Ascend AI. Они помогают вам обеспечить работу каждого слоя на NPU для наилучшей энергоэффективности и управления питанием.

Иногда,Определенные слои в модели возвращаются к процессору. Это происходит, когда процессоры Ascend не могут обрабатывать определенные операции, такие как слой SoftMax илиПост-обработка NMS в модели YOLOv7. Этот резервный вариант создает значительное узкое место, замедляя вывод в реальном времени и снижая энергоэффективность. Профилирование поможет вам определить эти проблемы. Он показывает, обременяет ли ЦП большая рабочая нагрузка вместо использования мощного оборудования Ascend. Анализируя показатели производительности, вы можете изменить свою модель для использования операций, поддерживаемых NPU. Это гарантирует, что обнаружение вашей модели YOLOv7 работает с максимальной точностью и эффективностью на HiSilicon, разблокируя действительно высокую производительность и отличное управление питанием для вывода в реальном времени.


Ваша модель может достичь максимальной производительности на HiSilicon. Этот рабочий процесс оптимизации открывает максимальную эффективность для платформы Ascend.

  1. Экспортируйте вашу модель в чистый график ONNX.
  2. Преобразовать модель в a. ОмФайл для платформы Ascend.
  3. Применяйте квантование INT8 для повышения эффективности.
  4. Используйте AIPP для выгрузки предварительной обработки на оборудование Ascend.

Контрольный список окончательной проверки📝

  • Валидация: Подтвердите свойSoc_versionСоответствует целевому оборудованию HiSilicon.
  • Проверка заявки: Убедитесь, что форма ввода модели верна для платформы Ascend.
  • Проверка заявки: Убедитесь, что все операторы моделей поддерживаются NPU Ascend.

Следуя этому процессу для оптимизации yolo/resnet, это самый надежный путь к высокой производительности и эффективности на HiSilicon. Эта проверка раскрывает всю мощь платформы Ascend для вашего оборудования HiSilicon.

Часто задаваемые вопросы

Как мне выбрать между PTQ и QAT?

Вы должны использовать квантование после обучения (PTQ) для быстрого развертывания. Это обеспечивает отличный прирост скорости. Вы можете использовать Quantization-Aware Training (QAT), когда вам нужна максимально возможная точность. QAT требует переподготовки вашей модели, но обеспечивает лучшие результаты и хорошую энергоэффективность.

Что если моя модель имеет неподдерживаемых операторов?

Сначала необходимо определить неподдерживаемых операторов с помощью набора инструментов CANN. Затем вы можете попробовать заменить их альтернативами, поддерживаемым NPU. Это гарантирует, что вся модель работает на оборудовании Ascend, что имеет решающее значение для производительности и достижения наилучшей энергоэффективности.

Почему AIPP важен для моей модели?

AIPP выгружает предобработку изображений из процессора в NPU. Это освобождает ресурсы ЦП. Весь ваш конвейер работает на оборудовании Ascend, уменьшая задержку и повышая общую энергоэффективность вашего приложения.

ДелаетSoc_versionПараметр действительно имеет значение?

Да, это очень важно. Вы должны установитьSoc_versionЧтобы соответствовать вашим конкретнымЧип hilicon(E. g.,Ascend310). Средство ATC использует эту информацию для создания файла модели, оптимизированного для конкретной архитектуры оборудования.

Related Articles