Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Sagemaker boto3 invoke_endpoint-我不断收到有效负载的类型错误。使用Blazingtext模型端点_Amazon Web Services_Aws Lambda_Amazon Sagemaker - Fatal编程技术网

Amazon web services Sagemaker boto3 invoke_endpoint-我不断收到有效负载的类型错误。使用Blazingtext模型端点

Amazon web services Sagemaker boto3 invoke_endpoint-我不断收到有效负载的类型错误。使用Blazingtext模型端点,amazon-web-services,aws-lambda,amazon-sagemaker,Amazon Web Services,Aws Lambda,Amazon Sagemaker,让我来阐述这个问题。我已经训练了blazingtext模型并部署了端点。 在我的笔记本实例中,我可以调用model.predict并从端点得到推论。 我现在正在尝试为端点设置lambda和API网关。我在试图找出Invoke\u endpoint(endpoint\u name=mymodel)的负载应该是什么时遇到了问题, 车身=有效载荷) 我不断收到无效的有效负载格式错误 这就是测试lambda时我的有效负载的样子 {"instances":"string of

让我来阐述这个问题。我已经训练了blazingtext模型并部署了端点。 在我的笔记本实例中,我可以调用model.predict并从端点得到推论。 我现在正在尝试为端点设置lambda和API网关。我在试图找出Invoke\u endpoint(endpoint\u name=mymodel)的负载应该是什么时遇到了问题, 车身=有效载荷)

我不断收到无效的有效负载格式错误

这就是测试lambda时我的
有效负载的样子

{"instances":"string of text"}
文件上说,人体接受b'字节或类似文件的对象。我一直在摆弄木卫一,运气不好。对于这个问题,没有好的博客或教程。只有一堆视频在讨论饼干切割机的例子

import io
import boto3
import json
import csv




# grab environment variables
ENDPOINT_NAME = os.environ['ENDPOINT_NAME']
runtime= boto3.client('runtime.sagemaker')

def lambda_handler(event, context):
    print("Received event: " + json.dumps(event, indent=2))
    
    data = json.loads(json.dumps(event))
    payload = data["instances"]
    print(data)
    #print(payload)
   
    response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
                                       ContentType='application/json',
                                       Body=payload.getvalue())
    #print(response)
    #result = json.loads(response['Body'].read().decode())
    #print(result)
    #pred = int(result['predictions'][0]['score'])
    #predicted_label = 'M' if pred == 1 else 'B'
    
    return ```

"errorMessage": "An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error (406) from model with message \"Invalid payload format\"

如果您的有效载荷与您描述的相同,即:

payload = {"instances":"string of text"}
然后,您可以使用以下方法以json字符串的形式获取它:

json.dumps(payload)

# which gives:

'{"instances": "string of text"}'
如果要将其放入bate数组中,则可以执行以下操作:

json.dumps(payload).encode()

# which gives:

b'{"instances": "string of text"}'