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

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

DLR

DLR 运行时组件 (variant.DLR) 包含一个脚本,用于在设备上的虚拟环境中安装深度学习运行时 (DLR) 及其依赖项。DLR 图像分类DLR 物体检测组件使用此组件作为安装 DLR 的依赖项。组件版本 1.6.x 安装 DLR v1.6.0,组件版本 1.3.x 安装 DLR v1.3.0。

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

版本

此组件有以下版本:

  • 1.6.x

  • 1.3.x

类型

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

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

操作系统

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

  • Linux

  • Windows

要求

此组件有以下要求:

  • 在运行亚马逊 Linux 2 或 Ubuntu 18.04 的 Greengrass 核心设备上,设备上安装了 GNU C Lib rary (glibc) 版本 2.27 或更高版本。

  • 在 Raspberry Pi 等 ARMv7L 设备上,设备上安装了 OpenCV-Python 的依赖项。Run the following command to install the dependencies.

    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。

端点和端口

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

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

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

  • 使用相同软件包索引的多个设备之间的端点可能会有所不同,因为每台设备都有自己的源列表,这些列表定义了在哪里检索软件包。

  • 终端节点可能会随着时间的推移而发生变化。每个包索引都提供您下载软件包的存储库的 URL,软件包的所有者可以更改软件包索引提供的 URL。

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

允许设备通过代理或防火墙进行流量

附属物

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

1.6.10

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.9

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.8

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.6 and 1.6.7

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.4 and 1.6.5

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.3

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.2

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 软性
1.6.1

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
1.3.x

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 ~2.0.0 软性

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

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

MLRootPath

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

默认值:/greengrass/v2/work/variant.DLR/greengrass_ml

WindowsMLRootPath

此功能在此组件的 v1.6.6 及更高版本中可用。

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

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

UseInstaller

(可选)定义是否使用此组件中的安装程序脚本安装 DLR 及其依赖项的字符串值。支持的值为 truefalse

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

默认值:true

用量

使用UseInstaller配置参数设置为的此组件true,在您的设备上安装 DLR 及其依赖项。该组件在您的设备上设置虚拟环境,其中包含 OpenCV 和 DLR 所需的 NumPy 库。

注意

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

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

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

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

Linux
/greengrass/v2/logs/variant.DLR.log
Windows
C:\greengrass\v2\logs\variant.DLR.log

查看此组件的日志

  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

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

更改日志

Version

变更

1.6.10

Greengrass Nucleus 2.8.0。

1.6.9

Greengrass Nucleus 2.7.0。

1.6.8

Greengrass Nucleus 2.6.0。

1.6.7

  • 更新UseInstaller安装脚本以安装 libGL,该脚本在某些 Linux 平台上默认不可用。

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

1.6.6

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

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

1.6.5

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

1.6.4

Greengrass Nucleus 2.4.0。

1.6.3

Greengrass Nucleus 2.3.0。

1.6.2

Greengrass Nucleus 2.0。

1.6.1

新功能
  • 安装深度学习运行时 v1.6.0 及其依赖项。

  • 增加了对在 Armv8 (aArch64) 平台上安装 DLR 的支持。这扩展了对运行 NVIDIA Jetson 的 Greengrass 核心设备(例如 Jetson Nano)的机器学习支持。

  • 在虚拟环境Amazon IoT Device SDK中安装以读取组件配置并应用配置更改。

1.3.2

初始版本。DLR v1.3.0。