0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Intel Developer Cloud之Telemetry数据分析

英特尔物联网 来源:英特尔物联网 2023-07-07 10:55 次阅读

文章作者:英特尔高级应用工程师尹参军

01Telemetry 介绍

在上一篇文章中介绍了 Intel Developer Cloud Telemetry的概念和功能,通过该功能的数据分析,可以更好地优化产品方案。有关 Telemetry 的工作原理和集成方法,我将在这篇文章里细细解释。耐心看下去,相信您肯定可以在自己应用中开启这个功能。

02Telemetry 收集流程

ac6ebce4-1bec-11ee-962d-dac502259ad0.png

图 1-2 Telemetry收集数据流程

概括来说,对自定义 AI 模型上运行模型优化,由OpenVINO工具套件进行推理,完成对 AI 模型的推理后,您就可以获得计算节点上可用的遥测指标。具体步骤如下:

1导入所有自定义模型文件(tensorflow、kaldi、onnx 等)

2使用模型优化器以必要的精度创建模型中间表示(IR)文件

3创建用于在计算节点上提交运行推理的作业文件(.sh)

4使用 Application Metrics Writer 启用遥测

5为不同的计算节点提交作业并监控作业状态直到完成(提交作业会调用 bash 和自定义 python 文件)

6在遥测仪表板上显示模型指标

注意:流程里不止包含 Telemetry 。而是 AI 应用在 DevCloud 上运行的流程,以便您可以了解 Telemetry 功能在应用里的位置。

03Telemetry 集成

这次依然选择 object-detection-python 实例来介绍集成方法,应用程序的 python 代码中调用了 applicationMetricWriter 模块向 Telemetry 传递数据指标如,帧率、推理时间、模型名称、推理硬件信息,下面通过具体代码来展示详细信息。

Step.1

登录 JupyterLab

登录 Intel Developer Cloud 主页后,点击“Bare Metal Deployment” 的 “Get Started” 按钮,进入 Jupyter Lab 开发环境。在左侧目录导航栏选择这个路径:

Reference-samples/iot-devcloud/openvino-dev-latest/developer-samples/python/

然后找到 object-detection-python 应用。

Step.2

程序源码分析

直接打开 object_detection.py ,可以看到在文件开头部分导入了 applicationMetricWriter 模块。我们可以在 Jupyter notebook 里直接查看它的函数。方法如下:

aca55c4a-1bec-11ee-962d-dac502259ad0.png

可以看到它只有两个函数,使用起来非常的简单,我们来逐一介绍一下这两个函数。send_inference_time() 用来向 Telemetry 数据发送每一帧推送所消耗的时间,唯一要注意的是每一帧哦。这就要求你能区分每一帧推理的时间。如果你选择 async 模式,就需要考虑是不是适用了。 send_application_metrics 主要传递的是模型的名字和推理设备的名字,以便于你能更好地标记这个任务。

看到这里,估计你的想法与我刚开始的一样,怎么没有看到上传 CPU, GPU, Thermal 等数据上传呢?其实是因为这些数据都是通用的,这块就没有必要放在用户侧来每次都重复写一遍,在后端直接默认做了。从这里我们可以看到,最重要的数据还是推理时间的上传。

现在这两个函数在程序里的调用时机,这里我注释了没有必要的代码,以方便观察。

#!/usr/bin/env python
import applicationMetricWriter
...
def main():
  ...
  try:
    infer_time_start = time.time()
    with open(processed_vid, "rb") as data:
      while frame_count < video_len:
                byte = data.read(CHUNKSIZE)
                if not byte == b"":
                    deserialized_bytes = np.frombuffer(byte, dtype=np.uint8)
                    in_frame = np.reshape(deserialized_bytes, newshape=(n, c, h, w))
                    inf_time = time.time()
                    exec_net.start_async(request_id=current_inference,inputs={input_blob: in_frame})
                # Retrieve the output of an earlier inference request
                if previous_inference >= 0:
          status = infer_requests[previous_inference].wait()
          if status is not 0:
            raise Exception("Infer request not completed successfully")
          det_time = time.time() - inf_time
          applicationMetricWriter.send_inference_time(det_time*1000)     
          res = output_postprocessor(exec_net.requests[previous_inference].output_blobs)
          processBoxes(frame_count, res, labels_map, args.prob_threshold, width, height, result_file)
          frame_count += 1
   …
  applicationMetricWriter.send_application_metrics(model_xml, args.device)

向右滑动查看完整代码

step.3

Telemetry 数据访问

等应用程序在边缘节点运行结束,我们就可以去查看 Telemetry 的数据了。数据的连接您可以参考这个object-detection-python 里的方法,直接点击下图中框① Telemetry 按键获取连接方式。

accb8938-1bec-11ee-962d-dac502259ad0.png

当然您也可以自己手动生成这样一个连接,注意上图中框②处的 ID 号。使用 Telemetry 服务器地址拼接该 ID 号,即可访问该数据。

https://devcloud.intel.com/edge/metrics/d/+ID

比如:https://devcloud.intel.com/edge/metrics/d/573403

