![](/img/trans.png)
[英]Azure ML time series model inference error during data input (python)
[英]Data input format (call the service) for Azure ML time series forecast model deployed as a web service (Python)
提前抱歉这个冗长的问题,因为我想尽可能详细地解释它。 我使用 Azure AutoML 来训练 model 并将其部署为 web 服务。 现在我可以通过 REST 端点访问(调用)它。
我有以下属性数据类型:日期(时间戳)、数字、数字、数字、数字、integer。 我使用以下参数训练了 model:
据我了解,基于上述内容,我必须向 model 提供最后 4 个条目以进行正确预测。 否则,将考虑时间间隔。 我对吗? 在这种情况下,我如何一次输入 4 个实例来进行单个预测? 以下示例是错误的,因为它要求为每个实例提供 4 个预测:
import requests
import json
# URL for the web service
scoring_uri = 'http://xxxxx-xxxxxxx-xxxxxx-xxxxxxx.xxxxx.azurecontainer.io/score'
data = {"data":
[
[
2020-10-04 19:30:00,1.29281,1.29334,1.29334,1.29334,1
],
[
2020-10-04 19:45:00,1.29334,1.29294,1.29294,1.29294,1
],
[
2020-10-04 21:00:00,1.29294,1.29217,1.29334,1.29163,34
],
[
2020-10-04 21:15:00,1.29217,1.29257,1.29301,1.29115,195]
]
}
# Convert to JSON string
input_data = json.dumps(data)
# Set the content type
headers = {'Content-Type': 'application/json'}
# Make the request and display the response
resp = requests.post(scoring_uri, input_data, headers=headers)
print(resp.text)
上述代码基于提供的 Microsoft 示例https://docs.microsoft.com/en-us/azure/machine-learning/how-to-consume-web-service?tabs=python#call-the-service-蟒蛇。
我无法用我的数据复制提供的示例。 我有一个错误“语法错误:十进制 integer 文字中的前导零是不允许的;对八进制整数使用 0o 前缀”指向日期。 我假设,我需要指定数据类型但找不到如何。
我非常感谢任何帮助或指导。 谢谢你。
AlphaLu-0572 的回答解决了这个问题,将其添加为关闭问题的答案:
该服务以反序列化的 pandas 数据帧的形式获取数据。 在下面的示例中,它将如下所示:
import json
X_test = pd.DataFrame([
['2020-10-04 19:30:00', 1.29281, 1.29334, 1.29334, 1.29334, 1],
['2020-10-04 19:45:00', 1.29334, 1.29294, 1.29294, 1.29294, 1],
['2020-10-04 21:00:00', 1.29294, 1.29217, 1.29334, 1.29163, 34],
['2020-10-04 21:15:00', 1.29217, 1.29257, 1.29301, 1.29115, 195]],
columns=['date', 'number_1', 'number_2', 'number_3', 'number_4', 'integer']
)
test_sample = json.dumps({'data': X_test.to_dict(orient='records')})
test_sample
这将导致 JSON 字符串为:
{"data": [{"date": "2020-10-04 19:30:00", "number_1": 1.29281, "number_2": 1.29334, "number_3": 1.29334, "number_4": 1.29334, "integer": 1}, {"date": "2020-10-04 19:45:00", "number_1": 1.29334, "number_2": 1.29294, "number_3": 1.29294, "number_4": 1.29294, "integer": 1}, {"date": "2020-10-04 21:00:00", "number_1": 1.29294, "number_2": 1.29217, "number_3": 1.29334, "number_4": 1.29163, "integer": 34}, {"date": "2020-10-04 21:15:00", "number_1": 1.29217, "number_2": 1.29257, "number_3": 1.29301, "number_4": 1.29115, "integer": 195}]}
请将列重命名为训练数据集中的相应列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.