首页 > 解决方案 > AWS 从 Lambda 向 Sagemaker 发送图像:如何设置内容处理?

问题描述

与AWS Lambda 向 Amazon Sagemaker 发送图像文件类似的问题

我尝试使 simple-mnist 工作(模型是通过参考aws 教程构建的)

然后我使用 API 网关(带代理集成的 REST API)将图像数据发布到 lambda,并希望将其发送到 sagemaker 端点并进行推理。

在 lambda 函数中,我像这样编写了代码(.py)。

runtime = boto3.Session().client('sagemaker-runtime')

endpoint_name = 'tensorflow-training-YYYY-mm-dd-...'
res = runtime.invoke_endpoint(EndpointName=endpoint_name,
                              Body=Image,
                              ContentType='image/jpeg',
                              Accept='image/jpeg')

但是,当我通过 API 网关将图像发送到 lambda 时,会发生此错误。

[错误] ModelError:调用 InvokeEndpoint 操作时发生错误 (ModelError):收到来自模型的客户端错误 (415),消息为“{“错误”:“不支持的媒体类型:图像/jpeg”}

我想我需要做一些参考为 REST API 使用二进制媒体类型的 事情

但由于我很新,我不知道在哪个页面(可能是 API 网关页面?)或如何......

我需要一些线索来解决这个问题。先感谢您。

标签: amazon-web-servicesaws-lambdaamazon-sagemaker

解决方案


这里可以看到默认只支持一些特定的内容类型,图片不在这个列表中。我认为您必须实现您的input_fn功能或使您的数据适应一种受支持的内容类型。


推荐阅读