Optional: Konfigurieren des Geräts für die ML-Qualifizierung - AWS IoT Greengrass

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.xwird 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.6 path-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

  1. Integrieren Sie SSH in Ihr Gerät.

  2. 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

  1. 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.

  2. 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_check

    In der Testzusammenfassung wird das Ergebnis PASSED für mldependencies 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.6 path-to-python-3.7/python3.7
  • TensorFlow 1.x.

Installieren von TensorFlow

Folgen Sie den Anweisungen im TensorFlow zu installierende Dokumentation TensorFlow 1.xmit pipoderaus der Quelleaus.

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

  1. Integrieren Sie SSH in Ihr Gerät.

  2. 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

  1. 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.

  2. 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_check

    In der Testzusammenfassung wird das Ergebnis PASSED für mldependencies 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.6 path-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

  1. Integrieren Sie SSH in Ihr Gerät.

  2. 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

  1. 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.

  2. 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_check

    In der Testzusammenfassung wird das Ergebnis PASSED für mldependencies 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.

  1. 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.

  2. Laden Sie die Tarball-Datei herunter, die das unkompilierte, vorgeschulte MXNet-Modell für DLR enthält:

  3. Extrahieren Sie die Tarball-Datei. Dieser Befehl generiert die folgende Verzeichnisstruktur.

    Das Verzeichnis resnet18 enthält drei Dateien.
  4. Verschieben Sie synset.txt aus dem Verzeichnis resnet18 weg. Notieren Sie sich den neuen Speicherort. Sie kopieren diese Datei später in das kompilierte Modellverzeichnis.

  5. Komprimieren Sie den Inhalt des Verzeichnisses resnet18.

    tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
  6. 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.

    1. 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.

    2. 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.

  7. Laden Sie das kompilierte Modell vom angegebenen Ausgabespeicherort herunter und entpacken Sie die Datei.

  8. Kopieren Sie synset.txt in das kompilierte Modellverzeichnis.

  9. Ändern Sie den Namen des kompilierten Modellverzeichnisses in resnet18.

    Das kompilierte Modellverzeichnis muss die folgende Verzeichnisstruktur aufweisen.

    Das kompilierte Modellverzeichnis resnet18 enthält vier Dateien.

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, um MXNet zu installieren.

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.

 

  1. Laden Sie die Tarball-Datei herunter, die das unkompilierte, vorgeschulte MXNet-Modell für DLR enthält:

  2. Extrahieren Sie die Tarball-Datei. Dieser Befehl generiert die folgende Verzeichnisstruktur.

    Das Verzeichnis resnet18 enthält drei Dateien.
  3. Befolgen Sie die Anweisungen in der TVM-Dokumentation, um TVM aus der Quelle für Ihre Plattform zu erstellen und zu installieren.

  4. 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.

    1. Öffnen Sie die Datei relay_quick_start.py aus dem geklonten TVM-Repository.

    2. Aktualisieren Sie den Code, der ein neuronales Netzwerk im Relais definiert. Verwenden Sie eine der folgenden Optionen:

      • Option 1: Verwenden vonmxnet.gluon.model_zoo.vision.get_modelum 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 wierelay_quick_start.pyfile. Diese Dateien enthalten das Relaismodul und die Parameter.

        • resnet18v1-symbol.json

        • resnet18v1-0000.params

    3. 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))
    4. 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

  5. Kopieren Sie die generierten Modelldateien in ein Verzeichnis mit dem Namen resnet18. Dies ist Ihr kompiliertes Modellverzeichnis.

  6. 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.

    Das kompilierte Modellverzeichnis resnet18 enthält vier Dateien.

Weiter mitKonfigurieren Sie IhrenAWSAnmeldedaten unddevice.jsonOrdneraus.