RUHMI & RA8P1 教程 Part4 - 使用 RUHMI 转换 AI 模型文件


在这个环节,需要开发者自行准备:

  • 一个 AI 模型文件,可以是来自各种标准测试中使用 AI 模型文件。由于 RUHMI 中带有量化工具,所以开发者使用的 AI 模型可以是经过 TFLite 量化过的,也可以交由 RUHMI 完成量化过程。本例中使用了一个基于 MINST 手写数字识别的样本库训练的模型,已经经过 TFLite 量化处理,可在本文的附件中获取。

通过 AI Navigator 调用 RUHMI 转换模型文件

前文的描述中,已经创建了包含 TFLM 运行时环境的 RA8P1 嵌入式工程,在本节中,将通过 AI Navigator 的图形界面调用RUHMI工具,转换预先准备好的模型文件minst_quant.tflite,生成可以调用 Ethus-U NPU硬件引擎计算神经网络推理过程的 C 源码。

在 E2Studio IDE 的菜单栏中,找到“Renesas AI”,单击“Renesas AI-> AI Navi”,即可激活 AI Navigator 的对话页面。如图x所示。
在这里插入图片描述

图x 在E2Studio IDE中激活AI Navigator页面

这里使用新建工程proj_ra8p1_ruhmi和预先准备好的minst_quant.tflite模型文件。对应地,在激活的 AI Navigator 对话页面中,应选择右侧的“Use Your Project & AI Model”。然后,在弹出的对话框中,选择当前的proj_ra8p1_ruhmi工程,单击“Finish”按钮,进入下一步操作。如图x所示。

在这里插入图片描述

图x 在AI Navigator中选定工程

在接下来这个配置页面中,需要用户向 AI Navigator 传入预先准备的模型文件。单击对话页面的“Use AI Model on Your PC ”,弹出“Select a model.”的提示,确定后,在打开文件的对话框中找到即将要转换的模型文件。如图x所示。

在这里插入图片描述

图x 在AI Navigator中选定转换模型文件

选定模型文件后,进入 AI Navigator 的另一个页面,直接点击“Convert AI Model”标签。进入新页面后,点击其中的“Convert…”按钮,进入下一步。如图x所示。

在这里插入图片描述

图x 在AI Navigator中启动转换

然而,此时此刻,期待的转换过程在并没有实际启动,而是从 AI Navigator 跳转到了另一个工具,Conversion Tool,的页面中。如图x所示,此时激活了Conversion Tool 的界面。在这个界面中,需要重新确认配置参数,其中包括指定芯片使用 Ethos-U55 NPU,指定模型框架格式、再次指定模型文件的路径等等。最后点击“Next”按钮,进入下一步。注意,Conversion Tool 即将调用 RUHMI 执行转换。

在这里插入图片描述

图x 在Conversion Tool中指定工程名、模型文件等

这一页是对导入的模型进行量化操作的,由于在本例中使用的模型文件已经经过量化,因此在页面的最下方显示“A quantized model has been loaded”,提示导入的模型已经进行了量化。若是用户自己使用了没有量化的模型,则可在本页面下,通过点击“Advanced Quantization Settings…”按钮,启动配置量化相关的设定并执行量化过程。如图x所示。点击“Next”按钮,进入下一步。

在这里插入图片描述

图x Conversion Tool中对模型执行量化的页面

在这一页中,重新选择转换模型的配置选项,使用 Ethos-U55 NPU,性能优先优化,将模型权重参数全部放在 SRAM 中。然后点击“Start Conversion”按钮开始启动转换。如图x所示。注意,到这里,才真正开始调用 RUHMI 执行转换过程了。

在这里插入图片描述

图x 在Conversion Tool中配置对NPU的使用

此处专门解释一下配置选项 Option Settings 的功能:

  • Use CPU+Ethos-U55。(默认)若使用 Ethos 和 CPU 执行推理。
    • Optimize mode(优化模式):
      • Performance(性能): (默认) 优化为最大化性能。
      • Size(大小): 优化为最小RAM 使用量。
    • Memory mode(内存模式):
      • Sram_Only: (默认) 将权重放置在片内 ROM 时选择。
      • Shared_Sram: 将权重放置在片外 ROM 时选择。
  • Use only CPU。若仅使用 CPU 执行推理:
    • Weight location(权重存放位置,仅在使用 CPU 时适用):
      • ROM: (默认) 将神经网络权重数据存储在 ROM 中。
      • RAM: 将神经网络权重数据存储在 RAM 中。

当转换完成后,如图x所示,可以看到在“Conversion result”的框中输出了转换的 log 信息。在 E2Studio IDE 页面下方的 Console 框中,还可以看到转换工具最终调用 Vela 编译器产生的 log 信息。也可以看到,在源码工程目录下出现了“conversion_resuts”的目录,由 RUHMI 编译产生的 C 源码就存放在这个目录下。

在这里插入图片描述

图x 转换完成

到此为止,使用 AI Navigator 调用 Conversion Tool,再由 Conversion Tool 调用 RUHMI 对预先准备的模型文件minst_quant.tflite文件进行转换,得到 C 源码的过程就全部完成。

接下来,将介绍如何对源码工程做一些调整,使得 E2Studio IDE 能够成功编译包含模型的源码工程,生成固件并下载到电路板上进行调试,从而完成将 AI 模型部署至嵌入式平台的过程。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