24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
针对嵌入式应用优化AI

技术专题

针对嵌入式应用优化AI


基于AI的界面的需求-并且添加像face-id这样的基于AI的界面来授权对机器的访问乍看起来似乎是一个巨大的飞跃,但这并没有就像您想的那样困难。有大量可用的AI平台,大量的培训选项甚至是开源应用程序,例如face-id example。使用可以在PC上运行的原型,您可以快速启动并进行测试。

约束条件

将训练有素的网络迁移到嵌入式应用程序似乎是另一个巨大的障碍。受PC或云训练的网络在内存使用或功耗方面没有进行太多优化。他们可能会使用浮点数或双字进行网络计算,并且在处理图像上的滑动窗口时会严重依赖片外内存访问。对于在插入墙壁电源的高性能PC上运行的原型而言,这不是要担心的问题,但是您需要在最终应用程序中更加节俭,并且不影响性能。

优化的要点

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

第二种操作是在最小的精度影响下利用权重的稀疏性。这种做法将利用权重接近零的优势,并将其舍入为零,同时密切关注准确性的影响。权重用于乘以部分和,当因素之一为零时,这是无意义的练习,因此无需执行该运算。

在实际的实现中,图像是增量处理的,因此当计算窗口在图像上移动时,权重必须更新。那会带来很多更新和大量流量。通过将大部分权重强制为零,可以压缩权重数组,从而可以将所有或大部分数组存储在片上SRAM中,以根据需要进行解压缩。从而最大程度地减少了访问主存储器的需求,从而提高了性能并降低了功耗。加载砝码时,它还附带减少了片上流量。较少的流量争用意味着较高的吞吐量。

应该考虑另外一个因素。像大多数复杂的应用程序一样,神经网络依赖于复杂的库。您需要使用一个设计用于微控制器环境的库,并将其编译到您选择的平台。一个很好的起点可能是一个开源库,例如TensorFlow Lite,但是为了充分利用微控制器,将需要专用的定制解决方案。

当然,知道您必须做什么并不容易。现在,您需要找到一个平台,以简化这些操作并提供硬件优化的库。

如何使它易于使用?

您需要的是一个流程,您可以在特定平台(例如TensorFlow)上使用经过培训的网络,并将其直接编译到嵌入式解决方案中,而无需输入一些基本要求。当然,您还希望该选项能够进一步手动优化,也许在不同平面中设置不同的量化级别。也许尝试权重阈值与片上存储器大小的比较。并且您想要针对硬件进行优化的库以及针对库进行优化的硬件。

经过验证的AI平台(如CEVACDNN)旨在提供这种类型的流程。CDNN提供了用于量化和运行时任务生成的离线处理器工具集,以及为CEVA DSP和客户用户的硬件加速器量身定制的运行时库。CEVA的解决方案支持所有流行的AI模型格式,包括TensorFlow LiteONNXCaffe等。

 

请输入搜索关键字

确定