我已经在sagemaker上训练了一个模型,并创建了端点。我正在尝试使用 postman 调用端点。但是,在训练模型时,甚至在此之后,我都没有为训练数据指定任何 header 。我不知如何在将发布请求发送给Sagemaker的同时创建有效负载

最佳答案

创建端点后,您可以使用凭据和有效负载将其作为任何其他 Restful 服务调用。

我猜,可能有两个地方可能会卡住。
一种可能是,发送包含所有 header 和所有内容的实际 PostMan 请求。
较新版本的 Postman 将 AWS 签名作为授权类型之一。您可以使用它来调用服务。不需要其他空间标题。请注意,Postman 中的一个 bug 仍然打开 (issue-1663) 仅在您是 AWS 联合账户时才会影响。个人帐户不应受到此问题的影响。

或者,您可能会被困在实际的有效载荷上。当您调用 SageMaker 端点时,有效负载将按原样传递给模型。如果要在将输入提供给模型之前对其进行预处理,则必须实现 input_fn 方法并在实例化模型时指定该方法。

您还可以使用 AWS SDK boto3 调用 SageMaker 终端节点,如下所示

import boto3
runtime= boto3.client('runtime.sagemaker')

payload = getImageData()


result  = runtime.invoke_endpoint(
    EndpointName='my_endpoint_name',
    Body=payload,
    ContentType='image/jpeg'
)

希望这可以帮助。

关于web-services - 如何使用 postman 将请求传递给 sagemaker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49675637/

10-13 00:57