TensorFlow Lite 运行时 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

TensorFlow Lite 运行时

TensorFlow Lite 运行时组件 (variant.TensorFlowLite) 包含一个在设备虚拟环境中安装 TensorFlow Lite 版本 2.5.0 及其依赖关系的脚本。TensorFlow Lite 图像分类TensorFlow Lite 对象检测组件使用此运行时组件作为安装 TensorFlow Lite 的依赖关系。

注意

TensorFlow Lite 运行时组件 v2.5.6 及更高版本会重新安装现有 TensorFlow Lite 运行时及其依赖关系。重新安装有助于确保核心设备运行兼容版本的 TensorFlow Lite 及其依赖关系。

要使用不同的运行时,您可以使用此组件的配方作为模板来创建自定义机器学习组件

版本

此组件具有以下版本:

  • 2.5.x

类型

组件是一个通用组件 (aws.greengrass.generic)。Greengrass Nucleus 运行组件的生命周期脚本。

有关更多信息,请参阅 组件类型

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

要求

此组件具有以下要求:

  • 在运行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心设备上,GNU C 库(glibc)版本 2.27 或更高版本已安装在设备上。

  • 在 Armv7l 设备(例如 Raspberry Pi)上,OpenCV-Python 的依赖关系已安装在设备上。运行以下命令以安装依赖关系。

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • 运行 Raspberry Pi OS Bullseye 的 Raspberry Pi 设备必须满足以下要求:

    • NumPy 1.22.4 或更高版本已安装在设备上。Raspberry Pi OS Bullseye 包含早期版本的 NumPy,因此可以运行以下命令在设备上升级 NumPy。

      pip3 install --upgrade numpy
    • 旧摄像机堆栈已在设备上启用。Raspberry Pi OS Bullseye 包含一个新摄像机堆栈,该堆栈默认处于启用状态且不兼容,因此您必须启用旧摄像机堆栈。

      启用旧摄像机堆栈
      1. 运行以下命令以打开 Raspberry Pi 配置工具。

        sudo raspi-config
      2. 选择接口选项

      3. 选择旧摄像机以启用旧摄像机堆栈。

      4. 重启 Raspberry Pi。

端点和端口

默认情况下,此组件使用安装程序脚本通过 aptyumbrewpip 命令来安装程序包,具体取决于核心设备使用的平台。此组件必须能够对各种程序包索引和存储库执行出站请求才能运行安装程序脚本。要允许此组件的出站流量通过代理或防火墙,您必须确定核心设备连接安装的程序包索引和存储库的端点。

在确定此组件的安装脚本所需的端点时,请考虑以下几点:

  • 端点取决于核心设备的平台。例如,运行 Ubuntu 的核心设备使用 apt,而不是 yumbrew。此外,使用相同程序包索引的设备可能具有不同的源列表,因此它们可能会从不同的存储库中检索软件包。

  • 使用相同程序包索引的多台设备之间的端点可能有所不同,因为每台设备都有自己的源列表,用于定义检索程序包的位置。

  • 端点可能会随时间而变化。每个程序包索引都提供您下载程序包的存储库的 URL,程序包的所有者可以更改程序包索引提供的 URL。

有关此组件安装的依赖关系以及如何禁用安装程序脚本的更多信息,请参阅 UseInstaller 配置参数。

有关基本操作所需的端点和端口的更多信息,请参阅允许设备流量通过代理或防火墙

依赖项

在您部署组件时,Amazon IoT Greengrass 也会部署其依赖关系的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 Amazon IoT Greengrass 控制台中查看每个组件版本的依赖关系。在组件详细信息页面上,查找依赖关系列表。

2.5.14 and 2.5.15

下表列出了此组件的版本 2.5.14 和 2.5.15 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.13.0 软性
2.5.13

下表列出了此组件的版本 2.5.13 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.12.0 软性
2.5.12

下表列出了此组件的版本 2.5.12 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.11.0 软性
2.5.11

下表列出了此组件的版本 2.5.11 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.10.0 软性
2.5.10

下表列出了此组件的版本 2.5.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.9.0 软性
2.5.9

下表列出了此组件的版本 2.5.9 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.8.0 软性
2.5.8

下表列出了此组件的版本 2.5.8 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.7.0 软性
2.5.5 - 2.5.7

下表列出了此组件的版本 2.5.5 到 2.5.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.6.0 软性
2.5.3 and 2.5.4

