开发板官网(www.edevkit.com)
e-AI插件转换模型实验
以上是采用e2 Studio 和 Reality AI Tools结合训练模型,“Reality AI Tools”是瑞萨官方的AI训练平台,如果用户使用“TensorFlow”训练的模型想转换成瑞萨开发板能运行的模型代码,可以在e2 Studio安装瑞萨官方出的e-AI 转换插件。
安装使用效果图
安装完在菜单栏有一个“Translator”转换器,打开界面如上图,选择训练好的模型文件,然后转换成C代码文件,可以在开发板上运行。
e-AI官网地址:
e-AI Development Environment for Microcontrollers | Renesas 瑞萨电子
可以从“PyTorch”,“Keras”,“Tensorflow”训练模型或“Tensorflow Lite”的8位量化模型转换,并轻松导入e²studio瑞萨电子的集成开发环境。
e2 Studio安装e-AI插件
进入上面官网地址,找到
①下载e-AI V3.4版本插件,解压之后点击“setup.exe”安装到e2 Studio的“plugins”安装路径,
比如:“D:\RA\e2studio_v2025-12_fsp_v6.3.0\eclipse\plugins”一定要是“plugins”插件文件夹路径。
②下载用户手册,可以查看需要安装的环境。
③下载license.txt文件,解压之后吧txt文件放到安装的eAI插件目录下。
“D:\RA\e2studio_v2025-12_fsp_v6.3.0\eclipse\plugins\com.renesas.eaitranslator_3.4.0”,点击替换,更新许可文件才能在e2 stuido里使用。
以上步骤执行完,打开e2 Studio,在插件里新增了“Translator”插件。
点击“Configure and Translate”打开界面。正常安装了环境是如下界面,但是现在只是安装了插件吗,没有安装所需环境,打不开界面。等后面安装完环境。
这里可以选择在TensorFlow保存的.h5等模型文件,然后转化成.c文件,可以移植到e2 Studio使用。
安装Python TensorFlow环境
根据手册说明,安装的e-AI Translator v3.4版本需要Python 3.10.5版本,这里下载一样的版本。
下载python:https://www.python.org/downloads/windows/
打开exe安装程序。
注意:一定要勾选下面的 Add Python to PATH,若不选这一项,则后面需要手动配置环境变量,很麻烦。然后点击 “Customize installation”自定义安装。
下一步。
选择“Install Python 3.10 for all users”,然后可以选择安装路径。
点击“Install”,等待安装完。
安装完在CMD界面输入Python 查看是否有版本显示。
安装python所需包
进入Python安装路径下“Scripts”文件夹,shift+右键打开CMD, 使用“pip3”指令安装所需库。
安装时注意各个库需要的版本限制。
##1.Installing Protobuf pip3 install protobuf==3.19.6 ##2.Installing TensorFlow pip3 install tensorflow==2.9.1 ##3.Installing Torch, TorchVision pip3 install torch==1.12.1+cpu torchvision==0.13.1+cpu -f https://download.pytorch.org/whl/torch_stable.html ##4. Installing TorchSummary pip3 install torchsummary==1.5.1 ##5. Installing Onnx pip3 install onnx==1.12.0 ##6. Installing ProgressBar pip3 install progressbar33==2.4 ##7. Installing Prettytable pip3 install prettytable==3.4.0 ##8. Installing h5py pip3 install h5py==3.6.0 ##9. Installing pycryptodome pip3 install pycryptodome==3.15.0 ##10. Installing configparser pip3 install configparser==5.3.0 ##11. Installing psutil pip3 install psutil==5.9.1 ##12.Installing Keras (only when using standalone Keras) pip3 install keras==2.9.0 ##13. Installing TensorFlow Lite pip3 install tflite==2.4.0 ##14.Installing Numpy pip3 install numpy==1.23.5安装“Microsoft Visual C++ 2015 Redistributable”
下载:https://www.microsoft.com/en-US/download/details.aspx?id=52685
从以上网站下载64位版本的Microsoft Visual c++ 2015的安装程序“vc_redist.x64.exe”,双击安装程序开始安装。提示已经安装就不需安装。
e-AI转换模型代码
界面说明
以上完成环境搭建,就可以使用e-Ai Translator转换模型。
①点击图标可以打开界面。
②点击“Translator”->“Configure and Translte”也可以打开界面。
Input Model File Name:选择训练的模型文件,包括 PyTorch、 Keras、 TensorFlow(tf.keras) 、 TensorFlow Lite、 ONNX。
Select Framework:指定训练模型的类型。使用TensorFlow(tf.keras)时选择“Keras”。
Convert option:指定在何处分配权重数据,ROM或RAM。当RAM大小被优先化时,权重数据被分配到ROM。当速度是优先级时,权重数据被分配给RAM
RL78 Option:选项仅适用于rl78mcu。通过设置“FAR Address”复选框,转换后的c源代码如下所示:
- ON:“__far”修饰符被添加到c源代码中,- OFF:“__far”修饰符不添加到c源代码中其他mcu请将此复选框设置为“OFF”。
Translator Output Location:选择转换结果输出的源文件和头文件指定输出目标文件夹。
Input Node Name、Output Node Name:当使用Keras或TensorFlow(tf.keras)的训练模型时,自动指定输入/输出节点名称。
Output Format:从以下三种选择中指定输出源文件格式。
C_FP32: 在转换PyTorch或TensorFlow(tf。keras)模型文件时,“C_FP32”被自动选择。
C_INT8: 在转换TensorFlow Lite模型文件时。此格式可用于所有MPU/MCU。
CMSIS_INT8: 在将TensorFlow Lite模型转换为源文件时,利用CMSIS库加快推理速度。此设置仅适用于RA、RX系列。
Input Shape Dimensions:指定神经网络输入层的大小。只有当框架是PyTorch时设置。
Model Name:定义模型名称。
RAM Usage (MB):在转换时显示PC RAM使用情况作为参考信息。
Translate button:将AI的训练模型转换为源文件和头文件。
选择转换模型
首先在“Select Framework”选择要转换的模型类型,然后再点击“Browse”,选择要转换的模型文件。
如果是“PyTorch”模型,支持的扩展名“.pth”。
如果是“Keras”模型,“TensorFlow(tf.keras)”,支持的模型扩展名“.h5”。
如果是“ONNX”模型,支持的模型扩展名“.onnx”。
如果是“TensorFlow Lite”模型,支持的模型扩展名“.tflite”。
转换C文件
选择模型后,
在“Convert option”指定在转换训练模型时要优先考虑的质量。
速度优先级:通过向RAM分配权重数据来确定执行速度的优先级。
RAM大小优先级(推荐):通过将权重数据分配给ROM来确定RAM使用的优先级。建议使用“RAM大小优先级”,因为权重数据的大小通常非常大。
①选择保存的文件路径。
②“Model Name”填写模型名称,作为生成的文件后缀名。
③点击“Translate”开始转换。
如果模型选择错误,会提示“模型框架选择错误”
如果有其他错误,比如模型使用了不支持的库,会提示生成错误,会在e2 Studio安装目录下生成log文件,具体错误查看log内容。
没有错误,生成成功后,会在①“output”路径下生成“Translator”文件夹,包含了代码文件。
使用模型代码
上一步生成的“Translator”文件夹,复制到e2 studio的工程“src”文件夹下。
打开“dnn_compute.c”文件,
“TsOUTdnn_compute(TsINserving_default_dense_input_0, TsInterrorcode)”
“dnn_compute()”函数就是模型训练执行函数。
关于TsOUT,TsIN,TsIN的定义,查看“typedefine .h”。
“serving_default_dense_input_0”第一个参数是需要训练的输入数据,在“input_image_0.h”中有示例数据,可以统一放在文件里。
“errorcode”,变量检测由malloc指令引起的内存分配错误。0:没有发生内存分配错误。1:内存分配错误。
“TsOUT”返回值,返回训练结果。
如何使用函数:
在“dnn_compute.c”定义自己的函数,实现自己的逻辑,然后在“hal_entry.c”在extern函数,调用就可以,比较方便。
文件说明:
“checker_log_output.txt”:可以检查要使用的ROM和RAM大小。
①训练操作的ROM使用情况
②上:每层的总RAM大小,下:训练操作的实际RAM使用情况。
③乘法和累加运算的次数。数字越大,推理速度越慢。
“network_description.txt”:可以检查转换后的神经网络结构的信息。
利用神经网络对ROM大小和RAM大小进行估计。当指定“RAM大小优先级”为当前版本的“转换选项”时,该文件显示ROM大小和RAM大小。即使“转换选项”改变了,估计结果也不会改变。
正玄波输出模型实验
现在有一个学习正弦函数y=sin(x)的简单回归模型,用于预测给定数据的三角函数值。已经训练好并保存为tflite格式。
这是个int8的量化模型,输入是int8的一个整数,输出就是int8类型±128的一个正玄波数据,输入输出都是一维度。
通过e-AI 把模型转换成代码,在开发板中运行,串口打印数据。
1.转换模型
打开“Translator”界面。
①首先查看模型格式是什么,需要在①处先选择再加载文件,这里是tflite格式选择“TensorFlow lite”。
②打开文件选择框,选择“hello_world_int8.tflite”模型文件。
③默认选中“RAM size Priority”内存优先,转换的模型优先考虑内存使用优化。以便在单片机使用。
④选择输出的文件夹目录,转换后的文件放在这里。
⑤模型名称,转换后的函数会加此后缀。
⑥点击“Translate”开始转换。
等待转换完成,在输出目录下看到转换的文件。
2.模型使用
把文件夹放到工程的“src/目录下”,
打开“dnn_compute_sin.c”文件,添加测试代码。
在“hal_entry.c”中调用。
编译下载运行,打开串口助手,查看数据。
在表格中查看曲线,近似正弦波的波形。