24小(xiǎo)时联系電(diàn)话:18217114652、13661815404
中文(wén)
- 您当前的位置:
- 首页>
- 電(diàn)子资讯>
- 技术专题>
- 针对嵌入式应用(yòng)优化AI
技术专题
针对嵌入式应用(yòng)优化AI
基于AI的界面的需求-并且添加像face-id这样的基于AI的界面来授权对机器的访问乍看起来似乎是一个巨大的飞跃,但这并没有(yǒu)就像您想的那样困难。有(yǒu)大量可(kě)用(yòng)的AI平台,大量的培训选项甚至是开源应用(yòng)程序,例如face-id example。使用(yòng)可(kě)以在PC上运行的原型,您可(kě)以快速启动并进行测试。
约束条件
将训练有(yǒu)素的网络迁移到嵌入式应用(yòng)程序似乎是另一个巨大的障碍。受PC或云训练的网络在内存使用(yòng)或功耗方面没有(yǒu)进行太多(duō)优化。他(tā)们可(kě)能(néng)会使用(yòng)浮点数或双字进行网络计算,并且在处理(lǐ)图像上的滑动窗口时会严重依赖片外内存访问。对于在插入墙壁電(diàn)源的高性能(néng)PC上运行的原型而言,这不是要担心的问题,但是您需要在最终应用(yòng)程序中更加节俭,并且不影响性能(néng)。
优化的要点
优化的一个关键步骤称為(wèi)量化。将权重从浮点切换到固定点并减小(xiǎo)固定点大小(xiǎo)(例如,从32位浮点更改為(wèi)8位整数)不仅会影响权重的大小(xiǎo),还会影响中间计算值。仅此一项就可(kě)以显着减少内存占用(yòng),在大多(duō)数情况下,对识别质量的影响很(hěn)小(xiǎo)。
第二种操作是在最小(xiǎo)的精度影响下利用(yòng)权重的稀疏性。这种做法将利用(yòng)权重接近零的优势,并将其舍入為(wèi)零,同时密切关注准确性的影响。权重用(yòng)于乘以部分(fēn)和,当因素之一為(wèi)零时,这是无意义的练习,因此无需执行该运算。
在实际的实现中,图像是增量处理(lǐ)的,因此当计算窗口在图像上移动时,权重必须更新(xīn)。那会带来很(hěn)多(duō)更新(xīn)和大量流量。通过将大部分(fēn)权重强制為(wèi)零,可(kě)以压缩权重数组,从而可(kě)以将所有(yǒu)或大部分(fēn)数组存储在片上SRAM中,以根据需要进行解压缩。从而最大程度地减少了访问主存储器的需求,从而提高了性能(néng)并降低了功耗。加载砝码时,它还附带减少了片上流量。较少的流量争用(yòng)意味着较高的吞吐量。
应该考虑另外一个因素。像大多(duō)数复杂的应用(yòng)程序一样,神经网络依赖于复杂的库。您需要使用(yòng)一个设计用(yòng)于微控制器环境的库,并将其编译到您选择的平台。一个很(hěn)好的起点可(kě)能(néng)是一个开源库,例如TensorFlow Lite,但是為(wèi)了充分(fēn)利用(yòng)微控制器,将需要专用(yòng)的定制解决方案。
当然,知道您必须做什么并不容易。现在,您需要找到一个平台,以简化这些操作并提供硬件优化的库。
如何使它易于使用(yòng)?
您需要的是一个流程,您可(kě)以在特定平台(例如TensorFlow)上使用(yòng)经过培训的网络,并将其直接编译到嵌入式解决方案中,而无需输入一些基本要求。当然,您还希望该选项能(néng)够进一步手动优化,也许在不同平面中设置不同的量化级别。也许尝试权重阈值与片上存储器大小(xiǎo)的比较。并且您想要针对硬件进行优化的库以及针对库进行优化的硬件。
经过验证的AI平台(如CEVA的CDNN)旨在提供这种类型的流程。CDNN提供了用(yòng)于量化和运行时任務(wù)生成的离線(xiàn)处理(lǐ)器工具集,以及為(wèi)CEVA DSP和客户用(yòng)户的硬件加速器量身定制的运行时库。CEVA的解决方案支持所有(yǒu)流行的AI模型格式,包括TensorFlow Lite,ONNX,Caffe等。