Реализация развертывания модели UNet на базе ТПУ-МЛИР - окончательная защита 01

Команда: AP0200008

Оглавление

1. Опишите процесс адаптации UNet

1.1 Подробные шаги

2. воспроизводимые результаты

2. Процесс решения проблем

2.1 Перечислите трудности, возникающие в процессе адаптации, и пути их решения

а. При низком разрешении ошибка сегментации велика

2.2 При низком разрешении вывод по-прежнему недостаточно точен

2.3 Выбор оптимального разрешения

2.4 Другие оптимизации, которые еще не были сделаны

3. Предложите часть, которую ТПУ-МЛИР может улучшить

3.1 Где можно упростить использование

3.2 Где функция может быть улучшена (требуется осуществимость)

4. Введение в TPU — представления проекта MLIR

4.1 Представления о MLIR

4.2 Представления о TPU-MLIR в компиляторах, связанных с DSA

4.3 Представления о TPU-MLIR в компиляторе гетерогенных вычислений


1. Опишите процесс адаптации UNet

1.1 Подробные шаги

Весь шаг следует учебному пособию на официальном веб-сайте и полуфинальному руководству и разделен на следующие этапы:

  • Создание и тестирование среды Docker
  • Экспортируйте модели UNetONNX с помощью встроенных инструментов PyTorch.
  • Используйте инструмент model_transform.py для экспорта модели UNetfloat32tpuMLIR.
  • Вычислите калибровочную таблицу для количественной оценки модели в тестовом наборе данных с помощью инструмента run_dication.py.
  • Используйте метод симметричного квантования инструмента model_deploy.py, чтобы преобразовать UNetfloat32tpuMLIR в UNetINT8symmetricpuMLIR и одновременно вывести эквивалентный файл bmodel.
  • Используйте UNetINT8symmetricpuMLIR для завершения рассуждений по набору тестовых данных. На этой основе также оптимизируются этапы предварительной и последующей обработки. Конкретные методы оптимизации подробно описаны в процессе решения проблемы № 2. Во время конкурса выполните поиск в соответствии с описанным выше процессом в соответствии с различными настройками разрешения и выберите лучшую модель для отправки.

2. воспроизводимые результаты

Результаты были рассмотрены, и DiceScore составляет 0,96753341, а время одного рассуждения составляет 5,054758 мс.Согласно методу учета, общий балл составляет 391,698583, занимая первое место.

2. Процесс решения проблем

2.1 Перечислите трудности, возникающие в процессе адаптации, и пути их решения

а. При низком разрешении ошибка сегментации велика

Основная причина заключается в том, что за пределами сегментированного тела есть разбросанные небольшие блоки неправильно сегментированных отверстий (красные метки).Эти области могут быть обработаны напрямую.Используйте OpenCV, чтобы найти самую большую связанную область и восстановить вывод маски сегментации. Хотя этот метод не может обрабатывать неправильно классифицированные области (зеленые метки), которые похожи на цель сегментации, он все же имеет определенное улучшение (конкретное значение забывается).

2.2 При низком разрешении вывод по-прежнему недостаточно точен

В основном неправильно классифицированные области (зеленые маркеры), которые близки к цели, как указано в вопросе № 1. Во многом это связано с тем, что после масштабирования изображения рецептивное поле ядра свертки фактически увеличивается.Из-за накопления потерь квантования и масштабирования краевая часть не может быть классифицирована мелкозернистым образом.

 

Если тестовые картинки сложить, то можно обнаружить, что из-за однородности набора данных большая часть субъектов сегментации находится в пределах красной пунктирной линии.В процессе рассуждений этот априор можно ввести в процесс предобработки , и можно получить приблизительное позиционирование.Для области сегментации 1650x810 просто обрежьте изображение при предварительной обработке каждого вывода и заполните область вне красной рамки соответственно после завершения вывода. Эта оптимизация может дать около 10 очков улучшения (если я правильно помню).

2.3 Выбор оптимального разрешения

Более очевидный факт: чем ниже разрешение, тем меньше задержка вывода, но больше потеря точности. В конкурсе для достижения лучшего баланса высота изображения устанавливается в районе 200-500 для поиска. Другая проблема заключается в том, как масштабировать.Стратегия, которую я выбираю здесь, — пропорциональное масштабирование.Исходное изображение составляет примерно 3: 2, поэтому при установке высоты изображения она может соответствовать длине изображения. После применения оптимизации кадрирования оно масштабируется в соотношении 2:1.

