Tiempo de ejecución de TensorFlow Lite - 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.

Tiempo de ejecución de TensorFlow Lite

El componente de tiempo de ejecución de TensorFlow Lite (variant.TensorFlowLite) contiene un script que instala TensorFlow Lite versión 2.5.0 y sus dependencias en un entorno virtual del dispositivo. La clasificación de imágenes de TensorFlow Lite y el componente de detección de objetos de TensorFlow Lite utilizan este componente de tiempo de ejecución como una dependencia para instalar TensorFlow Lite.

nota

El componente de tiempo de ejecución de TensorFlow Lite versión 2.5.6 y versiones posteriores reinstala las instalaciones existentes del tiempo de ejecución de TensorFlow Lite y sus dependencias. Esta reinstalación ayuda a garantizar que el dispositivo principal ejecute versiones compatibles de TensorFlow Lite y sus dependencias.

Para usar un tiempo de ejecución diferente, puede usar la receta de este componente como plantilla para crear un componente de machine learning personalizado.

Versiones

Este componente tiene las siguientes versiones:

  • 2.5.x

Tipo

Este componente es un componente genérico (aws.greengrass.generic). El núcleo de Greengrass ejecuta los scripts del ciclo de vida del componente.

Para obtener más información, consulte Tipos de componentes.

Sistema operativo

Este componente se puede instalar en los dispositivos principales que ejecutan los siguientes sistemas operativos:

  • Linux

  • Windows

Requisitos

Este componente tiene los siguientes requisitos:

  • En los dispositivos principales de Greengrass que ejecutan Amazon Linux 2 o Ubuntu 18.04, se instala en el dispositivo la versión 2.27 o posterior de la Biblioteca C GNU (glibc).

  • En los dispositivos ARMv7L, como Raspberry Pi, las dependencias para OpenCV-Python están instaladas en el dispositivo. Ejecute el siguiente comando para instalar las dependencias.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Los dispositivos Raspberry Pi que ejecutan el sistema operativo Bullseye de Raspberry Pi deben cumplir los siguientes requisitos:

    • NumPy 1.22.4 o posterior instalado en el dispositivo. El sistema operativo Bullseye de Raspberry Pi incluye una versión anterior de NumPy, por lo que puede ejecutar el siguiente comando para actualizar NumPy en el dispositivo.

      pip3 install --upgrade numpy
    • La pila de cámara antigua habilitada en el dispositivo. El sistema operativo Bullseye de Raspberry Pi incluye una nueva pila de cámara que está habilitada de forma predeterminada y no es compatible, por lo que debe activar 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.

Puntos de conexión y puertos

De forma predeterminada, este componente utiliza un script de instalación para instalar los paquetes mediante los comandos apt, yum, brew y pip en función de la plataforma que utilice el dispositivo principal. Este componente debe poder realizar solicitudes salientes a varios índices y repositorios de paquetes para ejecutar el script de instalación. Para permitir que el tráfico saliente de este componente pase por un proxy o firewall, debe identificar los puntos de conexión de los índices y repositorios de paquetes a los que se conecta el dispositivo principal para realizar la instalación.

Tenga en cuenta lo siguiente al identificar los puntos de conexión necesarios para el script de instalación de este componente:

  • Los puntos de conexión dependen de la plataforma del dispositivo principal. Por ejemplo, un dispositivo principal que ejecuta Ubuntu usa apt en lugar de yum o brew. Además, los dispositivos que usan el mismo índice de paquetes pueden tener listas de orígenes diferentes, por lo que pueden recuperar paquetes de diferentes repositorios.

  • Los puntos de conexión pueden diferir entre varios dispositivos que utilizan el mismo índice de paquetes, ya que cada dispositivo tiene sus propias listas de orígenes que definen dónde recuperar los paquetes.

  • Los puntos de conexión pueden cambiar con el tiempo. Cada índice de paquetes proporciona las direcciones URL de los repositorios en los que se descargan los paquetes y el propietario de un paquete puede cambiar las direcciones URL que proporciona el índice de paquetes.

Para obtener más información sobre las dependencias que instala este componente y sobre cómo deshabilitar el script de instalación, consulte el parámetro de configuración UseInstaller.

