Opzionale: Configurazione del dispositivo per la qualificazione di ML - AWS IoT Greengrass

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.xnon è 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.6 path-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

  1. SSH nel tuo dispositivo.

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

  1. Assicurarsi che device.json sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML .

  2. Eseguire il test delle dipendenze per il framework.

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

    Il riepilogo del test visualizza un risultato PASSED per mldependencies.

 

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.6 path-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 pipodalla fonte.

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

  1. SSH nel tuo dispositivo.

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

  1. Assicurarsi che device.json sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML .

  2. Eseguire il test delle dipendenze per il framework.

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

    Il riepilogo del test visualizza un risultato PASSED per mldependencies.

 

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

  1. SSH nel tuo dispositivo.

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

  1. Assicurarsi che device.json sia configurato per la qualificazione ML. Per ulteriori informazioni, consulta la pagina Configurare device.json per la qualificazione ML .

  2. Eseguire il test delle dipendenze per il framework.

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

    Il riepilogo del test visualizza un risultato PASSED per mldependencies.

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.

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

  2. Scaricare il file tarball che contiene il modello MXNet non compilato e preaddestrato per DLR:

  3. Decomprimere il tarball. Questo comando genera la seguente struttura di directory.

    La directory resnet18 contiene tre file.
  4. Spostare synset.txt fuori dalla directory resnet18. Prendere nota del nuovo percorso. Copiare questo file nella directory del modello compilato in un secondo momento.

  5. Comprimere il contenuto della directory resnet18.

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

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

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

  7. Scaricare il modello compilato dal percorso di output specificato, quindi decomprimere il file.

  8. Copiare synset.txt nella directory del modello compilato.

  9. Modificare il nome della directory del modello compilato in resnet18.

    La directory del modello compilato deve avere la seguente struttura della directory.

    La directory del modello compilato resnet18 contiene quattro file.

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.

 

  1. Scaricare il file tarball che contiene il modello MXNet non compilato e preaddestrato per DLR:

  2. Decomprimere il tarball. Questo comando genera la seguente struttura di directory.

    La directory resnet18 contiene tre file.
  3. Seguire le istruzioni contenute nella documentazione di TVM per creare e installare TVM dal sorgente per la piattaforma.

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

    1. Aprire il file relay_quick_start.py dal repository di TVM clonato.

    2. Aggiornare il codice che definisce una rete neurale in relay. È possibile utilizzare una delle seguenti opzioni:

      • Opzione 1: Utilizzamxnet.gluon.model_zoo.vision.get_modelper 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 delrelay_quick_start.pyfile. Questi file contengono il modulo relay e i parametri.

        • resnet18v1-symbol.json

        • resnet18v1-0000.params

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

  5. Copiare i file del modello generati in una directory denominata resnet18. Questa è la directory del modello compilato.

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

    La directory del modello compilato resnet18 contiene quattro file.

Quindi,configura ilAWScredenziali edevice.jsondocumento.