В предыдущих экспериментах ширина и высота изображения были установлены кратными 64, чтобы быстро выполнять грубый поиск. Пробовал разные разрешения для окончательного представления.

2.4 Другие оптимизации, которые еще не были сделаны

Поскольку окончательный план был определен за последние два дня, некоторые оптимизированные методы все еще не использовались:

  • В оптимизации 2 исходное изображение используется для определения области обрезки.На самом деле, если вы используете сложенное изображение эталонного вывода, вы сможете найти лучшую границу
  • Без использования onnxsim надо уменьшить один-два Ops
  • Поскольку модель на самом деле является моделью бинарной классификации, ее логиты также имеют определенные характеристики. Оптимизируйте область, отмеченную красным, и область, отмеченную зеленым, упомянутые в 1. При постобработке очень просто сравнить размер np. Он очень низкий. Если установлен порог T, его следует записать как np. Результат также имеет влияние.В случае фиксированного набора данных и модели должно быть оптимальное T.

3. Предложите часть, которую ТПУ-МЛИР может улучшить

3.1 Где можно упростить использование

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

3.2 Где функция может быть улучшена (требуется осуществимость)

  1. При создании калибровочной таблицы использование памяти очень велико, что следует оптимизировать.
  2. Описание документации инструмента можно дополнить.В процессе использования обнаруживается, что будет генерироваться много промежуточных выходов.Хотя примерно понять роль каждого промежуточного выхода можно, прочитав документацию и попробовав, было бы лучше, если бы вы сделать пояснение в документации.
  3. Развертывание модели dynamicshape вроде не упоминается в документе, но есть в коде, если функция доступна, ее можно добавить в документ.

4. Введение в TPU — представления проекта MLIR

4.1 Представления о MLIR

В отличие от компиляторов глубокого обучения, таких как TVM, MLIR не является основой для моделей машинного обучения, но с ним можно выполнять аналогичную работу. В настоящее время разные производители имеют разные DSA. Очень сложно разрабатывать цепочки инструментов (например, SAIL) по отдельности. Интеграция с TVM и другими фреймворками требует глубокой настройки. Некоторое оборудование не так просто выполнить тензоризацию, и преимущества TVM может быть использован не полностью. MLIR основан на платформе LLVM и обладает широкими возможностями настройки.Благодаря многоуровневому дизайну верхний уровень может быть подключен к спецификации IR графа вычислений машинного обучения, а нижний уровень может быть подключен к уровню аппаратных инструкций IR посредством диалекта. , который может быть хорошо расширен. В процессе разработки команда компилятора может быть более знакома с MLIR, который больше похож на что-то, сделанное системным специалистом; в то время как команда развертывания может быть лучше знакома с TVM, который больше похож на что-то, сделанное человеком, который занимается глубоким обучением. . Но их абстрактные фреймворки похожи, и у них могут быть свои преимущества в Pass и некоторый функционал. Вы можете выбрать любой для построения цепочки инструментов на DSA, инструмент не является целью.

4.2 Представления о TPU-MLIR в компиляторах, связанных с DSA

Не достаточно знаком с МЛИР и ТПУ - МЛИР, чтобы иметь какое-либо мнение. Но в целом команда, которая делает MLIR фактически приземлившимся и открытым исходным кодом, действительно лучшая в TPU-MLIR.

4.3 Представления о TPU-MLIR в компиляторе гетерогенных вычислений

Я не знаю насчет компиляторов для гетерогенных вычислений, но если я следовал за цепочкой инструментов TPU-MLIR, я обнаружил, что файл bmodel был сгенерирован в конце, он должен быть загружен bmodel -> хост отправляет входной адрес тензора в TPU -> Расчет TPU и файл bmodel A также представляют собой последовательный набор инструкций. По сути, он аналогичен предыдущему набору BMNNSDK. Возможно, в более поздний период можно будет использовать платформу MLIR для лучшей масштабируемости на новом оборудовании или наборах инструкций. 

 

Supongo que te gusta

Origin blog.csdn.net/lily_19861986/article/details/129953843
Recomendado
Clasificación