Para obtener más información sobre los puntos de conexión y los puertos necesarios para el funcionamiento básico, consulte Cómo permitir el tráfico del dispositivo a través de un proxy o firewall.

Dependencias

Cuando implementa un componente, AWS IoT Greengrass también implementa versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementar el componente correctamente. En esta sección, se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola de AWS IoT Greengrass. En la página de detalles del componente, busque la lista de Dependencias.

2.5.14 and 2.5.15

En la siguiente tabla, se muestran las dependencias de las versiones 2.5.14 y 2.5.15 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.13.0 Flexible
2.5.13

En la siguiente tabla, se muestran las dependencias de la versión 2.5.13 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.12.0 Flexible
2.5.12

En la siguiente tabla, se muestran las dependencias de la versión 2.5.12 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.11.0 Flexible
2.5.11

En la siguiente tabla, se muestran las dependencias de la versión 2.5.11 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.10.0 Flexible
2.5.10

En la siguiente tabla, se muestran las dependencias de la versión 2.5.10 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.9.0 Flexible
2.5.9

En la siguiente tabla, se muestran las dependencias de la versión 2.5.9 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.8.0 Flexible
2.5.8

En la siguiente tabla, se muestran las dependencias de la versión 2.5.8 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.7.0 Flexible
2.5.5 - 2.5.7

En la siguiente tabla, se muestran las dependencias de las versiones 2.5.5 a 2.5.7 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.6.0 Flexible
2.5.3 and 2.5.4

En la siguiente tabla, se muestran las dependencias de las versiones 2.5.3 y 2.5.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.5.0 Flexible
2.5.2

En la siguiente tabla, se muestran las dependencias de la versión 2.5.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.4.0 Flexible
2.5.1

En la siguiente tabla, se muestran las dependencias de la versión 2.5.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.3.0 Flexible
2.5.0

En la siguiente tabla, se muestran las dependencias de la versión 2.5.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.2.0 Flexible

Para obtener más información sobre las dependencias del componente, consulte la referencia de receta de componentes.

Configuración

Este componente ofrece los siguientes parámetros de configuración que puede personalizar cuando implemente el componente.

MLRootPath

(Opcional) La ruta de la carpeta en los dispositivos principales de Linux donde los componentes de inferencia leen las imágenes y escriben los resultados de la inferencia. Puede modificar este valor a cualquier ubicación del dispositivo a la que el usuario que ejecuta este componente tenga acceso de lectura y escritura.

Valor predeterminado: /greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

WindowsMLRootPath

Esta característica está disponible en la versión 1.6.6 y posteriores de este componente.

(Opcional) La ruta de la carpeta del dispositivo principal de Windows donde los componentes de inferencia leen las imágenes y escriben los resultados de la inferencia. Puede modificar este valor a cualquier ubicación del dispositivo a la que el usuario que ejecuta este componente tenga acceso de lectura y escritura.

Valor predeterminado: C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml

UseInstaller

(Opcional) El valor de cadena que define si se debe usar el script de instalación de este componente para instalar TensorFlow Lite y sus dependencias. Los valores admitidos son true y false.

Establezca este valor a false si desea usar un script personalizado para la instalación de TensorFlow Lite o si desea incluir las dependencias del tiempo de ejecución en una imagen de Linux prediseñada. Para usar este componente con los componentes de inferencia de TensorFlow Lite proporcionados por AWS, instale las siguientes bibliotecas, incluidas las dependencias, y póngalas a disposición del usuario del sistema, por ejemplo ggc_user, que ejecuta los componentes de ML.

Valor predeterminado: true

Uso

Use este componente con el parámetro de configuración UseInstaller establecido en true para instalar TensorFlow Lite y sus dependencias en su dispositivo. El componente configura un entorno virtual en el dispositivo que incluye las bibliotecas OpenCV y NumPy necesarias para TensorFlow Lite.

nota

