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.x
n'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.6path-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
-
SSH dans votre appareil.
-
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
-
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. -
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_checkLe récapitulatif du test affiche un résultat
PASSED
pourmldependencies
.
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.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Installation de TensorFlow
Suivez les instructions de la section TensorFlow documentation à installer TensorFlow 1.xavec pip
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
-
SSH dans votre appareil.
-
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
-
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. -
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_checkLe récapitulatif du test affiche un résultat
PASSED
pourmldependencies
.
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.6path-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
-
SSH dans votre appareil.
-
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
-
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. -
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_checkLe récapitulatif du test affiche un résultat
PASSED
pourmldependencies
.
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.
-
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.
-
Téléchargez le fichier tarball qui contient le modèle MxNet préformé non compilé pour DLR :
-
Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.
-
Déplacez
synset.txt
hors du répertoireresnet18
. Notez le nouvel emplacement. Vous copierez ce fichier dans le répertoire du modèle compilé ultérieurement. -
Compressez le contenu du répertoire
resnet18
.tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
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.
-
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
.
-
-
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.
-
-
-
Téléchargez le modèle compilé à partir de l'emplacement de sortie spécifié, puis décompressez le fichier.
-
Copiez
synset.txt
dans le répertoire du modèle compilé. -
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.
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.
-
Téléchargez le fichier tarball qui contient le modèle MxNet préformé non compilé pour DLR :
-
Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.
-
Suivez les instructions de la documentation TVM pour créer et installer TVM à partir de la source pour votre plateforme
. -
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. -
Ouvrez le fichier
relay_quick_start.py
à partir du référentiel TVM cloné. -
Mettez à jour le code qui définit un réseau neuronal en relais
. Vous pouvez utiliser une des options suivantes : -
Option 1 : Utiliser
mxnet.gluon.model_zoo.vision.get_model
Pour 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 fichier
relay_quick_start.py
dans le fichier. Ces fichiers contiennent le module et les paramètres de relais.-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
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))
-
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
-
-
-
Copiez les fichiers du modèle généré dans un répertoire nommé
resnet18
. Ceci est votre répertoire de modèle compilé. -
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.
Ensuite, vous devez .configurez votreAWSinformations d'identification etdevice.jsonfichier.