ML 映像分类 连接器
ML 映像分类 连接器提供在 AWS IoT Greengrass Core 上运行的机器学习 (ML) 推理服务。这一本地推理服务使用由 Amazon SageMaker 图像分类算法训练的模型执行图像分类。
用户定义的 Lambda 函数使用 AWS IoT Greengrass机器学习 SDK 将推理请求提交给本地推理服务。该服务在本地运行推理,并返回输入映像属于特定类别的概率。
AWS IoT Greengrass 提供此连接器的以下版本,可用于多个平台。
- Version 2
-
连接器
描述和 ARN
ML 映像分类 Aarch64 JTX2
映像分类推理服务(适用于 NVIDIA Jetson TX2)。支持 GPU 加速。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationAarch64JTX2/versions/2ML 映像分类 x86_64
映像分类推理服务(适用于 x86_64 平台)。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationx86-64/versions/2ML 映像分类 ARMv7
映像分类推理服务(适用于 ARMv7 平台)。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationARMv7/versions/2 - Version 1
-
连接器
描述和 ARN
ML 映像分类 Aarch64 JTX2
映像分类推理服务(适用于 NVIDIA Jetson TX2)。支持 GPU 加速。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationAarch64JTX2/versions/1ML 映像分类 x86_64
映像分类推理服务(适用于 x86_64 平台)。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationx86-64/versions/1ML 映像分类 ARMv7
映像分类推理服务(适用于 Armv7 平台)。
ARN:
arn:aws:greengrass:
区域
::/connectors/ImageClassificationARMv7/versions/1
有关版本更改的信息,请参阅更改日志。
要求
这些连接器具有以下要求:
- Version 2
-
-
AWS IoT Greengrass 核心软件 v1.9.3。
-
Python 版本 3.7 已安装在核心设备上并且已添加到 PATH 环境变量。
-
安装在核心设备上的 Apache MXNet 框架的依赖项。有关更多信息,请参阅 在 AWS IoT Greengrass 核心上安装 MXNet 依赖项。
-
Greengrass 组中引用 Amazon SageMaker 模型源的一个 ML 资源。该模型必须由 Amazon SageMaker 映像分类算法训练。有关更多信息,请参阅Amazon SageMaker 开发人员指南中的映像分类算法。
-
添加到 Greengrass 组且已配置的 ML 反馈 连接器。仅当您要使用此连接器上传模型输入数据并将预测发布到 MQTT 主题时,这才是必需的。
-
一个添加到了 Greengrass 组角色的 IAM 策略,该策略允许对目标培训作业执行
sagemaker:DescribeTrainingJob
操作,如以下示例所示。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeTrainingJob" ], "Resource": "arn:aws:sagemaker:
region
:account-id
:training-job:training-job-name
" } ] }您可以授予对资源的具体或条件访问权限(例如,通过使用通配符*命名方案)。如果将来要更改目标训练任务,请务必更新组角色。有关更多信息,请参阅IAM 用户指南中的添加和删除 IAM 策略。
-
与此连接器进行交互时需要 AWS IoT Greengrass机器学习 SDK v1.1.0。
-
- Version 1
-
-
AWS IoT Greengrass 核心软件 v1.7 or later。
-
Python 版本 2.7 已安装在核心设备上并且已添加到 PATH 环境变量。
-
安装在核心设备上的 Apache MXNet 框架的依赖项。有关更多信息,请参阅 在 AWS IoT Greengrass 核心上安装 MXNet 依赖项。
-
Greengrass 组中引用 Amazon SageMaker 模型源的一个 ML 资源。该模型必须由 Amazon SageMaker 映像分类算法训练。有关更多信息,请参阅Amazon SageMaker 开发人员指南中的映像分类算法。
-
一个添加到了 Greengrass 组角色的 IAM 策略,该策略允许对目标培训作业执行
sagemaker:DescribeTrainingJob
操作,如以下示例所示。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeTrainingJob" ], "Resource": "arn:aws:sagemaker:
region
:account-id
:training-job:training-job-name
" } ] }您可以授予对资源的具体或条件访问权限(例如,通过使用通配符*命名方案)。如果将来要更改目标训练任务,请务必更新组角色。有关更多信息,请参阅IAM 用户指南中的添加和删除 IAM 策略。
-
与此连接器进行交互时需要 AWS IoT Greengrass机器学习 SDK v1.0.0 或更高版本。
-
连接器参数
这些连接器提供以下参数。
- Version 2
-
MLModelDestinationPath
-
Lambda 环境中 ML 资源的本地绝对路径。这是为 ML 资源指定的目标路径。
注意
如果您在控制台中创建了 ML 资源,这便是本地路径。
在控制台中显示名称:模型目标路径
必需:
true
类型:
string
有效模式:
.+
MLModelResourceId
-
引用源模型的 ML 资源的 ID。
在控制台中显示名称:SageMaker 作业 ARN 资源
必需:
true
类型:
string
有效模式:
[a-zA-Z0-9:_-]+
MLModelSageMakerJobArn
-
表示 Amazon SageMaker 模型源的 Amazon SageMaker 培训作业的 ARN。该模型必须由 Amazon SageMaker 映像分类算法训练。
在控制台中显示名称:SageMaker 作业 ARN
必需:
true
类型:
string
有效模式:
^arn:aws:sagemaker:[a-zA-Z0-9-]+:[0-9]+:training-job/[a-zA-Z0-9][a-zA-Z0-9-]+$
LocalInferenceServiceName
-
本地推理服务的名称。用户定义的 Lambda 函数将该服务的名称传递给 AWS IoT Greengrass机器学习 SDK 的
invoke_inference_service
函数,从而调用该服务。有关示例,请参阅示例用法。在控制台中显示名称:本地推理服务名称
必需:
true
类型:
string
有效模式:
[a-zA-Z0-9][a-zA-Z0-9-]{1,62}
LocalInferenceServiceTimeoutSeconds
-
在推理请求终止之前经过的时间(以秒为单位)。最小值为 1。
在控制台中显示名称:超时(秒)
必需:
true
类型:
string
有效模式:
[1-9][0-9]*
LocalInferenceServiceMemoryLimitKB
-
该服务有权访问的内存量(以 KB 为单位)。最小值为 1。
在控制台中显示名称:内存限制 (KB)
必需:
true
类型:
string
有效模式:
[1-9][0-9]*
GPUAcceleration
-
CPU 或 GPU(加速)计算上下文。此属性仅适用于ML 映像分类 Aarch64 JTX2 连接器。
在控制台中显示名称:GPU 加速
必需:
true
类型:
string
有效值:
CPU
或GPU
MLFeedbackConnectorConfigId
-
用于上传模型输入数据的反馈配置的 ID。这必须与为 ML 反馈连接器定义的反馈配置的 ID 匹配。
仅当您要使用 ML 反馈连接器上传模型输入数据并将预测发布到 MQTT 主题时,才需要此参数。
在控制台中显示名称:ML 反馈连接器配置 ID
必需:
false
类型:
string
有效模式:
^$|^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$
- Version 1
-
MLModelDestinationPath
-
Lambda 环境中 ML 资源的本地绝对路径。这是为 ML 资源指定的目标路径。
注意
如果您在控制台中创建了 ML 资源,这便是本地路径。
在控制台中显示名称:模型目标路径
必需:
true
类型:
string
有效模式:
.+
MLModelResourceId
-
引用源模型的 ML 资源的 ID。
在控制台中显示名称:SageMaker 作业 ARN 资源
必需:
true
类型:
string
有效模式:
[a-zA-Z0-9:_-]+
MLModelSageMakerJobArn
-
表示 Amazon SageMaker 模型源的 Amazon SageMaker 培训作业的 ARN。该模型必须由 Amazon SageMaker 映像分类算法训练。
在控制台中显示名称:SageMaker 作业 ARN
必需:
true
类型:
string
有效模式:
^arn:aws:sagemaker:[a-zA-Z0-9-]+:[0-9]+:training-job/[a-zA-Z0-9][a-zA-Z0-9-]+$
LocalInferenceServiceName
-
本地推理服务的名称。用户定义的 Lambda 函数将该服务的名称传递给 AWS IoT Greengrass机器学习 SDK 的
invoke_inference_service
函数,从而调用该服务。有关示例,请参阅示例用法。在控制台中显示名称:本地推理服务名称
必需:
true
类型:
string
有效模式:
[a-zA-Z0-9][a-zA-Z0-9-]{1,62}
LocalInferenceServiceTimeoutSeconds
-
在推理请求终止之前经过的时间(以秒为单位)。最小值为 1。
在控制台中显示名称:超时(秒)
必需:
true
类型:
string
有效模式:
[1-9][0-9]*
LocalInferenceServiceMemoryLimitKB
-
该服务有权访问的内存量(以 KB 为单位)。最小值为 1。
在控制台中显示名称:内存限制 (KB)
必需:
true
类型:
string
有效模式:
[1-9][0-9]*
GPUAcceleration
-
CPU 或 GPU(加速)计算上下文。此属性仅适用于ML 映像分类 Aarch64 JTX2 连接器。
在控制台中显示名称:GPU 加速
必需:
true
类型:
string
有效值:
CPU
或GPU
创建连接器示例 (CLI)
以下 CLI 命令创建一个 ConnectorDefinition
,它具有包含ML 映像分类的初始版本。
- 示例:CPU 实例
-
以下示例创建ML 映像分类 ARMv7l 连接器的实例。
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyImageClassificationConnector", "ConnectorArn": "arn:aws:greengrass:
区域
::/connectors/ImageClassificationARMv7/versions/2", "Parameters": { "MLModelDestinationPath": "/path-to-model", "MLModelResourceId": "my-ml-resource", "MLModelSageMakerJobArn": "arn:aws:sagemaker:us-west-2:123456789012:training-job:MyImageClassifier", "LocalInferenceServiceName": "imageClassification", "LocalInferenceServiceTimeoutSeconds": "10", "LocalInferenceServiceMemoryLimitKB": "500000", "MLFeedbackConnectorConfigId": "MyConfig0" } } ] }' - 示例:GPU 实例
-
此示例创建ML 映像分类 Aarch64 JTX2 连接器的实例,该实例在 NVIDIA Jetson TX2 面板上支持 GPU 加速。
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyImageClassificationConnector", "ConnectorArn": "arn:aws:greengrass:
区域
::/connectors/ImageClassificationAarch64JTX2/versions/2", "Parameters": { "MLModelDestinationPath": "/path-to-model", "MLModelResourceId": "my-ml-resource", "MLModelSageMakerJobArn": "arn:aws:sagemaker:us-west-2:123456789012:training-job:MyImageClassifier", "LocalInferenceServiceName": "imageClassification", "LocalInferenceServiceTimeoutSeconds": "10", "LocalInferenceServiceMemoryLimitKB": "500000", "GPUAcceleration": "GPU", "MLFeedbackConnectorConfigId": "MyConfig0" } } ] }'
注意
这些连接器中的 Lambda 函数具有很长的生命周期。
在 AWS IoT Greengrass 控制台 中,您可以从该组的 Connectors (连接器)页面添加一个连接器。有关更多信息,请参阅 Greengrass 连接器入门(控制台)。
输入数据
这些连接器接受一个图像文件作为输入。输入图像文件必须为 jpeg
或 png
格式。有关更多信息,请参阅 示例用法。
这些连接器不接受 MQTT 消息作为输入数据。
输出数据
这些连接器返回输入图像中识别的对象的格式化预测:
[0.3,0.1,0.04,...]
预测包含值列表,这些值与模型训练期间训练数据集中使用的类别相对应。每个值代表图像落入相应类别的概率。概率最高的类别是主导预测。
这些连接器不会将 MQTT 消息作为输出数据发布。
示例用法
下面的示例 Lambda 函数使用 AWS IoT Greengrass机器学习 SDK 与ML 映像分类连接器进行交互。
注意
您可以从 AWS IoT Greengrass机器学习 SDK downloads 页面下载开发工具包。
该示例初始化一个开发工具包客户端,并同步调用该开发工具包的 invoke_inference_service
函数来调用本地推理服务。它会传入算法类型、服务名称、映像类型和映像内容。然后,该示例会解析服务响应以获取概率结果(预测)。
- Python 3.7
import logging from threading import Timer import numpy as np import greengrass_machine_learning_sdk as ml # We assume the inference input image is provided as a local file # to this inference client Lambda function. with open('/test_img/test.jpg', 'rb') as f: content = bytearray(f.read()) client = ml.client('inference') def infer(): logging.info('invoking Greengrass ML Inference service') try: resp = client.invoke_inference_service( AlgoType='image-classification', ServiceName='imageClassification', ContentType='image/jpeg', Body=content ) except ml.GreengrassInferenceException as e: logging.info('inference exception {}("{}")'.format(e.__class__.__name__, e)) return except ml.GreengrassDependencyException as e: logging.info('dependency exception {}("{}")'.format(e.__class__.__name__, e)) return logging.info('resp: {}'.format(resp)) predictions = resp['Body'].read().decode("utf-8") logging.info('predictions: {}'.format(predictions)) # The connector output is in the format: [0.3,0.1,0.04,...] # Remove the '[' and ']' at the beginning and end. predictions = predictions[1:-1] count = len(predictions.split(',')) predictions_arr = np.fromstring(predictions, count=count, sep=',') # Perform business logic that relies on the predictions_arr, which is an array # of probabilities. # Schedule the infer() function to run again in one second. Timer(1, infer).start() return infer() def function_handler(event, context): return
- Python 2.7
import logging from threading import Timer import numpy as np import greengrass_machine_learning_sdk as ml # We assume the inference input image is provided as a local file # to this inference client Lambda function. with open('/test_img/test.jpg', 'rb') as f: content = f.read() client = ml.client('inference') def infer(): logging.info('invoking Greengrass ML Inference service') try: resp = client.invoke_inference_service( AlgoType='image-classification', ServiceName='imageClassification', ContentType='image/jpeg', Body=content ) except ml.GreengrassInferenceException as e: logging.info('inference exception {}("{}")'.format(e.__class__.__name__, e)) return except ml.GreengrassDependencyException as e: logging.info('dependency exception {}("{}")'.format(e.__class__.__name__, e)) return logging.info('resp: {}'.format(resp)) predictions = resp['Body'].read() logging.info('predictions: {}'.format(predictions)) # The connector output is in the format: [0.3,0.1,0.04,...] # Remove the '[' and ']' at the beginning and end. predictions = predictions[1:-1] count = len(predictions.split(',')) predictions_arr = np.fromstring(predictions, count=count, sep=',') # Perform business logic that relies on the predictions_arr, which is an array # of probabilities. # Schedule the infer() function to run again in one second. Timer(1, infer).start() return infer() def function_handler(event, context): return
AWS IoT Greengrass机器学习 SDK 中的 invoke_inference_service
函数接受以下参数:
参数 |
描述 |
---|---|
|
要用于推理的算法类型的名称。目前仅支持 必需: 类型: 有效值: |
|
本地推理服务的名称。在配置了连接器时,使用为 必需: 类型: |
|
输入映像的 mime 类型。 必需: 类型: 有效值: |
|
输入映像文件的内容。 必需: 类型: |
在 AWS IoT Greengrass 核心上安装 MXNet 依赖项
要使用ML 映像分类连接器,您必须在核心设备上安装 Apache MXNet 框架的依赖项。连接器使用该框架来处理 ML 模型。
注意
这些连接器捆绑到预编译的 MXNet 库,因此无需在核心设备上安装 MXNet 框架。
AWS IoT Greengrass 提供了脚本来安装以下常见平台和设备的依赖项(或用作安装参考)。如果使用的是其他平台或设备,请参阅 MXNet 文档以了解您的配置。
安装 MXNet 依赖项之前,请确保设备上存在所需的系统库(具有指定的最低版本)。
- NVIDIA Jetson TX2
-
-
安装 CUDA Toolkit 9.0 和 cuDNN 7.0。您可以按照入门教程中设置其他设备中的说明进行操作。
-
启用通用存储库,以便连接器可以安装社区维护的开放软件。有关更多信息,请参阅 Ubuntu 文档中的 Repositories/Ubuntu。
-
打开
/etc/apt/sources.list
文件。 -
确保以下各行已取消注释。
deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial universe deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
-
-
将以下安装脚本的副本保存到核心设备上一个名为
nvidiajtx2.sh
的文件。- Python 3.7
#!/bin/bash set -e echo "Installing dependencies on the system..." echo 'Assuming that universe repos are enabled and checking dependencies...' apt-get -y update apt-get -y dist-upgrade apt-get install -y liblapack3 libopenblas-dev liblapack-dev libatlas-base-dev apt-get install -y python3.7 python3.7-dev python3.7 -m pip install --upgrade pip python3.7 -m pip install numpy==1.15.0 python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).' echo 'Dependency installation/upgrade complete.'
注意
如果 OpenCV 使用此脚本无法成功安装,您可以尝试从源代码进行构建。有关更多信息,请参阅 OpenCV 文档中的在 Linux 中安装,或参考您平台的其他在线资源。
- Python 2.7
#!/bin/bash set -e echo "Installing MXNet dependencies on the system..." echo 'Assuming that universe repos are enabled and checking dependencies...' apt-get -y update apt-get -y dist-upgrade apt-get install -y liblapack3 libopenblas-dev liblapack-dev libatlas-base-dev python-dev echo 'Install latest pip...' wget https://bootstrap.pypa.io/get-pip.py python get-pip.py rm get-pip.py pip install numpy==1.15.0 scipy echo 'Dependency installation/upgrade complete.'
-
从保存文件的目录中,键入以下命令:
sudo nvidiajtx2.sh
-
- x86_64 (Ubuntu or Amazon Linux)
-
-
将以下安装脚本的副本保存到核心设备上一个名为
x86_64.sh
的文件。- Python 3.7
#!/bin/bash set -e echo "Installing dependencies on the system..." release=$(awk -F= '/^NAME/{print $2}' /etc/os-release) if [ "$release" == '"Ubuntu"' ]; then # Ubuntu. Supports EC2 and DeepLens. DeepLens has all the dependencies installed, so # this is mostly to prepare dependencies on Ubuntu EC2 instance. apt-get -y update apt-get -y dist-upgrade apt-get install -y libgfortran3 libsm6 libxext6 libxrender1 apt-get install -y python3.7 python3.7-dev elif [ "$release" == '"Amazon Linux"' ]; then # Amazon Linux. Expect python to be installed already yum -y update yum -y upgrade yum install -y compat-gcc-48-libgfortran libSM libXrender libXext else echo "OS Release not supported: $release" exit 1 fi python3.7 -m pip install --upgrade pip python3.7 -m pip install numpy==1.15.0 python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).' echo 'Dependency installation/upgrade complete.'
注意
如果 OpenCV 使用此脚本无法成功安装,您可以尝试从源代码进行构建。有关更多信息,请参阅 OpenCV 文档中的在 Linux 中安装,或参考您平台的其他在线资源。
- Python 2.7
#!/bin/bash set -e echo "Installing MXNet dependencies on the system..." release=$(awk -F= '/^NAME/{print $2}' /etc/os-release) if [ "$release" == '"Ubuntu"' ]; then # Ubuntu. Supports EC2 and DeepLens. DeepLens has all the dependencies installed, so # this is mostly to prepare dependencies on Ubuntu EC2 instance. apt-get -y update apt-get -y dist-upgrade apt-get install -y libgfortran3 libsm6 libxext6 libxrender1 python-dev python-pip elif [ "$release" == '"Amazon Linux"' ]; then # Amazon Linux. Expect python to be installed already yum -y update yum -y upgrade yum install -y compat-gcc-48-libgfortran libSM libXrender libXext python-pip else echo "OS Release not supported: $release" exit 1 fi pip install numpy==1.15.0 scipy opencv-python echo 'Dependency installation/upgrade complete.'
-
从保存文件的目录中,键入以下命令:
sudo x86_64.sh
-
- Armv7 (Raspberry Pi)
-
-
将以下安装脚本的副本保存到核心设备上一个名为
armv7l.sh
的文件。- Python 3.7
#!/bin/bash set -e echo "Installing dependencies on the system..." apt-get update apt-get -y upgrade apt-get install -y liblapack3 libopenblas-dev liblapack-dev apt-get install -y python3.7 python3.7-dev python3.7 -m pip install --upgrade pip python3.7 -m pip install numpy==1.15.0 python3.7 -m pip install opencv-python || echo 'Error: Unable to install OpenCV with pip on this platform. Try building the latest OpenCV from source (https://github.com/opencv/opencv).' echo 'Dependency installation/upgrade complete.'
注意
如果 OpenCV 使用此脚本无法成功安装,您可以尝试从源代码进行构建。有关更多信息,请参阅 OpenCV 文档中的在 Linux 中安装,或参考您平台的其他在线资源。
- Python 2.7
#!/bin/bash set -e echo "Installing MXNet dependencies on the system..." apt-get update apt-get -y upgrade apt-get install -y liblapack3 libopenblas-dev liblapack-dev python-dev # python-opencv depends on python-numpy. The latest version in the APT repository is python-numpy-1.8.2 # This script installs python-numpy first so that python-opencv can be installed, and then install the latest # numpy-1.15.x with pip apt-get install -y python-numpy python-opencv dpkg --remove --force-depends python-numpy echo 'Install latest pip...' wget https://bootstrap.pypa.io/get-pip.py python get-pip.py rm get-pip.py pip install --upgrade numpy==1.15.0 picamera scipy echo 'Dependency installation/upgrade complete.'
-
从保存文件的目录中,键入以下命令:
sudo bash armv7l.sh
注意
在 Raspberry Pi 上,使用
pip
安装机器学习依赖项是一项内存密集型操作,可能会导致设备用尽内存,变得无法响应。解决办法是临时增加交换空间大小:在
/etc/dphys-swapfile
中,增加CONF_SWAPSIZE
变量的值,然后运行以下命令重启dphys-swapfile
。/etc/init.d/dphys-swapfile restart
-
日志记录和问题排查
根据您的组设置,事件和错误日志会写入到 CloudWatch Logs 和/或本地文件系统。此连接器中的日志使用前缀 LocalInferenceServiceName
。如果连接器出现异常行为,请检查连接器日志。其中经常包含有用的调试信息,例如缺失 ML 库依赖项或连接器启动故障的原因。
如果将 AWS IoT Greengrass 组配置为写入本地日志,则连接器会将日志文件写入
。 有关使用 Greengrass 日志记录的更多信息,请参阅利用 AWS IoT Greengrass 日志进行监控。
greengrass-root
/ggc/var/log/user/区域
/aws/
可以使用以下信息帮助解决ML 映像分类连接器代理问题。
所需系统库
以下选项卡列出了每个ML 映像分类连接器所需的系统库。
- ML 映像分类 Aarch64 JTX2
-
库 最低版本 ld-linux-aarch64.so.1 GLIBC_2.17 libc.so.6 GLIBC_2.17 libcublas.so.9.0 不适用 libcudart.so.9.0 不适用 libcudnn.so.7 不适用 libcufft.so.9.0 不适用 libcurand.so.9.0 不适用 libcusolver.so.9.0 不适用 libgcc_s.so.1 GCC_4.2.0 libgomp.so.1 GOMP_4.0,OMP_1.0 libm.so.6 GLIBC_2.23 libpthread.so.0 GLIBC_2.17 librt.so.1 GLIBC_2.17 libstdc++.so.6 GLIBCXX_3.4.21,CXXABI_1.3.8 - ML 映像分类 x86_64
-
库 最低版本 ld-linux-x86-64.so.2 GCC_4.0.0 libc.so.6 GLIBC_2.4 libgfortran.so.3 GFORTRAN_1.0 libm.so.6 GLIBC_2.23 libpthread.so.0 GLIBC_2.2.5 librt.so.1 GLIBC_2.2.5 libstdc++.so.6 CXXABI_1.3.8,GLIBCXX_3.4.21 - ML 映像分类 Armv7
-
库 最低版本 ld-linux-armhf.so.3 GLIBC_2.4 libc.so.6 GLIBC_2.7 libgcc_s.so.1 GCC_4.0.0 libgfortran.so.3 GFORTRAN_1.0 libm.so.6 GLIBC_2.4 libpthread.so.0 GLIBC_2.4 librt.so.1 GLIBC_2.4 libstdc++.so.6 CXXABI_1.3.8,CXXABI_ARM_1.3.3,GLIBCXX_3.4.20
问题
症状 | 解决方案 |
---|---|
在 Raspberry Pi 上,记录了以下错误消息,并且您没有使用摄像机: |
运行以下命令以显示驱动程序:
此操作是临时的,符号链接将在重启后消失。请参阅您的 OS 分发手册以了解如何在重启时自动创建链接。 |
许可证
ML 映像分类连接器包含以下第三方软件/许可:
-
适用于 Python 的 AWS 开发工具包 (Boto3)/Apache 2.0
-
Deep Neural Network Library (DNNL)/Apache 2.0
-
mxnet/Apache 2.0
-
six/MIT
Intel OpenMP 运行时库许可。Intel® OpenMP* 运行时经过双重许可,具有商业 (COM) 许可证(作为 Intel® Parallel Studio XE Suite 产品的一部分)和 BSD 开源 (OSS) 许可证。有关更多信息,请参阅 Intel® OpenMP* 运行时库文档中的许可。
此连接器按照 Greengrass 核心软件许可协议发布。
Changelog
下表描述了连接器每个版本中所做的更改。
版本 |
更改 |
---|---|
2 |
添加了 |
1 |
首次发布。 |
Greengrass 组一次只能包含一个版本的连接器。
另请参阅
-
Amazon SageMaker 开发人员指南中的映像分类算法