掌握嵌入式人工智能:根据您的设备进行优化

发布时间:2021-03-02  

增加诸如人脸识别这样基于人工智能的界面来进行机器的访问授权——这乍一看似乎是一个巨大的飞跃,但它并不像您想象得那么困难。有大量的网络平台可用,有很多训练选项,甚至还有开源应用程序,比如前面提到的人脸识别的例子。您可以用能在您的个人电脑上运行的原型程序来快速地进行测试。

(图片来源:CEVA

增加诸如人脸识别这样基于人工智能的界面来进行机器的访问授权——这乍一看似乎是一个巨大的飞跃,但它并不像您想象得那么困难。有大量的网络平台可用,有很多训练选项,甚至还有开源应用程序,比如前面提到的人脸识别的例子。您可以用能在您的个人电脑上运行的原型程序来快速地进行测试。

(图片来源:CEVA

广告

限制因素

在您的嵌入式应用程序中放入一个经过训练的网络似乎是另一个巨大的困难。个人电脑(或云)训练的网络不会在存储容量或功耗方面优化太多。它们可能使用浮点或双字来进行网络计算,并且在处理图像上的滑动窗口时,它们将大幅依赖于片外存储器访问。这对高性能个人电脑上运行的原型来说不成问题,但您需要在终端应用程序中省着点用,以确保不影响性能。

优化要领

优化中的一个关键步骤叫做量化。将权重从浮点切换到定点,并减小定点的大小,例如从32位浮点减到8位整数,不仅影响权重的大小,而且影响中间计算值的大小。仅此一项就可以显著减少内存占用,并且在大多数情况下对识别质量的影响很小。

第二项操作是利用权重中的稀疏性,同时尽可能地减小对精确度的影响。这种做法将利用那些接近于零的权重,并将它们舍入到零,同时密切跟踪这对精确度的影响。权重用于乘以部分和,如果其中有因数为零,就将变成无用功,因此也就没有必要执行该操作了。

在实际的实现过程中,图像被增量处理,因此当计算窗口在图像上移动时,必须更新权重。这会带来大量的更新以及大量的数据流量。通过将大部分权重值强制设为零,就可以压缩权重数组,从而使数组的全部或大部分存储在片内SRAM中,以便按需解压缩。因此,最大限度地减少了对主存的需求,从而提高了性能并降低了功耗。在加载权重时,它还附带地减少了片内通信量。更少的流量占用则意味着更高的吞吐量。

此外还要考虑一个因素。像大多数复杂的应用一样,神经网络依赖于精密的数据库。您需要使用专为微控制器环境设计的数据库,和您所选择的平台的编译器。选择TensorFlow Lite等开源库便是一个不错的着手点,但是为了充分利用微控制器,还需要专门的定制解决方案。

当然,想要弄清自己必须要干什么并不容易。而您现在要做的,就是找到平台来简化这些操作并提供经过硬件优化的数据库。

我如何使这个流程变得简单易用?

您需要的是一个可以在特定平台(例如TensorFlow)上承载训练过的网络,并且将该网络直接编译到您的嵌入式解决方案中的流程。除了加入一些基本要求之外,无需额外干预。当然,您也希望能够进一步手动优化该选项,可以是在不同的平面上设置不同的量化级别,也可以是在权重阈值与片内存储器容量方面多加尝试。此外,您还希望根据硬件优化数据库,以及根据数据库优化硬件。

欢迎联系CEVA,跟我们畅谈这些话题。我们有一个成熟的人工智能平台- ,它提供了一个用于量化和运行时任务生成的离线处理器工具集,以及为CEVA DSP和客户用户硬件加速器量身定制的运行时库。CEVA的解决方案支持所有主流的人工智能模型格式,包括tensorflow lite、ONNX、Caffe等。

限制因素

在您的嵌入式应用程序中放入一个经过训练的网络似乎是另一个巨大的困难。个人电脑(或云)训练的网络不会在存储容量或功耗方面优化太多。它们可能使用浮点或双字来进行网络计算,并且在处理图像上的滑动窗口时,它们将大幅依赖于片外存储器访问。这对高性能个人电脑上运行的原型来说不成问题,但您需要在终端应用程序中省着点用,以确保不影响性能。

优化要领

优化中的一个关键步骤叫做量化。将权重从浮点切换到定点,并减小定点的大小,例如从32位浮点减到8位整数,不仅影响权重的大小,而且影响中间计算值的大小。仅此一项就可以显著减少内存占用,并且在大多数情况下对识别质量的影响很小。

第二项操作是利用权重中的稀疏性,同时尽可能地减小对精确度的影响。这种做法将利用那些接近于零的权重,并将它们舍入到零,同时密切跟踪这对精确度的影响。权重用于乘以部分和,如果其中有因数为零,就将变成无用功,因此也就没有必要执行该操作了。

在实际的实现过程中,图像被增量处理,因此当计算窗口在图像上移动时,必须更新权重。这会带来大量的更新以及大量的数据流量。通过将大部分权重值强制设为零,就可以压缩权重数组,从而使数组的全部或大部分存储在片内SRAM中,以便按需解压缩。因此,最大限度地减少了对主存的需求,从而提高了性能并降低了功耗。在加载权重时,它还附带地减少了片内通信量。更少的流量占用则意味着更高的吞吐量。

此外还要考虑一个因素。像大多数复杂的应用一样,神经网络依赖于精密的数据库。您需要使用专为微控制器环境设计的数据库,和您所选择的平台的编译器。选择TensorFlow Lite等开源库便是一个不错的着手点,但是为了充分利用微控制器,还需要专门的定制解决方案。

当然,想要弄清自己必须要干什么并不容易。而您现在要做的,就是找到平台来简化这些操作并提供经过硬件优化的数据库。

我如何使这个流程变得简单易用?

您需要的是一个可以在特定平台(例如TensorFlow)上承载训练过的网络,并且将该网络直接编译到您的嵌入式解决方案中的流程。除了加入一些基本要求之外,无需额外干预。当然,您也希望能够进一步手动优化该选项,可以是在不同的平面上设置不同的量化级别,也可以是在权重阈值与片内存储器容量方面多加尝试。此外,您还希望根据硬件优化数据库,以及根据数据库优化硬件。

欢迎联系CEVA,跟我们畅谈这些话题。我们有一个成熟的人工智能平台- ,它提供了一个用于量化和运行时任务生成的离线处理器工具集,以及为CEVA DSP和客户用户硬件加速器量身定制的运行时库。CEVA的解决方案支持所有主流的人工智能模型格式,包括tensorflow lite、ONNX、Caffe等。

文章来源于:电子工程专辑    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>