Résolution des problèmes liés à l'inférence par apprentissage automatique - AWS IoT Greengrass

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.

Résolution des problèmes liés à l'inférence par apprentissage automatique

Utilisez les informations de dépannage et les solutions de cette section pour résoudre les problèmes liés à vos composants d'apprentissage automatique. Pour les composants publics d'inférence d'apprentissage automatique, consultez les messages d'erreur dans les journaux des composants suivants :

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

Si un composant est correctement installé, le journal du composant contient l'emplacement de la bibliothèque qu'il utilise pour l'inférence.

Impossible de récupérer la bibliothèque

L'erreur suivante se produit lorsque le script d'installation ne parvient pas à télécharger une bibliothèque requise lors du déploiement sur un périphérique 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]

Exécutez sudo apt-get update et déployez à nouveau votre composant.

Cannot open shared object file

Des erreurs similaires aux suivantes peuvent s'afficher lorsque le script d'installation ne parvient pas à télécharger une dépendance requise opencv-python lors du déploiement sur un périphérique Raspberry Pi.

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

Exécutez la commande suivante pour installer manuellement les dépendances pour 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>'

Cette erreur peut s'afficher dans les journaux des composants d'exécution ML (variant.DLR.logouvariant.TensorFlowLite.log) lorsque la bibliothèque d'exécution ML ou ses dépendances ne sont pas installées correctement. Cette erreur peut se produire dans les cas suivants :

  • Si vous utilisez l'UseInstalleroption, qui est activée par défaut, cette erreur indique que le composant d'exécution ML n'a pas réussi à installer le moteur d'exécution ou ses dépendances. Procédez comme suit :

    1. Configurez le composant d'exécution ML pour désactiver l'UseInstalleroption.

    2. Installez le moteur d'exécution ML et ses dépendances, puis mettez-les à la disposition de l'utilisateur du système qui exécute les composants du ML. Pour plus d’informations, consultez les ressources suivantes :

  • Si vous n'utilisez pas cette UseInstaller option, cette erreur indique que le moteur d'exécution ML ou ses dépendances ne sont pas installés pour l'utilisateur du système qui exécute les composants ML. Procédez comme suit :

    1. Vérifiez que la bibliothèque est installée pour l'utilisateur du système qui exécute les composants ML. Remplacez ggc_user par le nom de l'utilisateur du système et remplacez tflite_runtime par le nom de la bibliothèque à vérifier.

      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. Si la bibliothèque n'est pas installée, installez-la pour cet utilisateur. Remplacez ggc_user par le nom de l'utilisateur du système et remplacez tflite_runtime par le nom de la bibliothèque.

      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"

      Pour plus d'informations sur les dépendances de chaque environnement d'exécution ML, consultez les rubriques suivantes :

    3. Si le problème persiste, installez la bibliothèque pour un autre utilisateur afin de vérifier si ce périphérique peut installer la bibliothèque. L'utilisateur peut être, par exemple, votre utilisateur, l'utilisateur root ou un utilisateur administrateur. Si vous ne parvenez pas à installer correctement la bibliothèque pour un utilisateur, il est possible que votre appareil ne la prenne pas en charge. Consultez la documentation de la bibliothèque pour connaître les exigences et résoudre les problèmes d'installation.

Aucun appareil compatible CUDA n'est détecté

L'erreur suivante peut s'afficher lorsque vous utilisez l'accélération GPU. Exécutez la commande suivante pour permettre à l'utilisateur de Greengrass d'accéder au GPU.

sudo usermod -a -G video ggc_user

Aucun fichier ou répertoire de ce type

Les erreurs suivantes indiquent que le composant d'exécution n'a pas pu configurer correctement l'environnement virtuel :

  • 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

Vérifiez les journaux pour vous assurer que toutes les dépendances d'exécution ont été correctement installées. Pour plus d'informations sur les bibliothèques installées par le script d'installation, consultez les rubriques suivantes :

Par défaut, ML RootPath est défini sur/greengrass/v2/work/component-name/greengrass_ml. Pour modifier cet emplacement, incluez le composant TensorFlow Temps d'exécution allégé d'exécution Temps d'exécution du DLR ou directement dans votre déploiement et spécifiez une valeur modifiée pour le MLRootPath paramètre dans une mise à jour de fusion de configuration. Pour plus d'informations sur la configuration du composant, consultezMettre à jour les configurations des composants.

Note

Pour le composant DLR v1.3.x, vous définissez le MLRootPath paramètre dans la configuration du composant d'inférence, et la valeur par défaut est. $HOME/greengrass_ml

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

Les erreurs suivantes peuvent s'afficher lorsque vous exécutez l'inférence d'apprentissage automatique sur un Raspberry Pi exécutant Raspberry Pi OS Bullseye.

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

Cette erreur se produit car Raspberry Pi OS Bullseye inclut une version antérieure à NumPy celle requise par OpenCV. Pour résoudre ce problème, exécutez la commande suivante pour effectuer la mise NumPy à niveau vers la dernière version.

pip3 install --upgrade numpy

picamera.exc.PiCameraError: Camera is not enabled

L'erreur suivante peut s'afficher lorsque vous exécutez l'inférence d'apprentissage automatique sur un Raspberry Pi exécutant Raspberry Pi OS Bullseye.

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

Cette erreur se produit car Raspberry Pi OS Bullseye inclut une nouvelle pile de caméras qui n'est pas compatible avec les composants ML. Pour résoudre ce problème, activez l'ancienne pile de caméras.

Pour activer l'ancienne pile de caméras
  1. Exécutez la commande suivante pour ouvrir l'outil de configuration du Raspberry Pi.

    sudo raspi-config
  2. Sélectionnez Options d'interface.

  3. Sélectionnez Legacy camera pour activer l'ancienne pile de caméras.

  4. Redémarrez l'appareil Raspberry Pi.

Erreurs mémoires

Les erreurs suivantes se produisent généralement lorsque le périphérique ne dispose pas de suffisamment de mémoire et que le processus du composant est interrompu.

  • stderr. Killed.

  • exitCode=137

Nous recommandons un minimum de 500 Mo de mémoire pour déployer un composant public d'inférence d'apprentissage automatique.

Erreurs liées à l'espace disque

L'no space left on deviceerreur se produit généralement lorsqu'un appareil ne dispose pas de suffisamment d'espace de stockage. Assurez-vous que l'espace disque disponible sur votre appareil est suffisant avant de déployer à nouveau le composant. Nous recommandons un minimum de 500 Mo d'espace disque libre pour déployer un composant public d'inférence d'apprentissage automatique.

Erreurs de délai d'attente

Les composants publics d'apprentissage automatique téléchargent de gros fichiers de modèles d'apprentissage automatique d'une taille supérieure à 200 Mo. Si le délai de téléchargement expire pendant le déploiement, vérifiez la vitesse de votre connexion Internet et réessayez le déploiement.