Solución de problemas de inferencia de aprendizaje automático - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de inferencia de aprendizaje automático

Utilice la información y las soluciones de solución de problemas de esta sección para ayudar a resolver los problemas con los componentes de aprendizaje automático. Para ver los componentes públicos de inferencia del aprendizaje automático, consulta los mensajes de error en los siguientes registros de componentes:

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 componente está instalado correctamente, el registro del componente contiene la ubicación de la biblioteca que utiliza para la inferencia.

No se pudo recuperar la biblioteca

El siguiente error se produce cuando el script de instalación no puede descargar una biblioteca necesaria durante la implementación en 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]

Ejecute sudo apt-get update y vuelva a implementar el componente.

Cannot open shared object file

Es posible que se produzcan errores similares a los siguientes cuando el script del instalador no pueda descargar una dependencia necesaria opencv-python durante la implementación en un dispositivo Raspberry Pi.

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

Ejecute el siguiente comando para instalar manualmente las dependencias deopencv-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>'

Es posible que veas este error en los registros de los componentes de tiempo de ejecución de ML (variant.DLR.logovariant.TensorFlowLite.log) cuando la biblioteca de tiempo de ejecución de ML o sus dependencias no estén instaladas correctamente. Este error puede producirse en los siguientes casos:

  • Si utiliza la UseInstaller opción, que está habilitada de forma predeterminada, este error indica que el componente de tiempo de ejecución de ML no pudo instalar el tiempo de ejecución o sus dependencias. Haga lo siguiente:

    1. Configure el componente de tiempo de ejecución de ML para deshabilitar la UseInstaller opción.

    2. Instale el motor de ejecución de ML y sus dependencias y póngalos a disposición del usuario del sistema que ejecuta los componentes de ML. Para obtener más información, consulte los siguientes temas:

  • Si no utiliza la UseInstaller opción, este error indica que el motor de ejecución de ML o sus dependencias no están instalados para el usuario del sistema que ejecuta los componentes de ML. Haga lo siguiente:

    1. Compruebe que la biblioteca esté instalada para el usuario del sistema que ejecuta los componentes de ML. Sustituya ggc_user por el nombre del usuario del sistema y sustituya tflite_runtime por el nombre de la biblioteca para comprobarlo.

      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 biblioteca no está instalada, instálala para ese usuario. Sustituya ggc_user por el nombre del usuario del sistema y sustituya tflite_runtime por el nombre de la biblioteca.

      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"

      Para obtener más información sobre las dependencias de cada tiempo de ejecución de ML, consulte lo siguiente:

    3. Si el problema persiste, instala la biblioteca para que otro usuario confirme si este dispositivo puede instalarla. El usuario puede ser, por ejemplo, su usuario, el usuario root o un usuario administrador. Si no puedes instalar la biblioteca correctamente para ningún usuario, es posible que tu dispositivo no sea compatible con la biblioteca. Consulta la documentación de la biblioteca para revisar los requisitos y solucionar los problemas de instalación.

No se ha detectado ningún dispositivo compatible con CUDA

Es posible que aparezca el siguiente error al utilizar la aceleración de la GPU. Ejecute el siguiente comando para habilitar el acceso a la GPU para el usuario de Greengrass.

sudo usermod -a -G video ggc_user

No existe ese archivo o directorio

Los siguientes errores indican que el componente de tiempo de ejecución no pudo configurar el entorno virtual correctamente:

  • 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

Compruebe los registros para asegurarse de que todas las dependencias del tiempo de ejecución se instalaron correctamente. Para obtener más información sobre las bibliotecas que instala el script del instalador, consulte los siguientes temas:

De forma predeterminada, ML RootPath está establecido en/greengrass/v2/work/component-name/greengrass_ml. Para cambiar esta ubicación, incluya el componente Tiempo de ejecución de DLR o el componente de tiempo de TensorFlow Tiempo de ejecución Lite ejecución directamente en la implementación y especifique un valor modificado para el MLRootPath parámetro en una actualización de combinación de configuraciones. Para obtener más información sobre la configuración del componente, consulteActualizar las configuraciones de los componentes.

nota

Para el componente DLR v1.3.x, se establece el MLRootPath parámetro en la configuración del componente de inferencia y el valor predeterminado es. $HOME/greengrass_ml

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

Es posible que aparezcan los siguientes errores al ejecutar la inferencia de aprendizaje automático en una Raspberry Pi con el sistema operativo Bullseye de Raspberry Pi.

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

Este error se produce porque Raspberry Pi OS Bullseye incluye una versión anterior a la NumPy que requiere OpenCV. Para solucionar este problema, ejecuta el siguiente comando para actualizar NumPy a la versión más reciente.

pip3 install --upgrade numpy

picamera.exc.PiCameraError: Camera is not enabled

Es posible que aparezca el siguiente error al ejecutar una inferencia de aprendizaje automático en una Raspberry Pi que ejecute el sistema operativo Bullseye de Raspberry Pi.

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

Este error se produce porque el sistema operativo Bullseye de Raspberry Pi incluye una nueva pila de cámaras que no es compatible con los componentes del aprendizaje automático. Para solucionar este problema, habilita la pila de cámaras antigua.

Para activar la pila de cámaras antigua
  1. Ejecute el siguiente comando para abrir la herramienta de configuración de Raspberry Pi.

    sudo raspi-config
  2. Seleccione Opciones de interfaz.

  3. Seleccione Cámara antigua para activar la pila de cámaras antiguas.

  4. Reinicie el Raspberry Pi.

Errores de memoria

Los siguientes errores suelen producirse cuando el dispositivo no tiene suficiente memoria y se interrumpe el proceso de los componentes.

  • stderr. Killed.

  • exitCode=137

Recomendamos un mínimo de 500 MB de memoria para implementar un componente de inferencia de aprendizaje automático público.

Errores de espacio en disco

El no space left on device error suele producirse cuando un dispositivo no tiene suficiente espacio de almacenamiento. Asegúrese de que haya suficiente espacio en disco disponible en el dispositivo antes de volver a implementar el componente. Recomendamos un mínimo de 500 MB de espacio libre en disco para implementar un componente de inferencia de aprendizaje automático público.

Errores de tiempo de espera

Los componentes públicos de aprendizaje automático descargan archivos de modelos de aprendizaje automático de gran tamaño que superan los 200 MB. Si se agota el tiempo de espera de la descarga durante la implementación, compruebe la velocidad de la conexión a Internet y vuelva a intentar la implementación.