下表列出了此组件的版本 2.5.3 和 2.5.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.5.0 软性
2.5.2

下表列出了此组件的版本 2.5.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.4.0 软性
2.5.1

下表列出了此组件版本 2.5.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.3.0 软性
2.5.0

下表列出了此组件的版本 2.5.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.2.0 软性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供您可以在部署组件时自定义的以下配置参数。

MLRootPath

(可选)Linux 核心设备上推理组件读取图像和写入推理结果的文件夹路径。可将此值修改为设备上运行此组件的用户具有读/写访问权限的任何位置。

默认:/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

WindowsMLRootPath

此组件的 v1.6.6 及更高版本中提供了此功能。

(可选)Windows 核心设备上推理组件读取图像和写入推理结果的文件夹路径。可将此值修改为设备上运行此组件的用户具有读/写访问权限的任何位置。

默认:C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml

UseInstaller

(可选)字符串值,用于定义是否使用此组件中的安装程序脚本来安装 TensorFlow Lite 及其依赖关系。支持的值为 truefalse

如果您想使用自定义脚本进行 TensorFlow Lite 安装,或者想要在预构建的 Linux 映像中包含运行时依赖关系,请将此值设置为 false。要将此组件与 Amazon 提供的 TensorFlow Lite 推理组件一起使用,请安装以下库(包括所有依赖关系),并将其提供给运行 ML 组件的系统用户(例如 ggc_user)。

默认:true

使用量

使用此组件并将 UseInstaller 配置参数设置为 true,以在设备上安装 TensorFlow Lite 及其依赖关系。该组件在您的设备上设置了一个虚拟环境,其中包含 TensorFlow Lite 所需的 OpenCV 和 NumPy 库。

注意

此组件中的安装程序脚本还会安装其他系统库的最新版本,这是在设备上配置虚拟环境和使用已安装的机器学习框架时所需要的。这可能会升级您设备上的现有系统库。查看下表,了解此组件为每个受支持的操作系统安装的库列表。如果要自定义此安装过程,请将 UseInstaller 配置参数设置为 false,然后开发自己的安装程序脚本。

平台 安装在设备系统上的库 安装在虚拟环境中的库
Armv7l build-essential, cmake, ca-certificates, git setuptools, wheel
Amazon Linux 2 mesa-libGL
Ubuntu wget

部署推理组件时,此运行时组件会首先验证您的设备是否已安装 TensorFlow Lite 及其依赖关系。如果没有,则运行时组件会为您安装。

本地日志文件

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/variant.TensorFlowLite.log
Windows
C:\greengrass\v2\logs\variant.TensorFlowLite.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为 Amazon 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

更改日志

下表介绍每个组件版本的更改。

版本

更改

2.5.15

对 Greengrass Nucleus 版本 2.12.5 发行版进行了版本更新。

2.5.14

版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。

2.5.13

版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。

2.5.12

版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。

2.5.11

对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。

2.5.10

版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。

2.5.9

版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。

2.5.8

版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。

2.5.7

错误修复和改进
  • 更新 UseInstaller 安装脚本以安装在某些 Linux 平台上默认不可用的 libGL。

  • 更新 UseInstaller 安装脚本,使其始终在此组件的虚拟环境中使用 Python 3.9。此更改有助于确保与其他库的兼容性。

2.5.6

错误修复和改进
  • 更新此组件以安装 TensorFlow Lite 2.5.0 (tflite-runtime-2.5.0.post1) 的最新补丁,这样就可以在 Python 3.9 中使用此组件。如果此组件无法安装该补丁,则改为安装 tflite-runtime-2.5.0

  • 更新此组件以重新安装现有 TensorFlow Lite 及其依赖关系。该更改有助于确保核心设备运行兼容版本的 TensorFlow Lite 及其依赖关系。

2.5.5

新功能
  • 添加了对运行 Windows 的核心设备的支持。

  • 添加了新的 WindowsMLRootPath 配置参数,您可以使用该参数在 Windows 核心设备上配置推理结果文件夹。

2.5.4

新功能
  • 添加了新的 UseInstaller 配置参数,让您可以使用该参数禁用此组件中的安装脚本。

2.5.3

版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。

2.5.2

版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。

2.5.1

对 Greengrass Nucleus 版本 2.2.0 发行版进行了版本更新。

2.5.0

初始版本。