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

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

3天内不再提示

为什么机器学习在嵌入式系统中不成功

Wildesbeast 来源:今日头条 作者:闻数起舞 2020-02-12 16:12 次阅读

换个角度思考,深入研究嵌入式世界以及迄今为止机器学习行业无法解决的问题

Photo by Daniel Wiadro on Unsplash

如今,机器学习达到了顶峰,并最终在各个地方得到了应用。 您可以在机场看到人脸识别系统,并在Facebook中看到个性化广告。

虽然,当我们谈论将ML与嵌入式设备结合时,仍然存在很大差距。

1.我们不了解什么是嵌入式世界

使用ML,我们曾经拥有巨大的计算能力。

AlexNet需要727 MegaFlops和235Mb的内存来处理小的227x227px图像。 例如,Google Nexus S上的ARM Cortex-A8每秒可产生66个MegaFlops。 因此,您必须等待〜11秒才能进行推断。 好慢啊!

· FLOP —浮点运算

查看更多信息:各种CNN的内存消耗和FLOP计数以及ARM内核的浮点性能及其效率的估计。

我在大学里有几门与ML相关的课程。 我们在功课上做了很多很酷的事情。 但是即使在那里我的4GB GTX1050也不足以训练所有模型。

Problem understanding is essential to build the right product

一般的ML工程师很少考虑计算资源。 此外,他/她很少关心内存使用情况。 为什么? 因为价格便宜,甚至您的手机都具有不错的CPU和大量内存。

上次聚会中的照片时,手机上是否仍然缺少内存? 想象一下,您使用的是具有256KB闪存的TrueTouch感应控制器。 是的,256KB。 而且由于现有固件,您无法使用所有这些功能。 因此,大约100KB。 查看您上一次的模型的尺寸。 可能更大。

变得有趣了吗? 让我们继续:)

当您听到"嵌入式设备"时您怎么看? 想象一下图片并牢记在心。

1.它是任何电器,甚至我的微波炉和洗衣机

Photo by Marcos Ramírez on Unsplash

嗯你是对的!

如今,几乎所有的电气设备都是嵌入式设备。 它内部可能具有一个或几个控制器来负责每个确切的功能:触摸感应,发动机状态监控等。

2. Arduino或/和Raspberry PI

Photos by Harrison Broadbent on Unsplash

MAKEBLOCK Arduino MegaPi 编程学习主控板 10050

¥209

购买

恭喜,您再次正确!

它们是用于DIY项目的最受欢迎和使用最广泛的工具包之一。 是的,它们是嵌入式设备。

3. Jetson Nano和类似产品

Photo by NVIDIA

moft 英伟达NVIDIA Jetson Nano TX2嵌入式开发套件nvidia AGX开发板 Jetson Nano【开13%增票】

¥846

购买

再次正确。

这是一个特殊的开发套件" aka mini-computer",专门为在其上运行ML模型而开发。 它非常强大,说实话,超级性感。

但是这里有些遗漏

我有很多朋友正在做很棒的硬件宠物项目。 他们通常在那里使用Arduino或STM32(又名Hardcore

Arduino)。

Smart helmet, Robotic car and ALU

我认识几个对Jetson Nano和类似设备感到兴奋的AI工程师。 他们被认为是嵌入式AI的未来。

Photo by Nvidia

现在。 请考虑"在生产级别使用了多少这种设备?"

答案-小

考虑一下您家中有多少个电气设备。 然后在您的汽车中添加大量的控制器。 您工作中的安全系统。 我可以继续很长的清单。

每个设备都有一个控制器。 通常,它是微型且超级便宜。 它无法与Jetson或Raspberry的资源和功能相提并论。

假设您有一个微控制器。 它的主要任务是处理您的手指触摸屏幕。 它具有ARM Cortex-M0处理器,256KB内存(其中只有80–120可用)。 这是一个实时系统,因此您可以花很少的时间来推断模型,例如100微秒。 您的目标是在那里改善或替换某些算法

祝您好运,欢迎来到"嵌入式AI"世界。

嵌入式世界"由资源有限的1-2美元成本的芯片组成。 这就是在生产水平上使用的东西。

2.纯基础设施

我一直在从事上述项目。 一切都很棒。 我开发了一个可能必须适合该微控制器的小型网络

Photo by Matty Lynn Barnes on Unsplash

是时候开始将模型从我的电脑转移到设备了!

1.量化。

该处理器无法执行浮点数运算。 即使可以,我们也不会使用它,因为这是一个非常复杂的操作,需要很多时间。

因此,我对权重量化进行了模型化-将值的连续范围转换为离散值的有限范围。

