【TVM 教程】创建使用 microTVM 的 MLPerfTiny 提交

💡 原文中文,约7900字,阅读约需19分钟。
📝

内容提要

Apache TVM 是一个支持多种硬件的深度学习编译框架。本文介绍如何使用 microTVM 构建 MLPerfTiny 提交,包括安装依赖、导入 TFLite 模型、编译模型,并生成可在 Zephyr 板上运行的项目,以便进行基准测试。

🎯

关键要点

  • Apache TVM 是一个支持多种硬件的深度学习编译框架。
  • 本文介绍如何使用 microTVM 构建 MLPerfTiny 提交。
  • 安装 microTVM 需要 Python 依赖项,如 pyserial 和 tflite。
  • 需要安装 ZephyrProject 和 Zephyr SDK,以支持 Zephyr 板。
  • 导入 Visual Wake Word (VWW) TFLite 模型,并提取元数据信息。
  • 定义目标、运行时和执行器以编译模型。
  • 编译模型并生成模型库格式,计算工作空间大小。
  • 生成输入和输出头文件,以连接生成的代码与独立项目。
  • 创建、构建并准备项目 tar 文件,以便在开发套件上使用。
  • 使用生成的项目将板子刷写,并准备运行 EEMBC runner 软件。

延伸问答

如何安装 microTVM 的依赖项?

安装 microTVM 需要使用 pip 安装 pyserial 和 tflite,命令为:pip install pyserial==3.5 tflite==2.1。

什么是 MLPerfTiny?

MLPerfTiny 是一个基准测试模型,旨在评估小型机器学习模型的性能。

如何导入 TFLite 模型?

首先下载 Visual Wake Word (VWW) TFLite 模型,然后使用 TensorFlow Lite 的解释器加载模型并提取输入输出的元数据信息。

如何编译模型并生成模型库格式?

使用 TVM 的 relay.build 函数编译模型,并使用 export_model_library_format 函数生成模型库格式。

如何创建和准备 Zephyr 项目?

准备项目选项后,使用 tvm.micro.project.generate_project_from_mlf 函数生成项目,并调用 project.build() 进行构建。

如何在开发板上运行生成的项目?

将生成的项目解压后,进入项目目录,创建构建目录并使用 cmake 和 make 命令进行构建,最后使用 west flash 刷写到开发板上。

➡️

继续阅读