![](/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.