json 当存在datetime字段时,如何将数据发送到AWS Sagemaker端点?

6l7fqoea  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(182)

我使用AutoML在AWS SageMaker中训练了一个模型。我创建了一个端点。现在我尝试向它发送数据,但在以第一种格式发送时遇到问题。
训练数据有四个输入:
d_time:日期时间
小时:类别
星期几:类别
班次:类别
backup_calls:类别
Hour、day_of_week、shift和backup_calls恰好是整数。
我尝试以以下方式发送数据:

import boto3
import json
import datetime as dt

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

data = {
    "d_time": "2023-05-19 03:34:34",
    "hour": 3,
    "day_of_week": 4,
    "shift": 3,
    "backup_call": 0
}

# Send CSV text via InvokeEndpoint API
response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType='application/json', Body=json.dumps(data))

# Unpack response
result = json.loads(response['Body'].read().decode())

我得到一个错误说:

result = self._transform_fn(self._model, input_data, content_type, accept)
  File "/opt/ml/model/code/tabular_serve.py", line 60, in transform_fn
    raise Exception(f"{input_content_type} content type does not has correct format")
Exception: application/json content type does not has correct format

你能帮我以正确的方式发送数据吗?谢谢你!

cclgggtu

cclgggtu1#

错误状态application/json不受支持,您可以测试将text/csv作为ContentType发送。然后,您可以将有效负载作为不带列名的CSV字符串发送。使用模型训练的顺序。

相关问题