【发布时间】:2018-02-15 00:20:14
【问题描述】:
我遇到了一个奇怪的问题,即当机器学习模块被推送到 IoT Edge 设备时,该模块的输出无法被云中的 ASA 使用。例如即使正在发送消息(使用 VS Code 等检查),ASA 输入示例也不返回任何内容。我用过这个教程:https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-machine-learning
当使用温度传感器模拟器发送消息时,ASA 会正确采样并且可以被 ASA 使用。 https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-simulate-device-linux
我能看到的唯一区别是 JSON 是如何形成的 - 我想知道“applicationProperties”部分是否会导致问题?
ML JSON 发送到 IoT 中心: 15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[["{\"环境\":{\"湿度\":24,\"温度\":21.277752659180088},\" machine\": {\"pressure\": 10.860424874724545, \"temperature\": 107.55261834480434}, \"timeCreated\": \"2018-02-15T03:42:14.140615Z\", \"anomaly\": true }“]]特性: “AzureMLResponse”:“好的”
温度传感器 JSON 发送到 IoTHub: 15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[{“机器”:{“温度”:107.55261834480434,“压力”:10.860424874724545},“环境”:{“温度”:21.277752659180088 ,"湿度":24},"timeCreated":"2018-02-15T03:42:14.140615Z"}]
有人对特定问题可能是什么有任何想法吗?你能轻松去掉 AzureMLResponse 的属性吗?
谢谢, 比较
【问题讨论】:
-
能否请您显示Azure ML容器的日志?您可以查看容器日志中是否存在一些错误。
-
请看下面的日志(看不到任何错误)。对于进一步的上下文,消息从机器学习模块中路由出来,到达 IoT 中心。我还可以将数据路由到 BLOB 存储中。 ASA 只是没有接收数据。我能看到的唯一区别是 JSON 与 AzureMLResponse 的结构不同。
-
{"request_id": "e4854ea2-acaf-4a5a-82a1-9f654bb9c83e", "timestamp": "2018-02-16T01:39:09.187904", "logger": "logger_stdout", " message": " 0 1 2 3\n0 22.987607 1.226436 21.335369 25"} 预测是 {"request_id": "e4854ea2-acaf-4a5a-82a1-9f654bb9c83e", "timestamp": "2018-02-16T01:39:09.1882" ,“记录器”:“logger_stdout”,“消息”:“预测是”} 0 {“request_id”:“e4854ea2-acaf-4a5a-82a1-9f654bb9c83e”,“时间戳”:“2018-02-16T01:39:09.188398 ", "logger": "logger_stdout", "message": "0"}
-
我认为这是由于 iot_score.py 中使用的 azureml.api.schema.sampleDefinition 造成的。但我还没有找到有关它的源或详细结构信息。我正在尝试让熟悉的人参与这个问题要研究。如果有任何进展,我会告诉你的。
-
谢谢迈克尔。非常感激。一直在进一步研究它,试图查看它是否是消息数据类型问题或类似问题 - 仍然没有运气。
标签: azure machine-learning iot azure-iot-hub