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à.
IDT for AWS IoT Greengrass fornisce test di qualificazione dell'apprendimento automatico (ML) per verificare che i tuoi dispositivi siano in grado di eseguire l'inferenza ML localmente utilizzando modelli addestrati sul cloud.
Per eseguire i test di qualificazione di ML, è necessario innanzitutto configurare i dispositivi come descritto in Configura il tuo 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 funzioni Lambda che vengono eseguite con la containerizzazione (in modalità contenitore Greengrass), la creazione di collegamenti simbolici per le librerie Python sotto non è supportata. /usr/local/lib/python3.x
Per evitare errori, è necessario installare le dipendenze nella directory corretta.
Seguire i passaggi per installare le dipendenze per il framework di destinazione:
MXNet Installa le dipendenze di Apache
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. Per 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 tua MXNet versione.
Installazione MXNet
Segui le istruzioni riportate nella MXNet documentazione per l'installazione 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 MXNet
Scegliete una delle seguenti opzioni per convalidare l' MXNet installazione.
Opzione 1: usare il protocollo 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 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 le 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. Per esempio:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Installazione TensorFlow
Segui le istruzioni nella TensorFlow documentazione per installare TensorFlow 1.x con 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 dell'installazione TensorFlow
Scegliete una delle seguenti opzioni per convalidare l' TensorFlow installazione.
Opzione 1: usare il protocollo 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 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 le dipendenze di Amazon SageMaker AI Neo Deep Learning Runtime (DLR)
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. Per esempio:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
SageMaker AI 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: usare il protocollo 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 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: usa Amazon SageMaker AI per compilare il modello
Segui questi passaggi per utilizzare l' SageMaker intelligenza artificiale per compilare il modello ML fornito da IDT. Questo modello è preaddestrato con Apache. MXNet
-
Verifica che il tipo di dispositivo sia supportato dall' SageMaker IA. Per ulteriori informazioni, consulta le opzioni del dispositivo di destinazione nell'Amazon SageMaker AI API Reference. Se il tuo tipo di dispositivo non è attualmente supportato dall' SageMaker intelligenza artificiale, segui i passaggi indicati inOpzione 2: utilizzare TVM per compilare il modello DLR.
Nota
L'esecuzione del test DLR con un modello compilato dall' SageMaker IA potrebbe richiedere 4 o 5 minuti. Non arrestare IDT durante questo periodo.
-
Scarica il file tarball che contiene il modello non compilato e preaddestrato MXNet 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
-
Carica il file compresso in un bucket Amazon S3 nel Account AWS tuo, quindi segui i passaggi in Compila 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:
-
Per la posizione di uscita S3, inserisci 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: utilizzare TVM per compilare il modello DLR
Seguire questi passaggi per utilizzare TVM per compilare il modello di ML fornito da IDT. Questo modello è già stato addestrato con Apache MXNet, quindi devi installarlo MXNet sul computer o sul dispositivo su cui compili il modello. Per l'installazione MXNet, segui le istruzioni nella documentazione. 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.
-
Scaricate il file tarball che contiene il MXNet modello 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: utilizzare
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 file
relay_quick_start.py
. 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.
Successivamente, configura le credenziali e il file. AWS device.json