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

TensorFlow Tiempo de ejecución Lite

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

nota

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

Para usar un entorno de ejecución diferente, puede usar la receta de este componente como plantilla para crear un componente de aprendizaje automático 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 una versión posterior instalada en el dispositivo. Raspberry Pi OS Bullseye incluye una versión anterior de NumPy, por lo que puede ejecutar el siguiente comando para actualizar NumPy el dispositivo.

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

Puntos finales y puertos

De forma predeterminada, este componente utiliza un script de instalación para instalar los paquetes mediante los pip comandos apt yumbrew,, y, según 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 a través de un proxy o firewall, debe identificar los puntos finales 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 finales necesarios para el script de instalación de este componente:

  • Los puntos finales dependen de la plataforma del dispositivo principal. Por ejemplo, un dispositivo central que ejecuta Ubuntu usa en apt lugar de yum obrew. Además, los dispositivos que usan el mismo índice de paquetes pueden tener listas de fuentes diferentes, por lo que pueden recuperar paquetes de diferentes repositorios.

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

  • Los puntos finales 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 del instalador, consulte el parámetro de configuración. UseInstaller

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

Dependencias

Al implementar un componente, AWS IoT Greengrass también despliega versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo 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.AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.

2.5.14 and 2.5.15

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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 enumeran 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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

La siguiente tabla muestra 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 de los componentes, consulta la referencia de recetas de componentes.

Configuración

Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar 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 en 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 función está disponible en la versión 1.6.6 y versiones 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 en 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) Valor de cadena que define si se debe utilizar 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 false si desea utilizar 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 AWS de inferencia de TensorFlow Lite proporcionados, instale las siguientes bibliotecas, incluidas las dependencias, y póngalas a disposición del usuario del sistema, por ejemplo, el que ejecuta los componentes de ggc_user ML.

Valor predeterminado: true

Uso

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

nota

El script de instalación de este componente también instala las versiones más recientes de las bibliotecas del sistema adicionales necesarias para configurar el entorno virtual en el dispositivo y utilizar el marco de aprendizaje automático 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 false el parámetro de UseInstaller configuración en 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

Al implementar el componente de inferencia, este componente de tiempo de ejecución comprueba primero si el dispositivo ya tiene instalado TensorFlow Lite y sus dependencias. Si no es así, el componente de tiempo de ejecución los instala automáticamente.

Archivo de registro local

Este componente utiliza el siguiente archivo de registro.

Linux
/greengrass/v2/logs/variant.TensorFlowLite.log
Windows
C:\greengrass\v2\logs\variant.TensorFlowLite.log
Para ver 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. Sustituya /greengrass/v2 o C:\greengrass\v2 por la ruta a la carpeta AWS IoT Greengrass raíz.

    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 para la versión 2.12.5 de Greengrass nucleus.

2.5.14

Versión actualizada para la versión 2.12.0 de Greengrass nucleus.

2.5.13

Versión actualizada para el lanzamiento de la versión 2.11.0 de Greengrass nucleus.

2.5.12

Versión actualizada para la versión 2.10.0 de Greengrass nucleus.

2.5.11

Versión actualizada para la versión 2.9.0 de Greengrass Nucleus.

2.5.10

Versión actualizada para el lanzamiento de la versión 2.8.0 de Greengrass nucleus.

2.5.9

Versión actualizada para el lanzamiento de la versión 2.7.0 de Greengrass nucleus.

2.5.8

Versión actualizada para la versión 2.6.0 de Greengrass Nucleus.

2.5.7

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

  • Actualiza el script de UseInstaller instalación 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 último parche 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 el parche, se instala tflite-runtime-2.5.0 en su lugar.

  • 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
  • Añade compatibilidad con los dispositivos principales que ejecutan Windows.

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

2.5.4

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

2.5.3

Versión actualizada para la versión 2.4.0 de Greengrass Nucleus.

2.5.2

Versión actualizada para el lanzamiento de la versión 2.3.0 de Greengrass nucleus.

2.5.1

Versión actualizada para el lanzamiento de la versión 2.2.0 de Greengrass nucleus.

2.5.0

Versión inicial.