0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何训练一个有效的eIQ基本分类模型

恩智浦MCU加油站 来源:恩智浦MCU加油站 2024-08-01 09:29 次阅读

一、概述

eIQ Neutron神经处理单元(NPU)是一种高度可扩展的加速器核心架构,提供ML加速。与传统MCU Kinetis、LPC系列相比,MCX N系列首次集成了恩智浦 eIQ Neutron神经处理单元(NPU),用于机器学习(ML)加速。相比单独的CPU核,eIQ Neutron NPU能够提供高达42倍的机器学习推理性能,MCX N94x每秒可以执行4.8 G次运算,使其能够高效地运行在 MCX CPU和eIQ Neutron NPU上。 eIQPortal它是一个直观的图形用户界面(GUI),简化了ML开发。开发人员可以创建、优化、调试和导出ML模型,以及导入数据集和模型,快速训练并部署神经网络模型和ML工作负载。

在本文中,我们将探讨如何训练一个有效的eIQ基本分类模型,并将其成功部署到MCX N947设备上。

硬件环境:

开发板FRDM-MCXN947

显示屏3.5" TFT LCD(P/N PAR-LCD-S035)

摄像头OV7670

软件环境:

eIQ Portal:eIQ MLSoftware Development Environment | NXP Semiconductors

MCUXpressoIDE v11.9.0

Application Code Hub Demo: Label CIFAR10 image

二、基本模型分类训练及部署

主要内容分为三步:模型训练、模型转换和模型部署。

1.数据集准备

数据集为简单演示apple、banana两分类,训练集、测试集比例为8:2,根据eIQ_Toolkit_UG.pdf提到的3.3.2 Structured folders dataset:

18397ed4-399f-11ef-a4c8-92fbcf53809c.png

文件夹结构如下:

196ddb88-399f-11ef-a4c8-92fbcf53809c.png

注:数据集需按照以上文件夹格式设置

2. 创建工程及数据集导入eIQ

(1) 打开eIQ Portal工具,点击create project->import dataset:

19977e52-399f-11ef-a4c8-92fbcf53809c.png

(2) 以StructuredFolders导入:

19afef0a-399f-11ef-a4c8-92fbcf53809c.png

(3) 点击“IMPORT”后,选择工程保存路径,点击“保存”:

19b4b0da-399f-11ef-a4c8-92fbcf53809c.png

3.选择base models训练

(1)数据集导入后,点击select model,选择base models,修改input size为128,128,3:

(2)点击start training。注:其他参数根据需要进行设定即可,此处learning rate、batch size、epoch为默认值,此处为演示,训练一轮,用户可以根据需要训练模型达到应用要求。训练完成如下:

19d9d0ea-399f-11ef-a4c8-92fbcf53809c.png

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

4.模型评估VALIDATE

(1) 点击VALIDATE,进入模型评估,设置参数Softmax,input DataType和output Data Type,目前MCXN系列Neutron NPU只支持int8类型,选择Softmax函数的阈值是一个需要综合考虑多种因素的过程,应该根据具体的应用场景和性能目标来决定最合适的阈值,在实际操作中,需要通过多次实验和调整来找到最佳的阈值:

19fdc5f4-399f-11ef-a4c8-92fbcf53809c.png

(2).设置完成后,点击VALIDATE,等待生成混淆矩阵,通过混淆矩阵我们可以清晰看出不同类别的分类情况,图中x轴是预测的标签,y轴是实际的标签,可以看到每一张图片预测标签和实际标签的对应情况:

1a1a56ec-399f-11ef-a4c8-92fbcf53809c.png

5.模型导出TensorFlow Lite

(1) 点击DEPLOY,设置Export file Type,input Data Type和output Data Type,打开Export Quantized Model,然后点击Export Model:

1a2469d4-399f-11ef-a4c8-92fbcf53809c.png

(2).设置模型保存位置,点击保存:

1a4a4ef6-399f-11ef-a4c8-92fbcf53809c.png

6.转换TensorFlow Lite for Neutron (.tflite)

(1) 保存完成后,点击open model,可以查看模型结构:

1a5b56b0-399f-11ef-a4c8-92fbcf53809c.png

(2) 点击convert,选择TensorFlow Lite for Neutron (.tflite):

1a8219b2-399f-11ef-a4c8-92fbcf53809c.png

(3) 选择Neutron Target,点击convert,设置保存路径即可:

1a935628-399f-11ef-a4c8-92fbcf53809c.png

7.将模型部署到Label CIFAR10 image工程

此示例基于机器学习算法,由 MCXN947 提供支持, 它可以标记来自相机的图像,并在LCD底部显示物体的类型。

该模型在数据集CIFAR10上进行训练,它支持 10 类图像:

“飞机”、“汽车”、“鸟”、“猫”、“鹿”、“狗”、“青蛙”、“马”、“船”、“卡车”。

(1) 打开MCUXpresso IDE,从Application Code Hub导入Label CIFAR10 image工程:

1ac5a6fa-399f-11ef-a4c8-92fbcf53809c.png

(2) 选择工程,点击GitHub Link->Next:

1ad30e44-399f-11ef-a4c8-92fbcf53809c.png

(3).设置保存路径,Next->Next->Finish:

1ba11514-399f-11ef-a4c8-92fbcf53809c.png

(4).导入成功后,点击“source”文件夹->model文件夹,打开model_data.s,将最后通过eiq转换的模型文件复制到model文件下,在model_data.s修改导入模型的名称(转换模型的名称):

1cf1abb8-399f-11ef-a4c8-92fbcf53809c.png

注:工程中导入的模型是经过多次训练得到的模型

(5) 点击“source”文件夹->model文件夹->打开labers.h文件,修改labers[ ],标签顺序为eIQ中数据集显示的顺序 :

