【CPKCOR-RA8D1】RUHMI 转换 AI 模型

【CPKCOR-RA8D1】RUHMI 转换 AI 模型

本文介绍了瑞萨 CPKCOR-RA8D1B 开发套件结合 RUHMI 框架实现预训练模型转换和部署的项目设计,包括环境搭建、模型量化、模型转换、图形化配置、C源码生成等。

项目介绍

  • 准备工作:硬件连接、RUHMI 框架拉取;
  • 部署方案:Linux 和 Windows 系统下 RUHMI 框架的部署流程;
  • 模型转换:使用 Python 程序将预训练模型转换为 C 语言源码,结合图形化配置工具完成部署;

准备工作

包括硬件连接和 RUHMI 框架部署方案介绍。

硬件连接

  • Renesas RA8D1 核心板:CPKCOR-RA8D1B;
  • 1 根 USB Type-A 转 Type-C 或 Type-C 转 Type-C 数据线;
  • 1个 MIPI 显示屏,型号 H0233S001-V1,驱动芯片 ST7796U ;
  • 1个 CPKEXP-EKRA8X1 扩展板;

RUHMI Framework

RUHMI 框架为将机器学习模型转换为 C 语言源码 提供了开发编译器及必要工具。

  • 该软件栈生成 C 源代码,同时确保与 Renesas e2 Studio 的兼容性和紧密集成。

  • 该框架配备了量化器,一种训练后静态 INT8 量化器,使要求更高的模型能够满足 MCU 和 Ethos-U 加速器典型的内存和延迟限制。

  • 使用 RUHMI 框架实现模型部署的主要流程如下

详见:renesas/ruhmi-framework-mcu .

部署方案

要在受支持的环境下(Ubuntu 22.04 或 Windows 10)安装 RUHMI 。

Linux

对于 Linux 用户,安装创建虚拟环境及运行演示所需的系统依赖

bash 复制代码
sudo apt update
sudo apt install build-essential cmake python3-venv python3-pip
MERA

推荐方案:使用系统自带 Python

MERA 软件栈默认兼容 Ubuntu 22.04 自带 Python,可直接创建虚拟环境:

bash 复制代码
# 添加工具链与 Python 源并升级底层库
sudo add-apt-repository -yu ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update && sudo apt upgrade
sudo apt-get install -q -y --only-upgrade libstdc++6 libgcc-s1
sudo apt update && sudo apt upgrade

# 安装编译器与 Python 3.10
sudo apt install -y build-essential gcc-13 g++-13
sudo apt-get install python3.10 python3.10-venv python3.10-dev python3-pip

# 创建并激活虚拟环境
python3.10 -m venv mera-env
source mera-env/bin/activate

# 升级 pip 并安装 MERA 依赖
pip install --upgrade pip
pip install decorator typing_extensions psutil attrs pybind11 cmake

此时终端提示符应显示已进入虚拟环境:
(mera-env) user@compute:~$

PyEnv

备选方案:使用 PyEnv

若更倾向于 PyEnv,可先安装相关依赖及 PyEnv 本身:

bash 复制代码
# 安装 pyenv 依赖
sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
  libbz2-dev libreadline-dev libsqlite3-dev curl git cmake \
  libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

# 一键安装 PyEnv
curl https://pyenv.run | bash

按官方建议,把 PyEnv 初始化命令写入 .bashrc

bash 复制代码
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc

使用 PyEnv 创建名为 mera-env 的 Python 3.10 虚拟环境:

bash 复制代码
MENV=mera-env
pyenv install 3.10.15
pyenv virtualenv 3.10.15 $MENV
pyenv activate $MENV
pip install --upgrade pip
pip install decorator typing_extensions psutil attrs pybind11

终端提示符同样会显示:
(mera-env) user@compute:~$

安装 MERA

在已激活的 mera-env 中执行:

bash 复制代码
pip install ./Downloads/mera-2.4.0+pkg.1756-cp310-cp310-manylinux_2_27_x86_64.whl

(版本号随实际发布包变化)

安装完成后,可运行以下命令验证:

bash 复制代码
python -c "import mera; print(dir(mera))"

若能正常输出模块内容,即表示 MERA 已就绪。

详见:ruhmi-framework-mcu | GitHub .

Windows

