查看: 1505|回复: 2

i.MX RT助您跨界AI ——2. 集成AI模块到系统中

[复制链接]

该用户从未签到

72

主题

80

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
724
最后登录
2020-1-3
发表于 2019-1-21 21:38:24 | 显示全部楼层 |阅读模式
上期回顾

大家好,咱们又见面啦!在上期开篇中,咱们聊了AI的几大技能,AI的实现方法,尤其是机器学习(ML)和深度学习(DL)技术的优势,最关键的是基于ML与DL的技术,在i.MX RT上是大有用武之地的。这一次,咱们就聊聊如何应用AI技术。

什么,上期的内容没看到?赶快去补课:


i.MX RT助您跨界AI ——1. 开篇大吉


集成AI系统的全景视图

在AI科学家的眼里,AI本身就是打交道的主体。但对于我们MCU工程师,完整的嵌入式应用系统才是主体,而AI不管它有多厉害,仍然只是系统中的一个功能模块,用于逼近真实问题中从输入数据到输出结果的(复杂的)对应关系,从而改进系统的数据处理和决策能力。

所以,AI模块,简称“模型”,必须集成到应用系统中才有意义。下面一幅“鸟瞰图”展示了在嵌入式系统中应用AI技术的整体景象:

QQ浏览器截图20190121213612.png



学习经验,优化参数——训练模型

模型中有很多参数,尤其是DL模型的参数可以多到百万量级!即使是在RT上流畅运行的十项物体分类(CIFAR-10)模型,也有87K个参数,传统的ML模型中参数也一般在几十个以上。

模型的训练就是不断调整或者说优化这些参数,以使模型尽量好地解决问题。这是一个漫长、艰苦而反复的过程。即使在高性能计算机上,借助先进的训练软件(如Tensorflow),耗时也在十几分钟至十几天不等。

为此,GPU以“众人划桨开大船”的策略,集成成千上万个基本计算单元,可以呈数量级地加快模型的训练。

这里有个很重要的概念,模型的训练不是在MCU上完成的。

训练模型需要很多个数据样本,它们组成了“训练集”,大小常常可达几个GB以上。训练模型要多次遍历训练集,反复不断地优化参数,直到效果满意或不再改善。每轮训练好后,都要使用一个验证集检验模型的效果。如果模型的效果不佳,或者效果还在持续改进,则继续训练。

模型训练出来后,再在它未曾见到过的测试集上测试它的性能,用于最终确定模型的质量。

上述介绍可以以下图来表示:

QQ浏览器截图20190121213619.png

质量合格的模型就可以交给第2阶段——模型转换与量化了。



量体裁衣——转换与量化模型

模型在训练时需要加入辅助训练的结构,并且训练过程中为了提高精度,一般使用至少单精度浮点数。

通常不同的训练工具(也叫框架),会使用不同的格式来表达训练出来的模型,这样的模型还需要进一步加工才能应用。

首先,要去掉辅助训练的结构,有的可以直接拿去,有的体现成了对模型参数的变换。

然后, 把浮点数表达的参数和各个中间层的输出,转换成常用的8位或16位整数。一方面是因为好的模型对精度的要求其实不高,另一方面也是整数运算的代价远小于浮点数运算。



贯彻执行——部署并运行模型

这也是最后一步,转换模型的格式或者呈现方式,使它能对接到目标应用系统的软硬件接口上,并部署到目标设备中。

运行时,设备采集真实的输入数据,并可能经过预处理(比如音频数据做FFT),然后作为输入数据运行模型,模型给出结果——预测的数值/分辨的种类/检测的异常,等等。

这一般有2种实现方式:生成代码 VS. 装载模型

QQ浏览器截图20190121213625.png

量体裁衣和贯彻执行的2步可以由下图来表示:

QQ浏览器截图20190121213630.png


总结与下期预告

总结一下前面的介绍,可以由下面一张图展示:

QQ浏览器截图20190121213633.png

图上看起来很简单,但若要完全靠自己走完AI应用的全过程,还是挺费劲儿的。

光是准备数据集就能忙上一阵子。训练模型很花时间,制作转换工具更是需要很多技术储备。

对于在Linux和Android上开发的人来说,这都不是事儿,因为工具基本上是现成的。然而到了MCU上,却像是刚成立的初创公司,几乎全要一切靠自己。

如果这些都推给下游客户,就显得不太负责任了。那么,我们要如何帮助MCU客户来轻松地部署AI技术呢?继续阅读,i.MX RT助您跨界AI ——3. 模型的部署



文章出处:恩智浦MCU加油站

回复

使用道具 举报

  • TA的每日心情
    奋斗
    2020-6-16 09:38
  • 签到天数: 589 天

    [LV.9]以坛为家II

    3

    主题

    1039

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2387
    最后登录
    2020-6-16
    发表于 2019-1-23 13:10:44 | 显示全部楼层
    可以介绍一下AI方面的书籍吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    62
    最后登录
    2020-9-5
    发表于 2020-7-24 15:58:48 | 显示全部楼层
    楼主,我问一下,SDK中eiq_examples下有两类例程:
    1、cmsis_nn
    2、tensorflow_lite
    这两种是不是就分别指的是部署模型运行的两种方式:cmsis_nn示例的模型是代码,tensorflow_lite示例的模型是转换后的模型文件?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 06:29 , Processed in 0.128899 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表