AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Optional: Konfigurieren des Geräts für die ML-Qualifizierung
IDT für AWS IoT Greengrass stellt Machine-Learning(ML)-Qualifizierungstests bereit, mit denen Sie überprüfen können, ob Ihre Geräte ML-Inferenzen mit Cloud-geschulten Modellen lokal ausführen können.
Um ML-Qualifizierungstests ausführen zu können, müssen Sie zunächst Ihre Geräte wie unter Konfigurieren Ihres Geräts für die Ausführung von IDT-Tests beschrieben konfigurieren. Führen Sie dann die Schritte in diesem Thema aus, um Abhängigkeiten für die ML-Frameworks zu installieren, die Sie ausführen möchten.
Zum Ausführen von Tests für die ML-Qualifizierung ist IDT v3.1.0 oder höher erforderlich.
Installieren von Abhängigkeiten für ML-Frameworks
Alle Abhängigkeiten für ML-Frameworks müssen im Verzeichnis /usr/local/lib/python3.x/site-packages
installiert werden. Um sicherzustellen, dass sie im richtigen Verzeichnis installiert sind, empfehlen wir, bei der Installation der Abhängigkeiten sudo
-Root-Berechtigungen zu verwenden. Virtuelle Umgebungen werden für Qualifizierungstests nicht unterstützt.
Anmerkung
Wenn Sie Lambda-Funktionen testen, die mitContainerisierung(inGreengrass-Containermode), Symlinks für Python-Bibliotheken erstellen unter/usr/local/lib/python3.x
wird nicht unterstützt. Um Fehler zu vermeiden, müssen Sie die Abhängigkeiten im richtigen Verzeichnis installieren.
Führen Sie die Schritte aus, um die Abhängigkeiten für Ihr Ziel-Framework zu installieren:
Installieren von Apache MXNet-Abhängigkeiten
IDT-Qualifizierungstests für dieses Framework haben folgende Abhängigkeiten:
-
Python 3.6 oder Python 3.7.
Anmerkung
Wenn Sie Python 3.6 verwenden, müssen Sie einen symbolischen Link von Python 3.7- zu Python 3.6 Binärdateien erstellen. Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt. Zum Beispiel:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
Apache MXNet v1.2.1 oder höher.
-
NumPy. Die Version muss mit Ihrer MXNet-Version kompatibel sein.
Installieren von MXNet
Befolgen Sie die Anweisungen in der MXNet-Dokumentation, um MXNet zu installieren
Anmerkung
Wenn sowohl Python 2.x als auch Python 3.x auf Ihrem Gerät installiert ist, verwenden Sie Python 3.x in den Befehlen, die Sie zum Installieren der Abhängigkeiten ausführen.
Validieren der MXNet-Installation
Wählen Sie eine der folgenden Optionen, um die MXNet-Installation zu validieren.
Option 1: Verwenden Sie SSH in Ihr Gerät integrieren und Skripts ausführen
-
Integrieren Sie SSH in Ihr Gerät.
-
Führen Sie die folgenden Skripts aus, um zu überprüfen, ob die Abhängigkeiten korrekt installiert sind.
sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
Die Ausgabe gibt die Versionsnummer aus und das Skript sollte fehlerfrei beendet werden.
Option 2: IDT-Abhängigkeitstest ausführen
-
Stellen Sie sicher, dass
device.json
für die ML-Qualifizierung konfiguriert ist. Weitere Informationen finden Sie unter Konfigurieren von device.json für die ML-Qualifizierung. -
Führen Sie den Abhängigkeitstest für das Framework aus.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id mxnet_dependency_checkIn der Testzusammenfassung wird das Ergebnis
PASSED
fürmldependencies
angezeigt.
Install TensorFlow Abhängigkeiten
IDT-Qualifizierungstests für dieses Framework haben folgende Abhängigkeiten:
-
Python 3.6 oder Python 3.7.
Anmerkung
Wenn Sie Python 3.6 verwenden, müssen Sie einen symbolischen Link von Python 3.7- zu Python 3.6 Binärdateien erstellen. Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt. Zum Beispiel:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Installieren von TensorFlow
Folgen Sie den Anweisungen im TensorFlow zu installierende Dokumentation TensorFlow 1.xmit pip
Anmerkung
Wenn sowohl Python 2.x als auch Python 3.x auf Ihrem Gerät installiert ist, verwenden Sie Python 3.x in den Befehlen, die Sie zum Installieren der Abhängigkeiten ausführen.
Validierung des TensorFlow Installation
Wählen Sie eine der folgenden Optionen, um das TensorFlow installation.
Option 1: Führen Sie SSH in Ihr Gerät ein und führen Sie ein Skript aus
-
Integrieren Sie SSH in Ihr Gerät.
-
Führen Sie das folgende Skript aus, um zu überprüfen, ob die Abhängigkeit korrekt installiert ist.
sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
Die Ausgabe gibt die Versionsnummer aus und das Skript sollte fehlerfrei beendet werden.
Option 2: IDT-Abhängigkeitstest ausführen
-
Stellen Sie sicher, dass
device.json
für die ML-Qualifizierung konfiguriert ist. Weitere Informationen finden Sie unter Konfigurieren von device.json für die ML-Qualifizierung. -
Führen Sie den Abhängigkeitstest für das Framework aus.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id tensorflow_dependency_checkIn der Testzusammenfassung wird das Ergebnis
PASSED
fürmldependencies
angezeigt.
Installieren von Amazon SageMaker Abhängigkeiten von Neo Deep Learning Runtime (DLR)
IDT-Qualifizierungstests für dieses Framework haben folgende Abhängigkeiten:
-
Python 3.6 oder Python 3.7.
Anmerkung
Wenn Sie Python 3.6 verwenden, müssen Sie einen symbolischen Link von Python 3.7- zu Python 3.6 Binärdateien erstellen. Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt. Zum Beispiel:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
SageMaker Neo DLR.
-
numpy.
Nachdem Sie die DLR-Testabhängigkeiten installiert haben, müssen Sie das Modell kompilieren.
Installieren von DLR
Befolgen Sie die Anweisungen in der DLR-Dokumentation, um die Neo DLR zu installieren
Anmerkung
Wenn sowohl Python 2.x als auch Python 3.x auf Ihrem Gerät installiert ist, verwenden Sie Python 3.x in den Befehlen, die Sie zum Installieren der Abhängigkeiten ausführen.
Validieren der DLR-Installation
Wählen Sie eine der folgenden Optionen, um die DLR-Installation zu validieren.
Option 1: Verwenden Sie SSH in Ihr Gerät integrieren und Skripts ausführen
-
Integrieren Sie SSH in Ihr Gerät.
-
Führen Sie die folgenden Skripts aus, um zu überprüfen, ob die Abhängigkeiten korrekt installiert sind.
sudo python3.7 -c "import dlr; print(dlr.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
Die Ausgabe gibt die Versionsnummer aus und das Skript sollte fehlerfrei beendet werden.
Option 2: IDT-Abhängigkeitstest ausführen
-
Stellen Sie sicher, dass
device.json
für die ML-Qualifizierung konfiguriert ist. Weitere Informationen finden Sie unter Konfigurieren von device.json für die ML-Qualifizierung. -
Führen Sie den Abhängigkeitstest für das Framework aus.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id dlr_dependency_checkIn der Testzusammenfassung wird das Ergebnis
PASSED
fürmldependencies
angezeigt.
Kompilieren des DLR-Modells
Sie müssen das DLR-Modell kompilieren, bevor Sie es für ML-Qualifizierungstests verwenden können. Wählen Sie dazu eine der folgenden Optionen:
Option 1: Verwenden von Amazon SageMaker um das Modell zu kompilieren
Gehen Sie folgendermaßen vor, um SageMaker um das von IDT bereitgestellte ML-Modell zu kompilieren. Dieses Modell wurde mit Apache MXNet vorgeschult.
-
Vergewissern Sie sich, dass Ihr Gerät von SageMaker unterstützt wird. Weitere Informationen finden Sie im .Optionen des ZielgerätsdieAmazon SageMaker -API-Referenzaus. Wenn Ihr Gerätetyp derzeit nicht von SageMaker unterstützt wird, führen Sie die Schritte unter ausOption 2: Kompilieren des DLR-Modells mithilfe von TVMaus.
Anmerkung
Ausführen des DLR-Tests mit einem von kompilierten Modell SageMaker kann 4 oder 5 Minuten dauern. Halten Sie IDT während dieser Zeit nicht an.
-
Laden Sie die Tarball-Datei herunter, die das unkompilierte, vorgeschulte MXNet-Modell für DLR enthält:
-
Extrahieren Sie die Tarball-Datei. Dieser Befehl generiert die folgende Verzeichnisstruktur.
-
Verschieben Sie
synset.txt
aus dem Verzeichnisresnet18
weg. Notieren Sie sich den neuen Speicherort. Sie kopieren diese Datei später in das kompilierte Modellverzeichnis. -
Komprimieren Sie den Inhalt des Verzeichnisses
resnet18
.tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
Hochladen der komprimierten Datei in einen Amazon S3 S3-Bucket in IhremAWS-Kontound führen Sie anschließend die Schritte in ausKompilieren eines Modells (Konsole)um einen Kompilierungsauftrag zu erstellen.
-
Verwenden Sie für Input configuration (Eingabekonfiguration) die folgenden Werte:
-
Geben Sie für Data input configuration (Dateneingabekonfiguration) den Wert
{"data": [1, 3, 224, 224]}
ein. -
Wählen Sie für Machine Learning Framework (Machine-Learning-Framework) die Option
MXNet
.
-
-
Verwenden Sie für Output configuration (Ausgabekonfiguration) die folgenden Werte:
-
FürS3 Output location locationgeben Sie den Pfad zum Amazon S3 S3-Bucket oder Ordner ein, in dem das kompilierte Modell gespeichert werden soll.
-
Wählen Sie für Target device (Zielgerät) Ihren Gerätetyp.
-
-
-
Laden Sie das kompilierte Modell vom angegebenen Ausgabespeicherort herunter und entpacken Sie die Datei.
-
Kopieren Sie
synset.txt
in das kompilierte Modellverzeichnis. -
Ändern Sie den Namen des kompilierten Modellverzeichnisses in
resnet18
.Das kompilierte Modellverzeichnis muss die folgende Verzeichnisstruktur aufweisen.
Option 2: Kompilieren des DLR-Modells mithilfe von TVM
Gehen Sie folgendermaßen vor, um das von IDT bereitgestellte ML-Modell mithilfe von TVM zu kompilieren. Dieses Modell wurde mit Apache MXNet vorgeschult. Daher müssen Sie MXNet auf dem Computer oder Gerät installieren, auf dem Sie das Modell kompilieren. Befolgen Sie die Anweisungen in der MXNet-Dokumentation
Anmerkung
Es wird empfohlen, das Modell auf dem Zielgerät zu kompilieren. Dies ist optional, kann jedoch zur Gewährleistung der Kompatibilität beitragen und potenzielle Probleme minimieren.
-
Laden Sie die Tarball-Datei herunter, die das unkompilierte, vorgeschulte MXNet-Modell für DLR enthält:
-
Extrahieren Sie die Tarball-Datei. Dieser Befehl generiert die folgende Verzeichnisstruktur.
-
Befolgen Sie die Anweisungen in der TVM-Dokumentation, um TVM aus der Quelle für Ihre Plattform zu erstellen und zu installieren
. -
Führen Sie nach der Erstellung von TVM die TVM-Kompilierung für das Modell resnet18 aus. Die folgenden Schritte basieren auf dem Quick Start Tutorial for Compiling Deep Learning Models
in der TVM-Dokumentation. -
Öffnen Sie die Datei
relay_quick_start.py
aus dem geklonten TVM-Repository. -
Aktualisieren Sie den Code, der ein neuronales Netzwerk im Relais definiert
. Verwenden Sie eine der folgenden Optionen: -
Option 1: Verwenden von
mxnet.gluon.model_zoo.vision.get_model
um das Relaismodul und die Parameter zu erhalten:from mxnet.gluon.model_zoo.vision import get_model block = get_model('resnet18_v1', pretrained=True) mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
-
Option 2: Kopieren Sie aus dem nicht kompilierten Modell, das Sie in Schritt 1 heruntergeladen haben, die folgenden Dateien in das gleiche Verzeichnis wie
relay_quick_start.py
file. Diese Dateien enthalten das Relaismodul und die Parameter.-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
Aktualisieren Sie den Code, der das kompilierte Modul speichert und lädt
, sodass der folgende Code verwendet wird. from tvm.contrib import util path_lib = "deploy_lib.so" # Export the model library based on your device architecture lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++") with open("deploy_graph.json", "w") as fo: fo.write(graph) with open("deploy_param.params", "wb") as fo: fo.write(relay.save_param_dict(params))
-
Erstellen Sie das Modell:
python3 tutorials/relay_quick_start.py --build-dir ./model
Dieser Befehl generiert die folgenden Dateien.
-
deploy_graph.json
-
deploy_lib.so
-
deploy_param.params
-
-
-
Kopieren Sie die generierten Modelldateien in ein Verzeichnis mit dem Namen
resnet18
. Dies ist Ihr kompiliertes Modellverzeichnis. -
Kopieren Sie das kompilierte Modellverzeichnis auf Ihren Hostcomputer. Kopieren Sie dann
synset.txt
aus dem nicht kompilierten Modell, das Sie in Schritt 1 heruntergeladen haben, in das kompilierte Modellverzeichnis.Das kompilierte Modellverzeichnis muss die folgende Verzeichnisstruktur aufweisen.
Weiter mitKonfigurieren Sie IhrenAWSAnmeldedaten unddevice.jsonOrdneraus.