Risoluzione dei problemi di inferenza dell'apprendimento automatico - AWS IoT Greengrass

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

Risoluzione dei problemi di inferenza dell'apprendimento automatico

Utilizza le informazioni e le soluzioni per la risoluzione dei problemi contenute in questa sezione per risolvere i problemi relativi ai componenti di machine learning. Per i componenti pubblici di inferenza dell'apprendimento automatico, consulta i messaggi di errore nei seguenti log dei componenti:

Linux or Unix
  • /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log

Windows
  • C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log

Se un componente è installato correttamente, il registro dei componenti contiene la posizione della libreria utilizzata per l'inferenza.

Impossibile recuperare la libreria

Il seguente errore si verifica quando lo script di installazione non riesce a scaricare una libreria richiesta durante la distribuzione su un dispositivo Raspberry Pi.

Err:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf python3.7-dev armhf 3.7.3-2+deb10u1 404 Not Found [IP: 93.93.128.193 80] E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/p/python3.7/libpython3.7-dev_3.7.3-2+deb10u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]

Esegui sudo apt-get update e distribuisci nuovamente il componente.

Cannot open shared object file

Potresti visualizzare errori simili ai seguenti quando lo script di installazione non riesce a scaricare una dipendenza richiesta opencv-python durante la distribuzione su un dispositivo Raspberry Pi.

ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory

Esegui il comando seguente per installare manualmente le dipendenze per: opencv-python

sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev

Error: ModuleNotFoundError: No module named '<library>'

È possibile che questo errore venga visualizzato nei registri dei componenti di runtime ML (variant.DLR.logovariant.TensorFlowLite.log) quando la libreria di runtime ML o le relative dipendenze non sono installate correttamente. Questo errore può verificarsi nei seguenti casi:

  • Se si utilizza l'UseInstalleropzione, abilitata per impostazione predefinita, questo errore indica che il componente di runtime ML non è riuscito a installare il runtime o le sue dipendenze. Esegui questa operazione:

    1. Configurate il componente di runtime ML per disabilitare l'UseInstalleropzione.

    2. Installa il runtime ML e le sue dipendenze e rendili disponibili all'utente di sistema che esegue i componenti ML. Per ulteriori informazioni, consulta gli argomenti seguenti:

  • Se non si utilizza l'UseInstalleropzione, questo errore indica che il runtime ML o le relative dipendenze non sono installati per l'utente di sistema che esegue i componenti ML. Esegui questa operazione:

    1. Verificate che la libreria sia installata per l'utente di sistema che esegue i componenti ML. Sostituisci ggc_user con il nome dell'utente di sistema e sostituisci tflite_runtime con il nome della libreria da controllare.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -c 'import tflite_runtime'"
      Windows
      runas /user:ggc_user "py -3 -c \"import tflite_runtime\""
    2. Se la libreria non è installata, installala per quell'utente. Sostituisci ggc_user con il nome dell'utente di sistema e sostituisci tflite_runtime con il nome della libreria.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -m pip install --user tflite_runtime"
      Windows
      runas /user:ggc_user "py -3 -m pip install --user tflite_runtime"

      Per ulteriori informazioni sulle dipendenze per ogni runtime ML, vedete quanto segue:

    3. Se il problema persiste, installa la libreria per un altro utente per confermare se il dispositivo è in grado di installare la libreria. L'utente potrebbe essere, ad esempio, il tuo utente, l'utente root o un utente amministratore. Se non riesci a installare correttamente la libreria per nessun utente, il tuo dispositivo potrebbe non supportare la libreria. Consulta la documentazione della libreria per esaminare i requisiti e risolvere i problemi di installazione.

Non viene rilevato alcun dispositivo compatibile con CUDA

È possibile che venga visualizzato il seguente errore quando si utilizza l'accelerazione GPU. Esegui il comando seguente per abilitare l'accesso alla GPU per l'utente Greengrass.

sudo usermod -a -G video ggc_user

File o directory inesistenti

I seguenti errori indicano che il componente runtime non è stato in grado di configurare correttamente l'ambiente virtuale:

  • MLRootPath/greengrass_ml_dlr_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_dlr_venv/bin/activate: No such file or directory

  • MLRootPath/greengrass_ml_tflite_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_tflite_venv/bin/activate: No such file or directory

Controlla i log per assicurarti che tutte le dipendenze di runtime siano state installate correttamente. Per ulteriori informazioni sulle librerie installate dallo script di installazione, consultate i seguenti argomenti:

Per impostazione predefinita, ML RootPath è impostato su. /greengrass/v2/work/component-name/greengrass_ml Per modificare questa posizione, includi il componente Runtime DLR o TensorFlow Runtime Lite runtime direttamente nella distribuzione e specifica un valore modificato per il MLRootPath parametro in un aggiornamento di fusione della configurazione. Per ulteriori informazioni sulla configurazione del componente, vedere. Aggiornamento delle configurazioni dei componenti

Nota

Per il componente DLR v1.3.x, si imposta il MLRootPath parametro nella configurazione del componente di inferenza e il valore predefinito è. $HOME/greengrass_ml

RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>

Potresti visualizzare i seguenti errori quando esegui l'inferenza dell'apprendimento automatico su un Raspberry Pi con sistema operativo Raspberry Pi Bullseye.

RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import

Questo errore si verifica perché il sistema operativo Raspberry Pi Bullseye include una versione precedente NumPy a quella richiesta da OpenCV. Per risolvere questo problema, esegui il seguente comando per eseguire l'aggiornamento alla versione NumPy più recente.

pip3 install --upgrade numpy

picamera.exc.PiCameraError: Camera is not enabled

Potresti visualizzare il seguente errore quando esegui l'inferenza dell'apprendimento automatico su un Raspberry Pi che esegue Raspberry Pi OS Bullseye.

picamera.exc.PiCameraError: Camera is not enabled. Try running 'sudo raspi-config' and ensure that the camera has been enabled.

Questo errore si verifica perché Raspberry Pi OS Bullseye include un nuovo stack di fotocamere che non è compatibile con i componenti ML. Per risolvere questo problema, abilita lo stack di fotocamere precedente.

Per abilitare lo stack di telecamere precedente
  1. Esegui il seguente comando per aprire lo strumento di configurazione Raspberry Pi.

    sudo raspi-config
  2. Seleziona Opzioni di interfaccia.

  3. Seleziona Legacy camera per abilitare lo stack di telecamere legacy.

  4. Riavvia il dispositivo Raspberry Pi.

Errori di memoria

I seguenti errori si verificano in genere quando il dispositivo non dispone di memoria sufficiente e il processo del componente viene interrotto.

  • stderr. Killed.

  • exitCode=137

Si consiglia un minimo di 500 MB di memoria per distribuire un componente di inferenza pubblico per l'apprendimento automatico.

Errori di spazio su disco

L'no space left on deviceerrore si verifica in genere quando un dispositivo non dispone di spazio di archiviazione sufficiente. Assicurati che ci sia abbastanza spazio su disco disponibile sul tuo dispositivo prima di distribuire nuovamente il componente. Consigliamo un minimo di 500 MB di spazio libero su disco per distribuire un componente di inferenza di machine learning pubblico.

Errori di timeout

I componenti di machine learning pubblici scaricano file di modelli di machine learning di grandi dimensioni che superano i 200 MB. Se il download scade durante la distribuzione, controlla la velocità della tua connessione Internet e riprova la distribuzione.