【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 之前,确保安装所有必要的 Python 依赖项,如 pyserial 和 tflite。这些依赖项对于模型的加载和串行通信至关重要。此外,安装 ZephyrProject 和 Zephyr SDK 是必不可少的步骤,以确保能够在支持 Zephyr 的硬件上运行编译后的模型。

模型导入与元数据提取

导入 TFLite 模型时,需注意提取模型的元数据信息,包括输入输出名称和量化参数。这些信息在后续的模型编译和运行时配置中将发挥重要作用,确保模型能够正确处理输入数据并生成预期的输出。

编译与项目生成

编译模型时,选择合适的目标和执行器至关重要。使用 AoT 编译模式可以生成独立的项目,适合在微控制器上运行。确保在编译时计算工作空间大小,以避免内存不足的问题。此外,生成的项目需要与开发板的配置相匹配,以确保顺利运行。

延伸问答

如何安装 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 刷写到开发板上。

🏷️

标签

➡️

继续阅读