1cfc4aa0-399f-11ef-a4c8-92fbcf53809c.png

wKgZomaq5a2AAjD6AAC4UvwxT7A999.jpg

(6) 编译工程,下载到开发板。

三、实验结果

1d5207f6-399f-11ef-a4c8-92fbcf53809c.png

四、总结

对于希望在MCX N系列边缘设备上实现高效机器学习应用的开发人员来说,掌握这些技术和工具是至关重要的。

通过高效利用eIQ Neutron NPU的强大性能和eIQ Portal的便捷工具,开发人员可以大大简化从模型训练到部署的整个过程。这不仅加速了机器学习应用的开发周期,还提升了应用的性能和可靠性。

作者:王浩 杨聪哲

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19155

    浏览量

    229035
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16977

    浏览量

    350206
  • 恩智浦
    +关注

    关注

    14

    文章

    5825

    浏览量

    106585
  • 机器学习
    +关注

    关注

    66

    文章

    8373

    浏览量

    132389
  • NPU
    NPU
    +关注

    关注

    2

    文章

    269

    浏览量

    18536

原文标题:MCX N947:eIQ基本分类模型训练及部署

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    pyhanlp文本分类与情感分析

    关系如下:训练训练指的是,利用给定训练集寻找能描述这种语言现象的模型的过程。开发者只需调用t
    发表于 02-20 15:37

    NLPIR平台在文本分类方面的技术解析

    本分类问题就是将篇文档归入预先定义的几个类别中的或几个,而文本的自动分类则是使用计算机程序来实现这种文
    发表于 11-18 17:46

    EIQ onnx模型转换为tf-lite失败怎么解决?

    我们正在尝试将 tflite 框架与 npu 起使用来进行机器学习。这是我们的步骤:1)用pytorch训练模型2) 以onnx格式导
    发表于 03-31 08:03

    如何使用eIQ门户训练人脸检测模型

    我正在尝试使用 eIQ 门户训练人脸检测模型。我正在尝试从 tensorflow 数据集 (tfds) 导入数据集,特别是 coco/2017 数据集。但是,我只想导入 wider_face。但是,当我尝试这样做时,会出现导入程
    发表于 04-06 08:45

    训练机器学习模型,实现了根据基于文本分析预测葡萄酒质量

    我们可以把上述的其他信息也引入作为特征参数,这样就能构建出更全面的模型来预测葡萄酒质量。为了将文字描述与其他特征结合起来进行预测,我们可以创建
    的头像 发表于 05-16 18:27 6088次阅读

    结合BERT模型的中文文本分类算法

    层面的特征向量表示,并将获得的特征冋量输λ Softmax回归模型进行训练分类。实验结果表明,随着搜狐新闻文本数据量的增加,该算法在测试集上的整体F1值最高达到93%,相比基于 Textcnn
    发表于 03-11 16:10 6次下载
    结合BERT<b class='flag-5'>模型</b>的中文文<b class='flag-5'>本分类</b>算法

    种基于BERT模型的社交电商文本分类算法

    种基于BERT模型的社交电商文本分类算法。首先,该算法采用BERT( Bidirectional Encoder Representations from Transformers)预训练语言
    发表于 04-13 15:14 8次下载
    <b class='flag-5'>一</b>种基于BERT<b class='flag-5'>模型</b>的社交电商文<b class='flag-5'>本分类</b>算法

    融合文本分类和摘要的多任务学习摘要模型

    文本摘要应包含源文本中所有重要信息,传统基于编码器-解码器架构的摘要模型生成的摘要准确性较低。根据文本分类和文本摘要的相关性,提出种多任务学习摘要模型。从文
    发表于 04-27 16:18 11次下载
    融合文<b class='flag-5'>本分类</b>和摘要的多任务学习摘要<b class='flag-5'>模型</b>

    基于不同神经网络的文本分类方法研究对比

    神经网络、时间递归神经网络、结构递归神经网络和预训练模型等主流方法在文本分类中应用的发展历程比较不同模型基于常用数据集的分类效果,表明利用人
    发表于 05-13 16:34 48次下载

    基于双通道词向量的卷积胶囊网络文本分类算法

    的词向量与基于特定文本分类任务扩展的语境词向量作为神经网络的2输入通道,并采用具有动态路由机制的卷积胶囊网络模型进行文本分类。在多个英文数据集上的实验结果表明,双通道的词向量
    发表于 05-24 15:07 6次下载

    基于LSTM的表示学习-文本分类模型

    的关键。为了获得妤的文本表示,提高文本分类性能,构建了基于LSTM的表示学习-文本分类模型,其中表示学习模型利用语言模型为文
    发表于 06-15 16:17 18次下载

    基于注意力机制的新闻文本分类模型

    基于注意力机制的新闻文本分类模型
    发表于 06-27 15:32 30次下载

    PyTorch教程4.3之基本分类模型

    电子发烧友网站提供《PyTorch教程4.3之基本分类模型.pdf》资料免费下载
    发表于 06-05 15:43 0次下载
    PyTorch教程4.3之基<b class='flag-5'>本分类</b><b class='flag-5'>模型</b>

    NLP中的迁移学习:利用预训练模型进行文本分类

    迁移学习彻底改变了自然语言处理(NLP)领域,允许从业者利用预先训练模型来完成自己的任务,从而大大减少了训练时间和计算资源。在本文中,我们将讨论迁移学习的概念,探索些流行的预
    发表于 06-14 09:30 430次阅读

    利用TensorFlow实现基于深度神经网络的文本分类模型

    要利用TensorFlow实现基于深度神经网络(DNN)的文本分类模型,我们首先需要明确几个关键步骤:数据预处理、模型构建、
    的头像 发表于 07-12 16:39 684次阅读