对于 Windows 用户,部署 RUHMI 开发环境。

  • 下载并安装 C++ 运行时库

  • 下载并安装 Python3.10

  • 从 Windows 开始菜单打开 PowerShell

  • 创建并进入工作文件夹;

shell 复制代码
cd F:\RUHMI
虚拟环境

为 Python 构建虚拟环境

shell 复制代码
py -3.10 -m venv .venv  

激活虚拟环境在激活垂直环境之前,需要更改 shell 执行的执行策略,执行指令

shell 复制代码
[Environment]::SetEnvironmentVariable('CONVERSION_TOOL_E2STUDIO_PLUGIN_PYTHON_VENV_LOC', "$(Get-Location)", 'User') 
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process  
.venv\Scripts\Activate.ps1  

提示 (.venv) PS F:\RUHMI> 表明创建并激活虚拟环境。

MERA 安装
  • 拉取 RUHMI framework 文件,或将 whl 文件下载至当前文件夹;

    shell 复制代码
    git clone https://github.com/renesas/ruhmi-framework-mcu.git
  • 将 RUHMI AI Compiler 安装至虚拟环境

shell 复制代码
python -m pip install .\mera-2.5.0+pkg.179-cp310-cp310-win_amd64.whl   
python -m pip install onnx==1.17.0 tflite==2.18.0
  • 安装后执行如下指令查询版本号
python 复制代码
python -c "import mera; print(mera.__version__)"  
vela --version
python -c "import mera;print(dir(mera))"
  • 效果如下

模型转换

使用 NETRON 判断预训练模型的数据类型 ;

根据模型的数据类型,如 float32,选择对应的转换代码,选择方案如下图所示

  • 将模型文件放置在自定义路径 ./models_fp32 文件夹;

  • 若预训练模型为 FP32 格式,则终端执行

shell 复制代码
python mcu_quantize.py ../models_fp32 deploy_mcu

该指令解释为 python <量化.py程序> <模型所在路径> <量化结果输出路径>

  • 终端输出模型量化细节

源码生成

处理模型后,在部署目录中找到转换后的文件。包括编译过程中生成的部署产物,用于调试。

核心输出位于目录 <deployment_directory> build/MCU/compilation/src 文件夹。

该目录包含已转换为一组 C99 源代码文件的模型。

图形化

  • 打开 e2 studio 软件,进入 Renesas AI - Conversion Tool 工具选项;
  • 选择工程,设备 RA8 系列,工具为 RUHMI 编译器,模型选择对应格式,配置输出路径,点击下一步;

注意 RUHMI Framework AI Compiler 选择路径为前面已安装的 .venv 环境目录。

  • 模型转换后,进入优化流程
  • 点击 Start Quantization ,待进度条完成,点击 Next ;
  • 进入转换流程,根据硬件配置选择 CPU/Ethos-U55 推理方案,权重保存位置等参数,点击 Start Conversion 执行转换程序;
  • 待进度条完成,控制台输出 Success command 字样,表明模型转换和部署完成。

总结

本文介绍了瑞萨 CPKCOR-RA8D1B 开发套件结合 RUHMI 框架实现预训练模型转换和部署的项目设计,包括环境搭建、模型量化、模型转换、图形化配置、C源码生成等,为相关产品在边缘 AI 领域的快速开发和应用设计提供了参考。

相关推荐
aiguangyuan1 小时前
从词袋到TF-IDF:sklearn文本特征工程实战指南
人工智能·python·nlp
数据知道2 小时前
PostgreSQL 实战:详解 UPSERT(INSERT ON CONFLICT)
数据库·python·postgresql
June bug2 小时前
(#数组/链表操作)寻找两个正序数组的中位数
数据结构·python·算法·leetcode·面试·职场和发展·跳槽
Sopaco2 小时前
2026年大火的AI工程化中多智能体协调的艺术
人工智能
超自然祈祷2 小时前
战术战法计策计谋博弈随笔
人工智能
李昊哲小课2 小时前
奶茶店销售额预测模型
python·机器学习·线性回归·scikit-learn
电商API&Tina2 小时前
电商API接口的应用与简要分析||taobao|jd|微店
大数据·python·数据分析·json
runningshark2 小时前
【软件端(3)】CNN
人工智能
向前V2 小时前
Flutter for OpenHarmony轻量级开源记事本App实战:笔记编辑器
开发语言·笔记·python·flutter·游戏·开源·编辑器