El script de instalación de este componente también instala las versiones más recientes de las bibliotecas de sistema adicionales necesarias para configurar el entorno virtual en el dispositivo y utilizar el marco de machine learning instalado. Esto podría actualizar las bibliotecas del sistema existentes en el dispositivo. Consulte la siguiente tabla para ver la lista de bibliotecas que instala este componente para cada sistema operativo compatible. Si desea personalizar este proceso de instalación, defina el parámetro de configuración UseInstaller en false y desarrolle su propio script de instalación.

Plataforma Bibliotecas instaladas en el sistema del dispositivo Bibliotecas instaladas en el entorno virtual
Armv7l build-essential, cmake, ca-certificates, git setuptools, wheel
Amazon Linux 2 mesa-libGL Ninguna
Ubuntu wget Ninguna

Cuando implementa su componente de inferencia, este componente de tiempo de ejecución primero verifica si su dispositivo ya tiene TensorFlow Lite y sus dependencias instaladas. De lo contrario, el componente de tiempo de ejecución los instala automáticamente.

Archivo de registro local

Este componente usa el siguiente archivo de registro.

Linux
/greengrass/v2/logs/variant.TensorFlowLite.log
Windows
C:\greengrass\v2\logs\variant.TensorFlowLite.log
Visualización de los registros de este componente
  • Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real. Reemplace /greengrass/v2 o C:\greengrass\v2 por la ruta a la carpeta raíz de AWS IoT Greengrass.

    Linux
    sudo tail -f /greengrass/v2/logs/variant.TensorFlowLite.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\variant.TensorFlowLite.log -Tail 10 -Wait

Registros de cambios

En la siguiente tabla, se describen los cambios en cada versión del componente.

Versión

Cambios

2.5.15

Versión actualizada del lanzamiento del núcleo de Greengrass 2.12.5.

2.5.14

Versión actualizada para el lanzamiento de la versión 2.12.0 del núcleo de Greengrass.

2.5.13

Versión actualizada para el lanzamiento de la versión 2.11.0 del núcleo de Greengrass.

2.5.12

Versión actualizada para el lanzamiento de la versión 2.10.0 del núcleo de Greengrass.

2.5.11

Versión actualizada para el lanzamiento de la versión 2.9.0 del núcleo de Greengrass.

2.5.10

Versión actualizada para el lanzamiento de la versión 2.8.0 del núcleo de Greengrass.

2.5.9

Versión actualizada para el lanzamiento de la versión 2.7.0 del núcleo de Greengrass.

2.5.8

Versión actualizada para el lanzamiento de la versión 2.6.0 del núcleo de Greengrass.

2.5.7

Mejoras y correcciones de errores
  • Actualiza el script de instalación UseInstaller para instalar libGL, que no está disponible de forma predeterminada en determinadas plataformas de Linux.

  • Actualiza el script de instalación UseInstaller para usar siempre Python 3.9 en el entorno virtual de este componente. Este cambio ayuda a garantizar la compatibilidad con otras bibliotecas.

2.5.6

Mejoras y correcciones de errores
  • Actualiza este componente para instalar el parche más reciente de TensorFlow Lite 2.5.0 (tflite-runtime-2.5.0.post1), de modo que pueda usar este componente con Python 3.9. Si este componente no puede instalar ese parche, se instala en su lugar tflite-runtime-2.5.0.

  • Actualiza este componente para volver a instalar las instalaciones existentes de TensorFlow Lite y sus dependencias. Este cambio ayuda a garantizar que el dispositivo principal ejecute versiones compatibles de TensorFlow Lite y sus dependencias.

2.5.5

Nuevas características
  • Suma compatibilidad con los dispositivos principales que ejecutan Windows.

  • Agrega el nuevo parámetro de configuración WindowsMLRootPath que puede usar para configurar la carpeta de resultados de inferencias en los dispositivos principales de Windows.

2.5.4

Nuevas características
  • Agrega el nuevo parámetro de configuración UseInstaller que permite deshabilitar el script de instalación en este componente.

2.5.3

Versión actualizada para el lanzamiento de la versión 2.4.0 del núcleo de Greengrass.

2.5.2

Versión actualizada para el lanzamiento de la versión 2.3.0 del núcleo de Greengrass.

2.5.1

Versión actualizada para el lanzamiento de la versión 2.2.0 del núcleo de Greengrass.

2.5.0

Versión inicial.