本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
运行代理
在本节中,您将使用 gRPC 将代理作为二进制文件运行,并检查您的设备和队列是否正常工作并收集示例数据。
-
启动代理程序。
SageMaker Edge Manager 代理可以以可执行文件和可链接格式 (ELF) 可执行文件二进制文件的形式作为独立进程运行,也可以作为动态共享对象 (.dll) 链接。作为独立的可执行二进制文件运行是首选模式,并且在 Linux 上受支持。
此示例使用 gRPC 来运行代理。gRPC 是一个开源的高性能远程过程调用 (RPC) 框架,可以在任何环境中运行。有关 GrPC 的更多信息,请参阅GrPC 文档
. 要使用 GrPC,请执行以下步骤:
-
在 .proto 文件中定义服务。
-
使用协议缓冲区编译器生成服务器和客户端代码。
-
使用 Python(或 gRPC 支持的其他语言)gRPC API 为您的服务编写服务器。
-
使用 Python(或 gRPC 支持的其他语言)gRPC API 为您的服务编写客户端。
您下载的发布工件包含一个准备运行代理的 gRPC 应用程序。该示例位于
/bin
发布工件的目录。这些区域有:sagemaker_edge_agent_binary
二进制可执行文件在此目录中。要使用此示例运行代理,请提供套接字文件 (.sock) 和 JSON .config 文件的路径:
./bin/sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
-
-
检查你的设备。
检查您的设备是否已连接并对数据进行采样。通过手动或自动进行定期检查,您可以检查设备或机群是否正常工作。
提供设备所属队组的名称和唯一设备标识符。在本地计算机上,运行以下命令:
sagemaker_client.describe_device( DeviceName=device_name, DeviceFleetName=device_fleet_name )
对于给定模型,您可以看到名称、模型版本、最新采样时间以及上次推断的时间。
{ "DeviceName": "sample-device", "DeviceFleetName": "demo-device-fleet", "IoTThingName": "sample-thing-name-1", "RegistrationTime": 1600977370, "LatestHeartbeat": 1600977370, "Models":[ { "ModelName": "mobilenet_v2.tar.gz", "ModelVersion": "1.1", "LatestSampleTime": 1600977370, "LatestInference": 1600977370 } ] }
提供的时间戳
LastetHeartbeat
表示从设备收到的最后一个信号。LatestSampleTime
和LatestInference
分别描述最后一个数据样本和推理的时间戳。 -
检查你的车队。
检查你的车队是否正在使用
GetDeviceFleetReport
. 提供设备所属的队列的名称。sagemaer_client.get_device_fleet_report( DeviceFleetName=device_fleet_name )
对于给定模型,您可以看到名称、模型版本、最新采样时间、上次推断的时间以及存储数据样本的 Amazon S3 存储桶 URI。
# Sample output { "DeviceFleetName": "sample-device-fleet", "DeviceFleetArn": "arn:aws:sagemaker:us-west-2:9999999999:device-fleet/sample-fleet-name", "OutputConfig": { "S3OutputLocation": "s3://fleet-bucket/package_output", }, "AgentVersions":[{"Version": "1.1", "AgentCount": 2}]} "DeviceStats": {"Connected": 2, "Registered": 2}, "Models":[{ "ModelName": "sample-model", "ModelVersion": "1.1", "OfflineDeviceCount": 0, "ConnectedDeviceCount": 2, "ActiveDeviceCount": 2, "SamplingDeviceCount": 100 }] }