Facultatif : Configuration de votre appareil pour la qualification ML - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Facultatif : Configuration de votre appareil pour la qualification ML

IDT pour AWS IoT Greengrass fournit des tests de qualification Machine Learning pour valider le fait que vos appareils peuvent réaliser des inférences ML localement à l'aide de modèles formés dans le cloud.

Pour exécuter des tests de qualification ML, vous devez d'abord configurer vos appareils comme décrit dans Configurer votre appareil afin d'exécuter des tests IDT. Ensuite, suivez les étapes de cette rubrique pour installer les dépendances pour les frameworks ML que vous souhaitez exécuter.

IDT v3.1.0 ou version ultérieure est nécessaire pour exécuter les tests de qualification ML.

Installation des dépendances du framework ML

Toutes les dépendances du framework ML doivent être installées sous le répertoire /usr/local/lib/python3.x/site-packages. Pour vous assurer qu'elles sont installées dans le répertoire correct, nous vous recommandons d'utiliser les autorisations racine sudo lors de l'installation des dépendances. Les environnements virtuels ne sont pas pris en charge pour les tests de qualification.

Note

Si vous testez des fonctions Lambda exécutées avecconteneurisation(dansConteneur Greengrassmode), créant des liens symboliques pour les bibliothèques Python sous/usr/local/lib/python3.xn'est pas pris en charge. Pour éviter les erreurs, vous devez installer les dépendances dans le répertoire correct.

Suivez les étapes pour installer les dépendances pour votre framework cible :

 

Installation des dépendances Apache MxNet

Les tests de qualification IDT pour ce framework ont les dépendances suivantes :

  • Python 3.6 ou Python 3.7.

    Note

    Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • Apache MxNet v1.2.1 ou version ultérieure.

  • NumPy. La version doit être compatible avec votre version MxNet.

Installation de MxNet

Suivez les instructions de la documentation MxNet pour installer MxNet.

Note

Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

Validation de l'installation de MxNet

Choisissez l'une des options suivantes pour valider l'installation de MxNet.

Option 1 : SSH dans votre appareil et exécuter des scripts

  1. SSH dans votre appareil.

  2. Exécutez les scripts suivants pour vérifier que les dépendances sont correctement installées.

    sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    La sortie imprime le numéro de version et le script doit se terminer sans erreur.

Option 2 : Exécuter le test de dépendance IDT

  1. Assurez-vous que le fichier device.json est configuré pour la qualification ML. Pour plus d'informations, consultez Configurer device.json pour la qualification ML.

  2. Exécutez le test des dépendances pour le framework.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id mxnet_dependency_check

    Le récapitulatif du test affiche un résultat PASSED pour mldependencies.

 

Install TensorFlow dépendances

Les tests de qualification IDT pour ce framework ont les dépendances suivantes :

  • Python 3.6 ou Python 3.7.

    Note

    Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • TensorFlow 1.x.

Installation de TensorFlow

Suivez les instructions de la section TensorFlow documentation à installer TensorFlow 1.xavec pipouà partir de source.

Note

Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

Validation du TensorFlow mise en place

Choisissez une des options suivantes pour valider le TensorFlow installation.

Option 1 : SSH dans votre appareil et exécuter un script

  1. SSH dans votre appareil.

  2. Exécutez le script suivant pour vérifier que la dépendance est correctement installée.

    sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"

    La sortie imprime le numéro de version et le script doit se terminer sans erreur.

Option 2 : Exécuter le test de dépendance IDT

  1. Assurez-vous que le fichier device.json est configuré pour la qualification ML. Pour plus d'informations, consultez Configurer device.json pour la qualification ML.

  2. Exécutez le test des dépendances pour le framework.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id tensorflow_dependency_check

    Le récapitulatif du test affiche un résultat PASSED pour mldependencies.

 

Installez Amazon SageMaker Dépendances Neo Deep Learning Runtime (DLR)

Les tests de qualification IDT pour ce framework ont les dépendances suivantes :

  • Python 3.6 ou Python 3.7.

    Note

    Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • SageMaker Neo DLR.

  • numpy.

Après avoir installé les dépendances de test DLR, vous devez compiler le modèle.

Installation de DLR

Suivez les instructions de la documentation DLR pour installer le Neo DLR.

Note

Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

Validation de l'installation de DLR

Choisissez une des options suivantes pour valider l'installation de DLR.

Option 1 : SSH dans votre appareil et exécuter des scripts

  1. SSH dans votre appareil.

  2. Exécutez les scripts suivants pour vérifier que les dépendances sont correctement installées.

    sudo python3.7 -c "import dlr; print(dlr.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    La sortie imprime le numéro de version et le script doit se terminer sans erreur.

Option 2 : Exécuter le test de dépendance IDT

  1. Assurez-vous que le fichier device.json est configuré pour la qualification ML. Pour plus d'informations, consultez Configurer device.json pour la qualification ML.

  2. Exécutez le test des dépendances pour le framework.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id dlr_dependency_check

    Le récapitulatif du test affiche un résultat PASSED pour mldependencies.

Compilation du modèle DLR