你猜怎么着? PyTorch和TensorflowLite都不完全支持它。 它们不支持所有激活函数(尽管我使用了非常简单的HardTanh)。 PyTorch甚至无法将量化模型保存到文件中。

所以,我不得不手工做。

2.推理代码生成

您想在该控制器上运行模型。 对? 因此,您需要使用C代码进行模型推理。

很难过,但您必须手动完成。 为什么? PyTorch没有推理代码生成的功能。 相比之下,TFLite具有功能,但功能相当有限,并且不支持常见的激活函数。

因此,我再次手动完成。

我在工作中遇到了很多这样的情况。 这不是PyTorch或TF方面的重拳,而是"呼救声"。

*** ML社区的另一面是,正在寻找"嵌入式AI"的专业工具,但还找不到它。 ***

有什么好处吗

我看到大型半导体公司对AI产生了极大的兴趣,它们正在做非常有价值和重要的事情。 它们值得另一篇文章,因此我列出其中一些,以免使本文太长。

CMSIS-NN —用于Arm Cortex-M CPU的高效神经网络内核

产生高效推理代码的编译器,这些推理代码根据您拥有的硬件进行了优化

还有很多其他很酷的东西

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

    关注

    41

    文章

    3564

    浏览量

    129215
  • 机器学习
    +关注

    关注

    66

    文章

    8375

    浏览量

    132398
  • cnn
    cnn
    +关注

    关注

    3

    文章

    351

    浏览量

    22168
收藏 人收藏

    评论

    相关推荐

    嵌入式学习建议

    原理的嵌入式操作系统进行学习。不要一开始就学习几种操作系统,理解了基本原理,实践确有实际需要再
    发表于 10-22 11:41

    ARMxy嵌入式计算机机器视觉的卓越表现

    嵌入式视觉是指在嵌入式系统中使用计算机视觉技术,与经常所说的机器视觉系统的区别在于嵌入式视觉
    的头像 发表于 10-10 14:47 212次阅读
    ARMxy<b class='flag-5'>嵌入式</b>计算机<b class='flag-5'>在</b><b class='flag-5'>机器</b>视觉<b class='flag-5'>中</b>的卓越表现

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    嵌入式Hypervisor能够进一步提高系统的性能和效率。 这些高级特性和优化策略的学习,让我对嵌入式Hypervisor的应用有了更为深入的理解。我认识到,
    发表于 10-09 19:11

    嵌入式系统的未来趋势有哪些?

    嵌入式系统是指将我们的操作系统和功能软件集成于计算机硬件系统之中,形成一个专用的计算机系统。那么嵌入式
    发表于 09-12 15:42

    机器视觉嵌入式的应用

    机器视觉嵌入式系统的应用是一个广泛而深入的话题,涉及到许多不同的领域和技术。 机器视觉
    的头像 发表于 07-16 10:30 445次阅读

    深度学习算法嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从
    的头像 发表于 07-15 10:03 1172次阅读

    嵌入式系统怎么学?

    、C++或者Python。这些语言嵌入式系统开发中都被广泛应用。 3、微处理器/微控制器架构:学习常见的微处理器和微控制器架构,如ARM、AVR、PIC等,了解其特性和应用场景。
    发表于 07-02 10:10

    STMStudio连接R-Link不成功是怎么回事?

    连接R-Link不成功,怎么回事?
    发表于 05-07 07:05

    STM32中断OSFlagPost不成功是为什么?

    STM32中断OSFlagPost不成功,是为什么?
    发表于 04-23 07:44

    嵌入式热门发展方向有哪些?

    嵌入式人工智能可以运用机器学习技术对图像、视频进行高精度解析,从而实现图像识别、视频剪辑、视频智能关联应用等。传感器网络系统
    发表于 04-11 14:17

    ST485BDR-30度下串口通信不成功的原因?

    测试830pcs,反馈-30度下串口通信不成功
    发表于 03-19 06:03

    嵌入式系统发展前景?

    应用领域。随着汽车电子化和智能化程度的不断提高,嵌入式系统将在汽车控制、安全系统、自动驾驶等方面发挥更为重要的作用。 工智能和机器学习技术的
    发表于 02-22 14:09

    嵌入式学习步骤

    开发板上测试固件以及实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能化、网络化、自动化的目标。同时,随着人工智能和机器
    发表于 02-02 15:24

    嵌入式开发学习的十三法则分享

    嵌入式开发学习是一个不断积累和总结的过程,来自一个嵌入式开发高级工程师为我们总结的关于嵌入式开发学习的十三法则,大家不妨参考一下: 一、
    发表于 12-21 06:32

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2399次阅读