Resolución de problemas de inferencia de machine learning - 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.

Resolución de problemas de inferencia de machine learning

Use la información de solución de problemas y las soluciones de esta sección para resolver problemas con sus componentes de machine learning. Para ver los componentes públicos de inferencia de machine learning, consulte 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 fue posible recuperar la biblioteca

El siguiente error se produce cuando la cadena de instalación no puede descargar una biblioteca requerida 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 la cadena del instalador no pueda descargar una dependencia requerida para 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 para 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>'

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

  • Si usa la opción UseInstaller, 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 opción UseInstaller.

    2. Instale el tiempo 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 usa la opción UseInstaller, este error indica que el tiempo 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. ggc_userSustitúyalo por el nombre del usuario del sistema y tflite_runtime sustitúyalo por el nombre de la biblioteca que desee comprobar.

      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álela para ese usuario. ggc_userSustitúyalo por el nombre del usuario del sistema y tflite_runtime sustitúyalo 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 acerca de las dependencias de cada tiempo de ejecución de ML, consulte lo siguiente:

    3. Si el problema persiste, instale la biblioteca para que otro usuario confirme si este dispositivo puede instalarla. El usuario puede ser, por ejemplo, su usuario, el usuario raíz o un usuario administrador. Si no puede instalar la biblioteca correctamente para ningún usuario, es posible que su dispositivo no sea compatible con la biblioteca. Consulte 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 vea el siguiente error cuando utilice la aceleración de 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 tal 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 acerca de las bibliotecas que instale la cadena de instalación, consulte los temas siguientes:

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

nota

Para el componente DLR versión 1.3.x, se establece el parámetro MLRootPath 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 cuando ejecute la inferencia de machine learning en 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 cuando ejecute la inferencia de machine learning en una Raspberry Pi con 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ámara que no es compatible con los componentes de ML. Para solucionar este problema, habilite la pila de cámara antigua.

Cómo activar la pila de cámara 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ámara antigua.

  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 machine learning público.

Errores de espacio en el disco

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

Errores de tiempo de espera

Los componentes públicos de machine learning descargan archivos de modelos de machine learning 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.