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

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

文章目录

  • [RUHMI & RA8P1 教程 Part4 - 使用 RUHMI 转换 AI 模型文件](#RUHMI & RA8P1 教程 Part4 - 使用 RUHMI 转换 AI 模型文件)
    • [通过 AI Navigator 调用 RUHMI 转换模型文件](#通过 AI Navigator 调用 RUHMI 转换模型文件)

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

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

前文的描述中,已经创建了包含 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 模型部署至嵌入式平台的过程。

相关推荐
梦梦代码精2 小时前
《全栈开源智能体:终结企业AI拼图时代》
人工智能·后端·深度学习·小程序·前端框架·开源·语音识别
程序员欣宸2 小时前
LangChain4j实战之十三:函数调用,低级API版本
java·人工智能·ai·langchain4j
charlie1145141912 小时前
从 0 开始的机器学习——NumPy 线性代数部分
开发语言·人工智能·学习·线性代数·算法·机器学习·numpy
咚咚王者2 小时前
人工智能之核心基础 机器学习 第十二章 半监督学习
人工智能·学习·机器学习
人工智能训练2 小时前
UE5 如何显示蓝图运行流程
人工智能·ue5·ai编程·数字人·蓝图
deephub2 小时前
构建自己的AI编程助手:基于RAG的上下文感知实现方案
人工智能·机器学习·ai编程·rag·ai编程助手
AI营销干货站3 小时前
工业B2B获客难?原圈科技解析2026五大AI营销增长引擎
人工智能
程序员老刘·3 小时前
重拾Eval能力:D4rt为Flutter注入AI进化基因
人工智能·flutter·跨平台开发·客户端开发
kebijuelun3 小时前
FlashInfer-Bench:把 AI 生成的 GPU Kernel 放进真实 LLM 系统的“闭环引擎”
人工智能·gpt·深度学习·机器学习·语言模型