关于Amazon Sagemaker Neo编译模型中推理脚本的帮助

0

【以下的问题经过翻译处理】 大家好,我正在尝试执行文档中提到的示例 - https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_neo_compilation_jobs/pytorch_torchvision/pytorch_torchvision_neo.html。我成功地运行了这个例子,但是当我将目标设备更改为jetson_tx2后,我再次运行整个脚本时,保持其余代码不变,模型就停止工作了。我没有从部署模型中获得任何推理,它始终出现以下错误消息:

An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from <users-sagemaker-endpoint> with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."                

根据故障排查文档 https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-inference.html,这似乎是model_fn()函数的问题。使用此示例的推断脚本在此处 https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker_neo_compilation_jobs/pytorch_torchvision/code/resnet18.py,其中自己不包含任何model_fn()定义,但它仍适用于目标设备ml_c5。因此,有谁可以回答以下问题:

  1. 根据target_device类型,SageMaker Neo对模型进行了哪些更改?因为看起来同一模型以不同的方式加载到不同的目标设备中。
  2. 是否有任何方法来确定模型如何预期为特定的target_device类型加载,以便我可以在上面提到的相同推断脚本中自定义model_fn()函数?
  3. 最后,谁能帮忙处理一下上面文档中提到的相同模型的推理脚本,该脚本也适用于jetson_tx2设备。 关于如何解决这个问题的任何建议或链接都会非常有帮助。
profile picture
专家
已提问 1 年前44 查看次数
1 回答
0

【以下的回答经过翻译处理】 正如你所提到的,你已经将Neo的编译目标从ml_c5更改为jetson_tx2,编译后的模型需要在jetson_tx2上运行。如果你的其他代码没有改变,该模型将被部署到一个不支持Nvidia Jeston的ml.c5.9xlarge EC2实例上。

由于Jestion是Nvidia GPU结构的设备,而c5只配备CPU,因此无法加载该模型并将出现错误。没有CUDA环境。

如果您以jeston_tx2为目标编译模型,您应该下载模型并在真正的Nvidia Jeston设备上运行编译的模型。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则