[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

2023-05-16

NXP eIQ 机器学习Toolkit (二):模型篇

  • 1. 模型选择
  • 2. 模型训练
  • 3. 模型评估
  • 4. 模型导出
  • 5. 模型部署
  • 博主热门文章推荐:


在这里插入图片描述


书接上篇:[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

在这里插入图片描述


1. 模型选择

在准备篇中,数据集已OK,下面进行Model的建模训练,

首先要选择模型,点击SELECT MODEL:

在这里插入图片描述

eIQ 软件提供了两种不同应用的图像Model,包括Classification分类任务和Detection检测任务。
在这里插入图片描述
点击其中任一Model,就会进入到 Model Performance 类型选择:

类似大多现有Release的模型type:

  • ·Performance:模型运行速度最快,精度最低
  • ·Balanced:折中
  • ·Precision:模型运行精度最高,速度最低

(U1S1,这三个图片logo表达的还是非常准确滴~)
在这里插入图片描述

我们可以点击左面 选项栏的BaseModel,查看eIQ支持的模型:

可以看到eIQ针对图像分类/检测 Model 是用的 经典的MobileNet/SSD,

在这里插入图片描述

这里选择Balance的模型,点进去后,进入Target 目标平台选择,支持 MCU CPU和GPU,NPU

在这里插入图片描述


2. 模型训练

选择目标平台和类型后,进入到模型训练界面:

在这里插入图片描述
常用训练参数也都在选项栏里:

在这里插入图片描述

其中常用的包括:

–> Weight Initialization: 模型权重初始化策略,包括Imagenet(即网络预训练权重),随机权重,以及本地权重文件(即加载本地所保存的模型权重文件)
-> Input Size:指定模型输入尺寸
-> Learning Rate:模型训练学习率,控制每次迭代后模型权重更新速度
Batch Size:每一次迭代所使用的数据大小
-> Epochs ToTrain: 总的训练迭代次数
-> Enable QAT:使能训练中量化

配置好训练参数后,点击 黄色的“START TRAINING” 选项,即可开始训练,并实时更新Train loss曲线和各类参数:

在这里插入图片描述


3. 模型评估

当模型训练达到我们所接受的精度之后,我们就可以点击Stop停止模型训练,然后点击 VALIDATA进行模型的评估和测试,

如果精度一直不达标,可以通过修改各训练参数,或者更新训练数据,再次点击CONTINUE TRAINING继续进行训练:

在这里插入图片描述

在这里插入图片描述

Validating 需要一段时间:

在这里插入图片描述

在Validate 页面可以查看评价指标(Evaluation metrics),

eIQ这里 支持 Confusion MatricPer Class Metric:

下图我这次训练后的 Confusion Matric (混淆矩阵)

在这里插入图片描述

Per Class Metric(每个类别的准确度):

在这里插入图片描述

在选项栏 的validation 配置有Softmax threshold阈值 等:

在这里插入图片描述

点开Model Tool可以查看 分析Model具体结构

在这里插入图片描述

Model Tool这里 一看就是集成的Netron:

在这里插入图片描述
能够看到模型每一层的各类参数,包括输入输出和运行时间等,


4. 模型导出

如果评估感觉模型达标,接下来就可以进行导出和部署到 目标设备上,

点击Deploy:

在这里插入图片描述

进入导出页面:

在这里插入图片描述

这里支持导出为:

  • DeepViewRT (*.rtm),用于DeepViewRT推理引擎的rtm格式
  • ONNX (*.onnx)
  • Tensorflow Lite (*.tflite)
  • Keras (*.h5)

在这里插入图片描述

导出模型可选的输入输出类型 包括:Float32/Int8/Uint8:

在这里插入图片描述

也可以根据需要,针对性的对模型进行Quantized量化

在这里插入图片描述

配置好后,点击EXPORT MODEL 即可导出模型文件到本地:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

对于保存到本地的模型,可以在Deploy到设备之前,选用PC调用(如python加载)运行试下效果,最后再部署到设备端运行
在这里插入图片描述


5. 模型部署

Edge设备端是需要根据模型的类型以及设备的Lib支持,移植相应的Inference Engine ,加载上面保存的模型,运行输出Prediction结果。

在这里插入图片描述

而上面的模型 可见 准确度还差得远,不能使用,所以需要retrain提升精度后,Deploy在设备端才能更好的运行以解决问题。

手头的NXP开发板没有适合跑上面模型的,新板子正在路上。。。

在这里插入图片描述

未完待续。。。


博主热门文章推荐:

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇 的相关文章

  • 基于pytest设计自动化测试框架实战

    简介 基于pytest实现测试用例收集方案 自定义参数化方案 页面元素定位数据存储方案 测试用例数据存储和维护方案 xff0c 这样可直接进入到设计编写测试用例业务代码阶段 xff0c 避免重复设计这些方案以及方案不统一导致维护复杂 困难的

随机推荐