

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
<a name="ml-troubleshooting"></a>

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.

**Topics**
+ [No fue posible recuperar la biblioteca](#rpi-update-error)
+ [Cannot open shared object file](#rpi-import-cv-error)
+ [Error: ModuleNotFoundError: No module named '<library>'](#troubleshooting-venv-errors-not-found)
+ [No se ha detectado ningún dispositivo compatible con CUDA](#troubleshooting-cuda-error)
+ [No existe tal archivo o directorio](#troubleshooting-venv-errors-no-such-file)
+ [RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>](#troubleshooting-rpi-numpy-version-error)
+ [picamera.exc.PiCameraError: Camera is not enabled](#troubleshooting-rpi-camera-stack-error)
+ [Errores de memoria](#troubleshooting-memory-errors)
+ [Errores de espacio en el disco](#troubleshooting-disk-space-errors)
+ [Errores de tiempo de espera](#troubleshooting-timeout-errors)

## No fue posible recuperar la biblioteca
<a name="rpi-update-error"></a>

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
<a name="rpi-import-cv-error"></a>

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>'
<a name="troubleshooting-venv-errors-not-found"></a>

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

  1. 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:
     + [Opción de tiempo de ejecución de DLR UseInstaller ](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlowOpción de tiempo de ejecución UseInstaller Lite](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)
+ 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\$1user*Sustitúyalo por el nombre del usuario del sistema y *tflite\$1runtime* 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\""
     ```

------

  1. Si la biblioteca no está instalada, instálela para ese usuario. *ggc\$1user*Sustitúyalo por el nombre del usuario del sistema y *tflite\$1runtime* 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:
     + [Opción de tiempo de ejecución UseInstaller de DLR](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlowOpción de tiempo de ejecución UseInstaller Lite](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)

  1. 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
<a name="troubleshooting-cuda-error"></a>

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
<a name="troubleshooting-venv-errors-no-such-file"></a>

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:
+ [Tiempo de ejecución de DLR](dlr-component.md)
+ [TensorFlow Tiempo de ejecución Lite](tensorflow-lite-component.md)

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](dlr-component.md) o [TensorFlow Tiempo de ejecución Lite](tensorflow-lite-component.md) 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](update-component-configurations.md).

**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>
<a name="troubleshooting-rpi-numpy-version-error"></a>

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
<a name="troubleshooting-rpi-camera-stack-error"></a>

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.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**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
   ```

1. Seleccione **Opciones de interfaz**.

1. Seleccione **Cámara antigua** para activar la pila de cámara antigua.

1. Reinicie el Raspberry Pi.

## Errores de memoria
<a name="troubleshooting-memory-errors"></a>

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
<a name="troubleshooting-disk-space-errors"></a>

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
<a name="troubleshooting-timeout-errors"></a>

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.