访问该路径即可获取 Telemetry 的数据了。

ace6fb96-1bec-11ee-962d-dac502259ad0.png

03总结

看到这相信您一定理解了 Intel Developer Cloud Telemetry 的集成方法了,它并没有我们想象的那么复杂。我这里总结出来,只是为了方便刚开始接触这块的您更快上手,不用花费太多精力就可以更快的把事情搞定。如果您在使用过程中有碰到问题,期待一起交流。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    60

    文章

    9421

    浏览量

    168826
  • intel
    +关注

    关注

    19

    文章

    3452

    浏览量

    184782
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264045
  • 数据分析
    +关注

    关注

    2

    文章

    1352

    浏览量

    33735
  • Developer
    +关注

    关注

    0

    文章

    24

    浏览量

    6378

原文标题:Intel® Developer Cloud 之 Telemetry 数据分析 (二) | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Intel PXA27x Processor Family Developer's Manual

    Intel PXA27x Processor Family Developer's Manual 共29章!值得一学!  
    发表于 11-23 09:56

    数据分析

    数据分析软件
    发表于 05-28 22:31

    数据分析需要的技能

    商业价值的转换,数据分析师是其中一个重要的职位,那么,想从事该职业需要具备哪些技能呢?1. 精通ExcelExcel处理技能是大数据分析师必备技能,并且需要十分精通,除了常规操作和函数,一些不常
    发表于 04-10 15:59

    怎么有效学习Python数据分析

    Python在人工智能、机器学习领域受到火热追捧,很大程度上在于它拥有非常庞大的第三方库,以及强大的通用编程性能。因此,快速掌握Python进行数据分析,就是学习Python各种第三方库、工具包
    发表于 06-28 15:18

    python数据分析安装mysql数据

    python 数据分析基础 day11-mysql安装
    发表于 03-20 11:18

    基于Python的数据分析

    《利用Python进行数据分析》 113日期范围、频率和移位
    发表于 05-01 11:24

    python数据分析基础使用statasmodels进行线性回归

    python 数据分析基础 day16-使用statasmodels进行线性回归
    发表于 06-19 11:22

    怎么做自己做得快、老板看得开心的数据分析报表?

    本月公司支出费用上涨,只需双击就能层层钻取,将与相关的所有数据起底式钻取出来,精确到部门乃至个人。 SpeedBI数据分析云制作的数据分析报表虽然有一个预设的
    发表于 06-19 17:21

    BI数据分析软件使用指南

    BI数据分析软件做数据深度分析又快又直观,还能灵活满足不同人的数据分析需求,因此选择BI数据分析软件的企业与个人也越来越多,但却仍有很大一部
    发表于 01-04 11:00

    电商数据分析攻略,让你轻松搞定数据分析

    在当今的数字经济时代,运用大数据分析来促进业务增长已然成为一种普遍行为,拥有一套系统化的数据分析方案尤为重要。奥威BI电商数据分析方案是一种基于数据挖掘和机器学习技术的解决方案,以丰富
    发表于 06-27 09:22

    英特尔在基于数据分析的医疗应用研发的成功实践

    与后端数据分析平台的端到端大数据解决方案,在支持个性化健康管理服务方面开展的深度合作。该合作是英特尔借助开放创新的产品与开源技术的应用,在加速基于数据分析的医疗应用研发的又一成功实践。
    发表于 02-01 01:18 666次阅读

    IBM Cloud Pak for Data平台让数据分析变得更简单

    实验室。但对非科技专业的学生和院系来说,分析数据的技术及工具很复杂和难用。因此,仁大选择了IBM Cloud Pak for Data平台,解决这个难题,令数据分析变得更简单。
    的头像 发表于 04-14 11:26 1651次阅读

    Intel® Developer Cloud Telemetry数据分析

    Telemetry 数据包含在给定作业运行期间的应用程序详细信息——即:平均推理时间 (MS)、推理计数、目标硬件。它还包括以下指标:每秒帧数、推理时间、推理期间的 CPU/GPU 使用率、平均 CPU/GPU 温度以及推理期间的内存使用率。
    的头像 发表于 03-17 11:17 276次阅读

    Intel Developer Cloud Telemetry数据分析(二)

    这次依然选择object-detection-python实例来介绍集成方法,应用程序的 python 代码中调用了applicationMetricWriter模块向Telemetry传递数据指标如,帧率、推理时间、模型名称、推理硬件信息,下面通过具体代码来展示详细信息
    的头像 发表于 03-21 10:32 340次阅读

    Intel Developer Cloud Telemetry数据分析(一)

    Telemetry(遥测)是指Intel Developer Cloud 帮助开发者收集应用程序执行时开发者指定的信息,并通过 UI 的形式展现的功能,该功能可以被启动或关闭。
    的头像 发表于 06-05 15:57 422次阅读
    <b class='flag-5'>Intel</b> <b class='flag-5'>Developer</b> <b class='flag-5'>Cloud</b> <b class='flag-5'>Telemetry</b><b class='flag-5'>数据分析</b>(一)