Rockchip · AI & Linux Hub

KI-Inferenz

RKNN-Toolkit2 Python API V2.5.0 — Umgebung und Objektlebenszyklus

RKNN-Toolkit2 Python API V2.5.0 — Umgebung und Objektlebenszyklus | Vollständige Parameter, Beispiele und Plattformgrenzen

· ArmSoM · 5 Min. Lesezeit

Plattform und Quelle

Dieser Artikel basiert auf dem RKNN-V2.5.0-PDF des Herstellers und gilt nur für die dort genannten Chips und Schnittstellen. Bei ArmSoM-Boards zuerst SoC, NPU-Treiber, Toolkit/Runtime, SDK/BSP und Kernelversion prüfen. Eine ArmSoM-Hardwareprüfung wurde nicht durchgeführt; Beispiele und Messwerte stammen aus der Quelle, nicht aus ArmSoM-Tests.

Seriennavigation

1 Anforderungen

1.1 Unterstützte Chipmodelle

RV1103

RV1103B

RV1106

RV1106B

RV1126B

RK2118

RK3562

RK3566-Serie

RK3568-Serie

RK3576-Serie

RK3588-Serie

Hinweis: RK3566 / RK3568 / RK3576 / RK3588 bezeichnen im Folgenden jeweils die entsprechenden RK3566-/RK3568-/RK3576-/RK3588-Serien.

1.2 Anforderungen an Umgebung und Abhängigkeiten

Für die Betriebssystemumgebung werden folgende Anforderungen empfohlen:

Betriebssystemversion Ubuntu18.04
(x64)
Ubuntu20.04
(x64)
Ubuntu22.04
(x64)
Ubuntu24.04
(x64)
Python-Version 3.6 / 3.7 3.8 / 3.8 3.10 / 3.11 3.12

Für ARM64:

Betriebssystemversion Debian10 (x64) Debian11 (x64) Debian12 (x64)
Python-Version 3.6 / 3.7 3.8 / 3.8 3.10 / 3.11 / 3.12

Hinweise:

  1. Detaillierte Python-Bibliotheksabhängigkeiten stehen in doc/requirements*.txt.
  1. Die Dokumentbeispiele verwenden hauptsächlich Ubuntu 20.04 / Python3.8.

1.3 Unterstützte Deep-Learning-Frameworks

RKNN-Toolkit2 unterstützt Caffe, TensorFlow, TensorFlow Lite, ONNX, DarkNet und PyTorch.

Die Zuordnung zwischen RKNN-Toolkit2 und den Framework-Versionen ist nachfolgend aufgeführt:

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
Schema-
Version=3
1.7.0
~1.10.0
Commit-ID:
810d7f7
1.6.0
~1.10.1
1.6.0 1.0 1.12.0
~2.14.0
Schema-
Version=3
1.7.0
~1.14.0
Commit-ID:
810d7f7
1.6.0
~1.13.1
2.0.0
2.1.0
2.2.0
1.0 1.12.0
~2.14.0
Schema-
Version=3
1.7.0
~1.14.1
Commit-ID:
810d7f7
1.10.1
~2.1.0
2.3.0
~2.5.0
1.0 1.12.0
~2.14.0
Schema-
Version=3
1.7.0
~1.17.0
Commit-ID:
810d7f7
1.10.1
~2.4.0

Hinweise:

  1. Aufgrund der TensorFlow-Versionskompatibilität werden theoretisch auch pb-Dateien unterstützt, die vor TensorFlow 1.12.0 exportiert wurden. Einzelheiten zur Kompatibilität verschiedener Versionen stehen in der offiziellen Dokumentation: https://www.tensorflow.org/guide/versions
  1. Die Schemas verschiedener TFLite-Versionen sind nicht miteinander kompatibel. Unterscheidet sich das Schema eines exportierten TFLite-Modells von der durch RKNN-Toolkit2 verwendeten Schemaversion, kann das Laden fehlschlagen.
  1. Das Caffe-Protokoll von RKNN-Toolkit2 basiert mit Änderungen auf dem offiziellen Berkeley-Protokoll. Quelle: https://github.com/BVLC/caffe/tree/master/src/caffe/proto, Commit 828dd10. RKNN-Toolkit2 ergänzt darauf aufbauend einige Operatoren.
  1. Die Zuordnung zwischen ONNX-Releases, opset- und IR-Versionen ist in der onnxruntime-Dokumentation beschrieben: https://github.com/microsoft/onnxruntime/blob/v1.10.0/docs/Versioning.md
  1. Offizielles DarkNet-Repository: https://github.com/pjreddie/darknet. Die Konvertierungsregeln des Dokumentstands beruhen auf dessen letztem master-Commit 810d7f7; dies ist keine Aussage über den heutigen HEAD.
  1. Beim Laden eines PyTorch-Modells (torchscript) wird dieselbe PyTorch-Version für Modellexport und RKNN-Konvertierung empfohlen. Unterschiedliche Versionen können zum Konvertierungsfehler führen.
  1. Die ARM64-Version unterstützt laut Dokumentstand nur PyTorch und ONNX; andere Frameworks werden dort nicht unterstützt.

2 RKNN-Objekt und Ressourcenlebenszyklus

Diese Funktionsgruppe initialisiert das RKNN-Objekt und gibt es frei. Vor der Verwendung sämtlicher RKNN-Toolkit2-APIs RKNN() aufrufen; nach Abschluss der Aufgabe das Objekt mit release() freigeben.

Bei der Initialisierung steuern verbose und verbose_file die ausführliche Protokollierung etwa beim Laden und Erstellen von Modellen. verbose hat den Typ bool: True aktiviert detaillierte Ausgaben von RKNN-Toolkit2. verbose_file ist eine Zeichenfolge; enthält sie einen Dateipfad, wird das Protokoll dort gespeichert. Auch dafür muss verbose auf True stehen.

Beispielcode:

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

...

rknn.release()

Quelle und redaktionelle Hinweise

Technische Kapitel sind nach Anwendung aufgeteilt. Code, Bezeichner und Parameter bleiben erhalten. Chinesisch folgt der chinesischen Quelle, Englisch, Russisch und Deutsch der englischen. Für Kapitel ohne Abbildungen wurden keine erfundenen Bilder hinzugefügt.

Redaktionelle Hinweise: Protokolle mit SDK 1.5.2 bleiben historische Beispiele, keine V2.5.0-Messungen. Die Python-Zelle für Ubuntu20.04 unterscheidet sich: chinesisch 3.8/3.9, englisch 3.8/3.8; ebenso für Debian11; im ARM64-Abschnitt ist Debian weiterhin als x64 bezeichnet. Quellwerte bleiben erhalten; tatsächliches Installationspaket prüfen. V2.5.0 ergänzt C++ codegen und präzisiert Quantisierung und Speicherstrategien; alte Parameter ersetzen nicht die neue Quelle.

RKNN-Toolkit2 · ArmSoM documentation

Dieses Thema entdecken → · Lernpfade →