Azure Streaming Analytics 无法从 IoT Edge 上的机器学习模块接收输入

我遇到一个奇怪的问题,当机器学习模块被推送到 IoT Edge 设备时,该模块的输出无法被云端的 ASA 接收。例如,尽管消息已经被发送(使用 VS Code 等工具检查过),但 ASA 的输入样本却返回空。我使用了这个教程:https://learn.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-machine-learning

当使用温度传感器模拟器发送消息时,ASA 可以正确地采样并消费这些消息。相关教程见:https://learn.microsoft.com/en-us/azure/iot-edge/tutorial-simulate-device-linux

我能看到的唯一区别在于 JSON 的格式 – 我想知道是否是 ‘applicationProperties’ 部分引起了问题?

机器学习模块发送到 IoT Hub 的 JSON:15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[[“{\”ambient\”: {\”humidity\”: 24, \”temperature\”: 21.277752659180088}, \”machine\”: {\”pressure\”: 10.860424874724545, \”temperature\”: 107.55261834480434}, \”timeCreated\”: \”2018-02-15T03:42:14.140615Z\”, \”anomaly\”: true}”]]属性:’AzureMLResponse’: ‘OK’

温度传感器发送到 IoT Hub 的 JSON:15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[{“machine”:{“temperature”:107.55261834480434,”pressure”:10.860424874724545},”ambient”:{“temperature”:21.277752659180088,”humidity”:24},”timeCreated”:”2018-02-15T03:42:14.140615Z”}]

有谁对这个问题有任何想法吗?你们能否轻易去掉 AzureMLResponse 属性?

谢谢,Com


回答:

我已经找到了这个特定问题的解决方案。

这一行代码:return [json.dumps(input_json)]

会对 JSON 字符串进行编码并将其返回到 IoT Hub。模块本身或 IoT Hub 必须在传出时自动将消息编码为 JSON。转义字符等是双重编码的结果。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注