AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Opzionale: Configurazione del dispositivo per la qualificazione di ML
IDT per AWS IoT Greengrass fornisce test di qualificazione di machine learning (ML) per verificare che i dispositivi possano eseguire l'inferenza di ML localmente utilizzando modelli basati su cloud.
Per eseguire i test di qualificazione di ML, è necessario innanzitutto configurare i dispositivi come descritto in Configurazione del dispositivo per eseguire test IDT. Seguire quindi la procedura descritta in questo argomento per installare le dipendenze per i framework ML che si desidera eseguire.
IDT v3.1.0 o versione successiva è necessario per eseguire i test per la qualificazione di ML.
Installazione delle dipendenze del framework ML
Tutte le dipendenze framework ML devono essere installate nella directory /usr/local/lib/python3.x/site-packages
. Per assicurarsi che siano installate nella directory corretta, si consiglia di utilizzare le autorizzazioni root sudo
durante l'installazione delle dipendenze. Gli ambienti virtuali non sono supportati per i test di qualificazione.
Nota
Se stai testando le funzioni Lambda eseguite concontainerizzazione(inContainer Greengrassmodalità), creazione di collegamenti simbolici per le librerie Python sotto/usr/local/lib/python3.x
non è supportata. Per evitare errori, è necessario installare le dipendenze nella directory corretta.
Seguire i passaggi per installare le dipendenze per il framework di destinazione:
Installare le dipendenze di Apache MXNet
I test di qualificazione IDT per questo framework hanno le seguenti dipendenze:
-
Python 3.6 o Python 3.7.
Nota
Se si sta usando Python 3.6, occorre creare un collegamento simbolico dai dati binari di Python 3.7 a Python 3.6. Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass. Ad esempio:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
Apache MxNet v1.2.1 o versione successiva.
-
NumPy. La versione deve essere compatibile con la versione di MxNet in uso.
Installazione di MXNet
Seguire le istruzioni contenute nella documentazione di MxNet per installare MxNet
Nota
Se Python 2.x e Python 3.x sono entrambi installati sul dispositivo, utilizzare Python 3.x nei comandi eseguiti per installare le dipendenze.
Convalida dell'installazione di MXNet
Scegliere una delle seguenti opzioni per convalidare l'installazione di MXNet.
Opzione 1: SSH nel dispositivo ed eseguire gli script
-
SSH nel tuo dispositivo.
-
Eseguire gli script seguenti per verificare che le dipendenze siano installate correttamente.
sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
L'output stampa il numero di versione e lo script dovrebbe essere privo di errori.
Opzione 2: Eseguire il test di dipendenza IDT
-
Assicurarsi che
device.json
sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML . -
Eseguire il test delle dipendenze per il framework.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id mxnet_dependency_checkIl riepilogo del test visualizza un risultato
PASSED
permldependencies
.
Installa TensorFlow dipendenze
I test di qualificazione IDT per questo framework hanno le seguenti dipendenze:
-
Python 3.6 o Python 3.7.
Nota
Se si sta usando Python 3.6, occorre creare un collegamento simbolico dai dati binari di Python 3.7 a Python 3.6. Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass. Ad esempio:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Installazione di TensorFlow
Segui le istruzioni riportate nella sezione TensorFlow documentazione da installare TensorFlow 1.xcon pip
Nota
Se Python 2.x e Python 3.x sono entrambi installati sul dispositivo, utilizzare Python 3.x nei comandi eseguiti per installare le dipendenze.
Convalida del TensorFlow installazione
Scegliere una delle seguenti opzioni per convalidare il TensorFlow installazione.
Opzione 1: SSH nel dispositivo ed eseguire uno script
-
SSH nel tuo dispositivo.
-
Eseguire lo script seguente per verificare che la dipendenza sia installata correttamente.
sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
L'output stampa il numero di versione e lo script dovrebbe essere privo di errori.
Opzione 2: Eseguire il test di dipendenza IDT
-
Assicurarsi che
device.json
sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML . -
Eseguire il test delle dipendenze per il framework.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id tensorflow_dependency_checkIl riepilogo del test visualizza un risultato
PASSED
permldependencies
.
Installa Amazon SageMaker Dipendenze Neo Deep Learning Runtime
I test di qualificazione IDT per questo framework hanno le seguenti dipendenze:
-
Python 3.6 o Python 3.7.
Nota
Se si sta usando Python 3.6, occorre creare un collegamento simbolico dai dati binari di Python 3.7 a Python 3.6. Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass. Ad esempio:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
SageMaker Neo DLR.
-
numpy.
Dopo aver installato le dipendenze di test DLR, è necessario compilare il modello.
Installazione di DLR
Seguire le istruzioni contenute nella documentazione di DLR per installare Neo DLR
Nota
Se Python 2.x e Python 3.x sono entrambi installati sul dispositivo, utilizzare Python 3.x nei comandi eseguiti per installare le dipendenze.
Convalida dell'installazione di DLR
Scegliere una delle seguenti opzioni per convalidare l'installazione di DLR.
Opzione 1: SSH nel dispositivo ed eseguire gli script
-
SSH nel tuo dispositivo.
-
Eseguire gli script seguenti per verificare che le dipendenze siano installate correttamente.
sudo python3.7 -c "import dlr; print(dlr.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
L'output stampa il numero di versione e lo script dovrebbe essere privo di errori.
Opzione 2: Eseguire il test di dipendenza IDT
-
Assicurarsi che
device.json
sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML . -
Eseguire il test delle dipendenze per il framework.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id dlr_dependency_checkIl riepilogo del test visualizza un risultato
PASSED
permldependencies
.
Compilare il modello DLR
È necessario compilare il modello DLR prima di poterlo utilizzare per i test di qualificazione di ML. Per i passaggi, scegliere una delle seguenti opzioni:
Opzione 1: Utilizzo di Amazon SageMaker per compilare il modello
Attieniti alla seguente procedura per utilizzare SageMaker per compilare il modello ML fornito da IDT. Questo modello è preaddestrato con Apache MXNet.
-
Verificare che il tipo di dispositivo sia supportato da SageMaker. Per ulteriori informazioni, consulta la .Opzioni del dispositivo di destinazioneloAmazon SageMaker Documentazione di riferimento API. Se il tipo di dispositivo non è attualmente supportato da SageMaker, attenersi alla procedura descritta inOpzione 2: Utilizzo di TVM per compilare il modello DLR.
Nota
Esecuzione del test DLR con un modello compilato da SageMaker Potrebbero richiedere 4 o 5 minuti. Non arrestare IDT durante questo periodo.
-
Scaricare il file tarball che contiene il modello MXNet non compilato e preaddestrato per DLR:
-
Decomprimere il tarball. Questo comando genera la seguente struttura di directory.
-
Spostare
synset.txt
fuori dalla directoryresnet18
. Prendere nota del nuovo percorso. Copiare questo file nella directory del modello compilato in un secondo momento. -
Comprimere il contenuto della directory
resnet18
.tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
Caricare il file compresso in un bucket Amazon S3 nelAccount AWSe quindi segui i passaggi descritti inCompilazione di un modello (console)per creare un processo di compilazione.
-
Per Input configuration (Configurazione di input), utilizzare i seguenti valori:
-
Per Data input configuration (Configurazione di input dati), immettere
{"data": [1, 3, 224, 224]}
. -
Per Machine learning framework (Framework di machine learning), selezionare
MXNet
.
-
-
Per Output configuration (Configurazione di output), utilizzare i seguenti valori:
-
PerPercorso di output S3, immetti il percorso del bucket o della cartella Amazon S3 in cui desideri archiviare il modello compilato.
-
Per Target device (Dispositivo di destinazione), scegliere il tipo di dispositivo.
-
-
-
Scaricare il modello compilato dal percorso di output specificato, quindi decomprimere il file.
-
Copiare
synset.txt
nella directory del modello compilato. -
Modificare il nome della directory del modello compilato in
resnet18
.La directory del modello compilato deve avere la seguente struttura della directory.
Opzione 2: Utilizzo di TVM per compilare il modello DLR
Seguire questi passaggi per utilizzare TVM per compilare il modello di ML fornito da IDT. Questo modello è preaddestrato con Apache MXNet, quindi è necessario installare MXNet sul computer o dispositivo in cui si compila il modello. Per installare MxNet, seguire le istruzioni contenute nella documentazione di MxNet
Nota
Si consiglia di compilare il modello sul dispositivo di destinazione. Questa pratica è facoltativa, ma può contribuire a garantire la compatibilità e a ridurre i potenziali problemi.
-
Scaricare il file tarball che contiene il modello MXNet non compilato e preaddestrato per DLR:
-
Decomprimere il tarball. Questo comando genera la seguente struttura di directory.
-
Seguire le istruzioni contenute nella documentazione di TVM per creare e installare TVM dal sorgente per la piattaforma
. -
Dopo aver creato TVM, eseguire la compilazione di TVM per il modello resnet18. I seguenti passaggi sono basati sul Tutorial di avvio rapido per la compilazione di modelli di deep learning
contenuto nella documentazione di TVM. -
Aprire il file
relay_quick_start.py
dal repository di TVM clonato. -
Aggiornare il codice che definisce una rete neurale in relay
. È possibile utilizzare una delle seguenti opzioni: -
Opzione 1: Utilizza
mxnet.gluon.model_zoo.vision.get_model
per ottenere il modulo relay e i parametri: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})
-
Opzione 2: Dal modello non compilato scaricato al passaggio 1, copiare i seguenti file nella stessa directory del
relay_quick_start.py
file. Questi file contengono il modulo relay e i parametri.-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
Aggiornare il codice che salva e carica il modulo compilato
per utilizzare il codice seguente. 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))
-
Costruire il modello:
python3 tutorials/relay_quick_start.py --build-dir ./model
Questo comando genera i seguenti file.
-
deploy_graph.json
-
deploy_lib.so
-
deploy_param.params
-
-
-
Copiare i file del modello generati in una directory denominata
resnet18
. Questa è la directory del modello compilato. -
Copiare la directory del modello compilato nel computer host. Copiare quindi
synset.txt
dal modello non compilato scaricato nel passaggio 1 nella directory del modello compilato.La directory del modello compilato deve avere la seguente struttura della directory.
Quindi,configura ilAWScredenziali edevice.jsondocumento.