Vous devez compiler le modèle DLR avant de pouvoir l'utiliser pour les tests de qualification ML. Pour les étapes, choisissez une des options suivantes :

Option 1 : Utiliser Amazon SageMaker pour compiler le modèle

Suivez ces étapes pour utiliser SageMaker pour compiler le modèle ML fourni par IDT. Ce modèle est préformé avec Apache MxNet.

  1. Vérifiez que le type de votre appareil est pris en charge par SageMaker. Pour plus d'informations, consultez le .options d'équipement cibleleAmazon SageMaker API Reference. Si le type de votre appareil n'est pas actuellement pris en charge par SageMaker, suivez les étapes deOption 2 : Utiliser TVM pour compiler le modèle DLR.

    Note

    Exécuter le test DLR avec un modèle compilé par SageMaker peut prendre 4 ou 5 minutes. N'arrêtez pas IDT au cours de cette période.

  2. Téléchargez le fichier tarball qui contient le modèle MxNet préformé non compilé pour DLR :

  3. Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.

    Le répertoire resnet18 contient trois fichiers.
  4. Déplacez synset.txt hors du répertoire resnet18. Notez le nouvel emplacement. Vous copierez ce fichier dans le répertoire du modèle compilé ultérieurement.

  5. Compressez le contenu du répertoire resnet18.

    tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
  6. Chargez le fichier compressé sur un compartiment Amazon S3 de votreCompte AWS, puis suivez la procédure décrite dansCompilez un modèle (Console)pour créer une tâche de compilation.

    1. Pour Configuration d'entrée, utilisez les valeurs suivantes :

      • Pour Configuration d'entrée de données, entrez {"data": [1, 3, 224, 224]}.

      • Pour Cadre de machine learning, choisissez MXNet.

    2. Pour Configuration de sortie, utilisez les valeurs suivantes :

      • PourEmplacement de sortie S3, entrez le chemin d'accès au compartiment Amazon S3 ou au dossier dans lequel vous souhaitez stocker le modèle compilé.

      • Pour Périphérique cible, choisissez votre type d'appareil.

  7. Téléchargez le modèle compilé à partir de l'emplacement de sortie spécifié, puis décompressez le fichier.

  8. Copiez synset.txt dans le répertoire du modèle compilé.

  9. Renommez le répertoire du modèle compilé en resnet18.

    Votre répertoire de modèle compilé doit avoir la structure de répertoire suivante.

    Le répertoire du modèle compilé resnet18 contient quatre fichiers.

Option 2 : Utiliser TVM pour compiler le modèle DLR

Suivez ces étapes pour utiliser TVM afin de compiler le modèle ML fourni par IDT. Ce modèle étant préformé avec Apache MxNet, vous devez installer MxNet sur l'ordinateur ou l'appareil sur lequel vous compilez le modèle. Pour installer MxNet, suivez les instructions de la documentation MxNet.

Note

Nous vous recommandons de compiler le modèle sur votre appareil cible. Cette pratique est facultative, mais elle peut aider à assurer la compatibilité et à atténuer les problèmes potentiels.

 

  1. Téléchargez le fichier tarball qui contient le modèle MxNet préformé non compilé pour DLR :

  2. Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.

    Le répertoire resnet18 contient trois fichiers.
  3. Suivez les instructions de la documentation TVM pour créer et installer TVM à partir de la source pour votre plateforme.

  4. Une fois TVM créé, exécutez la compilation TVM pour le modèle resnet18. Les étapes suivantes sont basées sur le didacticiel Quick Start Tutorial for Compiling Deep Learning Models, de la documentation TVM.

    1. Ouvrez le fichier relay_quick_start.py à partir du référentiel TVM cloné.

    2. Mettez à jour le code qui définit un réseau neuronal en relais. Vous pouvez utiliser une des options suivantes :

      • Option 1 : Utilisermxnet.gluon.model_zoo.vision.get_modelPour obtenir le module et les paramètres de relais :

        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 : À partir du modèle non compilé que vous avez téléchargé à l'étape 1, copier les fichiers suivants dans le même répertoire que le fichierrelay_quick_start.pydans le fichier. Ces fichiers contiennent le module et les paramètres de relais.

        • resnet18v1-symbol.json

        • resnet18v1-0000.params

    3. Mettez à jour le code qui enregistre et charge le module compilé pour utiliser le code suivant.

      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. Créez le modèle :

      python3 tutorials/relay_quick_start.py --build-dir ./model

      Cette commande génère les fichiers suivants.

      • deploy_graph.json

      • deploy_lib.so

      • deploy_param.params

  5. Copiez les fichiers du modèle généré dans un répertoire nommé resnet18. Ceci est votre répertoire de modèle compilé.

  6. Copiez le répertoire de modèle compilé sur votre ordinateur hôte. Copiez ensuite synset.txt à partir du modèle non compilé que vous avez téléchargé à l'étape 1 dans le répertoire de modèle compilé.

    Votre répertoire de modèle compilé doit avoir la structure de répertoire suivante.

    Le répertoire du modèle compilé resnet18 contient quatre fichiers.

Ensuite, vous devez .configurez votreAWSinformations d'identification etdevice.jsonfichier.