为什么机器学习在嵌入式系统中会失败?

2022-12-15 0 486

为什么机器学习在嵌入式系统中会失败?

为什么机器学习在嵌入式系统中会失败?

译者 | Andrew Zhuravchak翻译者 | 弯月封图 | CSDN 浏览自 VCG公司出品 | CSDN(ID:CSDNnews)

现如今,机器学习已抵达颠峰,并在各个方面获得了应用领域。国际机场有人脸控制系统,Facebook 有个人化的电视广告。

不过,机器学习与PDP电子设备的并重依然存有十分大的隔阂。

为什么机器学习在嵌入式系统中会失败?

他们不介绍甚么是PDP当今世界

他们早已生活习惯了采用强悍的计算资源来处置机器学习。

AlexNet 须要 727MFlops 的演算潜能(Flops=浮点)和 235Mb 的缓存就可以处置小小两张 227 x 227 画素的影像。比如,Google Nexus S 上的 ARM Cortex-A8 的处置能力为每秒钟 66MFlops。因而,你要等候约 11 秒就可以展开推测。这也很慢了!

理工学院里我上了较难与机器学习有关的专业课程。他们做了许多有意思的工作台。但彼时即使是 4GB GTX1050 也足以体能训练所有模型。

一般的机器学习工程师很少考虑计算资源。而且他们也很少关心缓存的采用情况。为何?因为这些硬件都很便宜,甚至是你的手机都拥有相当不错的 CPU 和大量缓存。

你早已很久没有过聚会拍照时发现自己手机上的存储不够的情况了吧?想象一下,你采用的是只有 256KB 闪存的 TrueTouch 感应控制器。没错,只有 256KB。而且由于固件占用了一部分, 因而你不能完全采用这点存储。算下来,你能采用的也就是约 100KB。回头再看看你的上一个模型的大小。可能比这个大多了。

有意思吧?他们来继续看。

当听到“PDP电子设备”时你会想起甚么?记住脑海中出现的第一印象。

1. PDP电子设备可以是任何电动机械,甚至是微波炉和洗衣机

没错,你答对了!

现如今,几乎所有的电气电子设备都是PDP的。这些电子设备内部可能拥有一个或多个控制器来负责每个功能:触摸感应、发动机状态监控等。

2. Arduino 和树莓派

恭喜你,再次答对了!

二者是 DIY 项目中最受欢迎和采用最广泛的工具包之一。它们也是PDP电子设备。

3. Jetson Nano 及类似的产品

再次回答正确。

这是一种特殊的开发套件,简称迷你计算机,专门为运行机器学习模型而开发。它十分强悍,而且十分酷。

但似乎有些不对。

我有许多朋友都在做一些很棒的硬件业余项目。通常他们会采用 Arduino 或 STM32。

我认识几个 AI 工程师对 Jetson Nano 和类似电子设备超有兴趣。他们认为这些电子设备是PDP AI 的未来。

那么,接下来请考虑这样一个问题:“这些电子设备有多少用在了生产级别的产品中?”

答案:微乎其微

想一想你家中有多少电气电子设备,然后再想想汽车中包含的大量控制器,和工作上用到的安保控制系统,等等。

每个电子设备都有一个控制器。通常,这些控制器都是微型,且超级便宜。它们根本无法企及 Jetson 或树莓派的资源和功能。

假设你有一个微控制器。它的主要任务是处置手指触摸屏幕。它拥有 ARM Cortex-M0 处置器,256KB 缓存(其中只有 80–120KG 可用)。这是一个实时控制系统,因而你只需很少的时间来推测模型,比如 100 微秒。你的目标是改善算法或替换算法。

祝你好运,欢迎来到“PDP AI”的当今世界。

重点:真正的PDP当今世界,由资源极其有限的 1-2 美元芯片组成。而生产级别的产品采用的就是这种芯片。

为什么机器学习在嵌入式系统中会失败?

纯基础设施

我一直在从事上述项目,进展良好,我开发了一个适合该微控制器的小型神经网络。

接下来,我须要将模型从我的电脑转移到电子设备上!

1. 量化

该处置器无法执行浮点数演算。即使可以,他们也不会采用,因为它的操作十分复杂且须要大量时间。

因而,我对模型的权重展开量化,即将连续范围内的值转换为有限范围内的离散值。

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

所以,我不得不亲自动手。

2. 推理代码生成

你想在这个控制器上运行模型,对吧?那么你就须要采用 C 代码展开模型推测。

告诉你一个不幸的消息,这一步你也要手动完成。为什么?因为 PyTorch 没有推测代码生成的功能。相比之下,TFLite 虽然有这个功能,但功能相当有限,并且不支持常见的激活函数。

所以,我不得不再次亲自动手。

在工作中,我遇到过许多这样的情况。我并不是想抨击 PyTorch 和 TensorflowLite,而是在“求救”。

重点:机器学习社区还有一个重大的问题:没有“PDP AI”的专业工具。

为什么机器学习在嵌入式系统中会失败?

黑暗中的光明?

我看到大型半导体公司对 AI 产生了极大的兴趣,他们在积极地做十分有价值和重要的事情。

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

有些编译器能够产生高效的推理代码,而且这些推理代码能够根据你的硬件展开优化。

还有许多其他很棒的东西。

英文:Machine Learning Fails When It Comes to Embedded System. Here’s Why

链接:https://towardsdatascience.com/machine-learning-fails-when-it-comes-to-embedded-system-9ce6def9ba75

译者:Andrew Zhuravchak,研发控制系统工程师。

翻译者:弯月

【END】

推荐阅读 黑莓手机将停售;三大运营商:疫情防控期间用户欠费不停机;Chrome 测试移除搜索结果页网址 | 极客头条☞Web 爬虫现已合法?科技驰援背后:技术没有假期!☞假期延长,抢票软件到底还行不?火神山医院完工,2月3日收治病人!“云监工”请放心!☞阿里腾讯华为在行动!程序员远程办公究竟用哪个视频会议好?疫情肆虐下,程序员们都在哪里?延迟上班别发愁,远程办公抗疫情!为什么机器学习在嵌入式系统中会失败?你点的每一个在看,我认真当成了喜欢

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务