【TVM 教程】创建使用 microTVM 的 MLPerfTiny 提交
内容提要
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 刷写到开发板上。