Rockchip · AI & Linux Hub

AI-инференс

RKNN-Toolkit2 Python API V2.5.0 — Среда и жизненный цикл объекта

RKNN-Toolkit2 Python API V2.5.0 — Среда и жизненный цикл объекта | Полные параметры, примеры и ограничения платформ

· ArmSoM · 5 мин чтения

Платформа и источник

Статья подготовлена по PDF производителя RKNN V2.5.0 и относится только к перечисленным в нём чипам и интерфейсам. Для платы ArmSoM сначала проверьте SoC, драйвер NPU, Toolkit/Runtime, SDK/BSP и версию ядра. Проверки на оборудовании ArmSoM не проводились; примеры и измерения оригинала не являются тестами ArmSoM.

Навигация по серии

1 Требования

1.1 Поддерживаемые модели чипов

RV1103

RV1103B

RV1106

RV1106B

RV1126B

RK2118

RK3562

Серия RK3566

Серия RK3568

Серия RK3576

Серия RK3588

Примечание: далее RK3566 / RK3568 / RK3576 / RK3588 обозначают соответствующие серии RK3566 / RK3568 / RK3576 / RK3588.

1.2 Требования к среде и зависимостям

Рекомендуется следующая среда операционной системы:

Версия операционной системы Ubuntu18.04
(x64)
Ubuntu20.04
(x64)
Ubuntu22.04
(x64)
Ubuntu24.04
(x64)
Версия Python 3.6 / 3.7 3.8 / 3.8 3.10 / 3.11 3.12

Для ARM64:

Версия операционной системы Debian10 (x64) Debian11 (x64) Debian12 (x64)
Версия Python 3.6 / 3.7 3.8 / 3.8 3.10 / 3.11 / 3.12

Примечания:

  1. Подробные зависимости библиотек Python указаны в doc/requirements*.txt.
  1. Примеры документа в основном используют Ubuntu 20.04 / Python3.8.

1.3 Поддерживаемые фреймворки глубокого обучения

RKNN-Toolkit2 поддерживает Caffe, TensorFlow, TensorFlow Lite, ONNX, DarkNet и PyTorch.

Соответствие версий RKNN-Toolkit2 и фреймворков приведено ниже:

RKNN-Toolkit2 Caffe TensorFlow TF Lite ONNX DarkNet PyTorch
1.4.0
1.4.2
1.5.0
1.5.2
1.0 1.12.0
~2.8.0
Версия
схемы=3
1.7.0
~1.10.0
Идентификатор коммита:
810d7f7
1.6.0
~1.10.1
1.6.0 1.0 1.12.0
~2.14.0
Версия
схемы=3
1.7.0
~1.14.0
Идентификатор коммита:
810d7f7
1.6.0
~1.13.1
2.0.0
2.1.0
2.2.0
1.0 1.12.0
~2.14.0
Версия
схемы=3
1.7.0
~1.14.1
Идентификатор коммита:
810d7f7
1.10.1
~2.1.0
2.3.0
~2.5.0
1.0 1.12.0
~2.14.0
Версия
схемы=3
1.7.0
~1.17.0
Идентификатор коммита:
810d7f7
1.10.1
~2.4.0

Примечания:

  1. Благодаря совместимости версий TensorFlow теоретически поддерживаются и pb-файлы, экспортированные версиями до TensorFlow 1.12.0. Подробности совместимости разных версий приведены в официальной документации: https://www.tensorflow.org/guide/versions
  1. Схемы разных версий TFLite несовместимы. Если схема экспортированной модели отличается от версии схемы, используемой RKNN-Toolkit2, загрузка модели может завершиться ошибкой.
  1. Протокол Caffe в RKNN-Toolkit2 основан на официальном Berkeley-протоколе с модификациями. Источник: https://github.com/BVLC/caffe/tree/master/src/caffe/proto, commit 828dd10. RKNN-Toolkit2 добавляет на этой основе некоторые операторы.
  1. Соответствие выпусков ONNX версиям opset и IR описано в документации onnxruntime: https://github.com/microsoft/onnxruntime/blob/v1.10.0/docs/Versioning.md
  1. Официальный репозиторий DarkNet: https://github.com/pjreddie/darknet. Правила преобразования RKNN-Toolkit2 в исходном документе основаны на последнем для его состояния коммите ветки master — 810d7f7; это не утверждение о текущем HEAD.
  1. При загрузке PyTorch-модели (torchscript) рекомендуется использовать одну и ту же версию PyTorch для экспорта модели и преобразования в RKNN. Различие версий может привести к ошибке преобразования.
  1. Версия ARM64 поддерживает только PyTorch и ONNX; остальные фреймворки в состоянии источника не поддерживаются.

2 Объект RKNN и жизненный цикл ресурсов

Эта группа интерфейсов создаёт и освобождает объект RKNN. Перед использованием любых API RKNN-Toolkit2 вызовите RKNN(); после завершения задачи освободите объект методом release().

При создании объекта RKNN параметры verbose и verbose_file управляют подробным журналом загрузки и построения модели и других операций. verbose имеет тип bool: при True RKNN-Toolkit2 печатает подробный журнал. verbose_file — строка; если она содержит путь к файлу, журнал записывается туда, причём verbose также должен быть True.

Пример кода:

# Print the detailed log information.
rknn = RKNN(verbose=True)

...

rknn.release()

Источник и редакционные примечания

Технические главы разделены по назначению. Код, идентификаторы и параметры сохранены. Китайская версия следует китайскому оригиналу; английская, русская и немецкая — английскому. В главы без иллюстраций вымышленные изображения не добавлены.

Примечания: журналы с SDK 1.5.2 сохранены как исторические примеры, а не измерения V2.5.0. Ячейка Python для Ubuntu20.04 различается: китайский текст 3.8/3.9, английский 3.8/3.8; аналогично для Debian11; в разделе ARM64 Debian всё ещё помечен x64. Значения сохранены; проверяйте фактический установочный пакет. V2.5.0 добавляет главу C++ codegen и уточняет квантование и стратегии памяти; параметры старой версии не подменяют новый источник.

RKNN-Toolkit2 · ArmSoM documentation

Другие статьи по теме → · Учебные маршруты →