本发明涉及神经网络模型压缩技术领域,特别涉及一种基于国产嵌入式系统的神经网络实现方法。
背景技术:
传统卷积神经网络的网络参数较多,受制于卷积神经网络模型巨大的存储占用和计算成本,资源有限的嵌入式系统难以直接运行这样高需求的卷积神经网络。目前神经网络的应用大部分都是“本地 云端”的解决方案,这样的方案无疑是耗时的,并且设备需要时刻联网,对网络速率、网络带宽也有一定的要求。
技术实现要素:
本发明要解决的技术问题在于,针对上述现有技术中存在的缺陷,提供一种基于国产嵌入式系统的神经网络实现方法,通过结合神经元权值和梯度的方法进行参数剪枝,并对剪枝后的网络进行权值量化,得到可移植到国产嵌入式系统的神经网络模型,神经网络经过压缩后,其体积、计算需求和功耗都大大降低,并且针对国产嵌入式系统支持的模型类型,进行模型的转换,经过转换后的网络模型可以在国产嵌入式系统上流畅的运行,不需要联网。
为了解决上述技术问题,本发明的技术方案是:
一种基于国产嵌入式系统的神经网络实现方法,包括以下步骤:步骤s1、获取待压缩网络模型:针对特定的应用场景,快速搭建科学有效的数据集;利用迁移学习,在短周期内得到定制的待压缩网络模型;
步骤s2、参数剪枝:对网络中权值为零的、影响因子很小的神经元连接或者梯度小于自适应阈值的神经元连接进行评估和裁剪,消除参数的冗余性以及减少卷积神经网络的复杂度;通过多次迭代剪枝和重训练,保证网络性能不受太大影响;
步骤s3、权值量化:用比特数来表示全精度权值,将浮点型运算转为整型运算,加速卷积神经网络的推理过程;
步骤s4、模型转换:将国产嵌入式系统不支持的神经网络模型类型,转换成能在国产嵌入式系统中加载运行的模型类型;
步骤s5、网络部署:将转换得到的轻量级卷积神经网络模型部署到具有异构处理器的国产嵌入式系统中,完成实时处理任务。
优选地,在所述步骤s1中:所述获取待压缩网络模型还包括:采集相应的数据并通过旋转、翻转、放缩、平移、仿射变换和加噪方式,完成数据增强工作。
优选地,在所述步骤s2中,所述参数剪枝方法将权值和梯度结合起来,共同作为剪枝的依据。
优选地,在所述步骤s2中,所述参数剪枝包括:一方面利用惩罚因子学习权值的重要性,另一方面利用自适应筛选算法找出评判梯度重要性的阈值,通过设定贡献值、表征权值和梯度对剪枝的影响力,进而评估该神经元能否进行裁剪。
优选地,在所述步骤s3中,所述权值量化包括:针对国产嵌入式系统的具体资源配置,采用不同的量化强度,减少卷积神经网络的体积和存储占用。
采用上述技术方案,本发明提供的一种基于国产嵌入式系统的神经网络实现方法,该基于国产嵌入式系统的神经网络实现方法具有以下有益效果:
第一,针对国产嵌入式系统进行的网络参数剪枝和权值量化,将原本存储占用巨大、计算需求超高的传统神经网络,压缩成小型轻量的网络模型;
第二,解决在国产嵌入式系统中存储资源少、内存访问带宽小以及计算能力相对不足的限制,同时降低了神经网络模型的功耗和体积,在稳定性上更有保障;
第三,基于国产嵌入式系统的神经网络实现方法,对多种传统卷积神经网络均有效,在更换网络模型和应用场景时,可直接运用本方案进行网络压缩和部署,避免繁杂的二次开发。
附图说明
图1为本发明一种基于国产嵌入式系统的神经网络实现方法的流程图;
图2为本发明一种基于国产嵌入式系统的神经网络实现方法第一实施例的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,在本发明一种基于国产嵌入式系统的神经网络实现方法的流程图中,该基于国产嵌入式系统的神经网络实现方法包括以下步骤:步骤s1、获取待压缩网络模型:针对特定的应用场景,采集相应的数据,并通过旋转、翻转、放缩、平移、仿射变换和加噪等方式,完成数据增强工作,快速搭建科学有效的数据集;利用迁移学习,可在短周期内得到定制的待压缩网络模型。步骤s2、参数剪枝:对网络中权值为零的、影响因子很小的神经元连接或者梯度小于自适应阈值的神经元连接进行评估和裁剪,消除参数的冗余性以及减少卷积神经网络的复杂度。通过多次迭代剪枝和重训练,保证网络性能不受太大影响。该剪枝方法将权值和梯度结合起来,共同作为剪枝的依据。一方面利用惩罚因子学习权值的重要性,一方面利用自适应筛选算法找出评判梯度重要性的阈值,通过设定贡献值,表征权值和梯度对剪枝的影响力,进而评估该神经元能否进行裁剪。步骤s3、权值量化:用较少的比特数来表示全精度权值,将浮点型运算转为整型运算,加速卷积神经网络的推理过程。针对国产嵌入式系统的具体资源配置,采用不同的量化强度,减少卷积神经网络的体积和存储占用。步骤s4、模型转换:将国产嵌入式系统不支持的神经网络模型类型,转换成能在国产嵌入式系统中加载运行的模型类型。步骤s5、网络部署:将转换得到的轻量级卷积神经网络模型部署到具有异构处理器的国产嵌入式系统中,完成实时处理任务。
具体地,图2为本发明一种基于国产嵌入式系统的神经网络实现方法第一实施例的流程图,结合图1和图2,通过结合神经元权值和梯度的方法进行参数剪枝,并对剪枝后的网络进行权值量化,得到可移植到国产嵌入式系统的神经网络模型。神经网络经过压缩后,其体积、计算需求和功耗都大大降低,并且针对国产嵌入式系统支持的模型类型,进行模型的转换,经过转换后的网络模型可以在国产嵌入式系统上流畅的运行,不需要联网。可以理解的,本发明以基于国产嵌入式系统的神经网络实现方法为核心,完成了对卷积神经网络的参数剪枝和权值量化,将原本高存储、高计算量和高功耗的神经网络模型压缩成可以在计算资源有限的国产嵌入式系统中稳定流畅运行的轻量级压缩网络。这种网络压缩方法兼容多种传统卷积神经网络,并可针对不同的应用场景,针对性的采集数据,无需方法上的二次开发。经过模型转换后可直接部署在国产嵌入式系统中,并且在仅降低一点精度的情况下,大大加速神经网络模型在国产嵌入式系统中的推断和运行,实现神经网络在国产嵌入式系统中的实时处理任务。
可以理解的,基于国产嵌入式系统的神经网络实现方法对比于传统神经网络实现方法,有以下优势:第一,针对国产嵌入式系统进行的网络参数剪枝和权值量化,将原本存储占用巨大、计算需求超高的传统神经网络,压缩成小型轻量的网络模型。第二,解决在国产嵌入式系统中存储资源少、内存访问带宽小以及计算能力相对不足的限制。同时降低了神经网络模型的功耗和体积,在稳定性上更有保障。第三,本发明对多种传统卷积神经网络均有效,在更换网络模型和应用场景时,可直接运用本方案进行网络压缩和部署,避免繁杂的二次开发。
可以理解的,本发明设计合理,构造独特,1、一套科学有效的数据集构建方法,模型更新迭代周期短;2、针对国产嵌入式系统,综合权值、梯度这两种因素进行参数剪枝;3、对传统卷积神经网络进行了参数剪枝和权值量化操作,减少网络储存占用和计算量需求;4、网络搭建、算法实现均针对国产嵌入式系统优化。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。
1.一种基于国产嵌入式系统的神经网络实现方法,其特征在于:包括以下步骤:
步骤s1、获取待压缩网络模型:针对特定的应用场景,快速搭建科学有效的数据集;利用迁移学习,在短周期内得到定制的待压缩网络模型;
步骤s2、参数剪枝:对网络中权值为零的、影响因子很小的神经元连接或者梯度小于自适应阈值的神经元连接进行评估和裁剪,消除参数的冗余性以及减少卷积神经网络的复杂度;通过多次迭代剪枝和重训练,保证网络性能不受太大影响;
步骤s3、权值量化:用比特数来表示全精度权值,将浮点型运算转为整型运算,加速卷积神经网络的推理过程;
步骤s4、模型转换:将国产嵌入式系统不支持的神经网络模型类型,转换成能在国产嵌入式系统中加载运行的模型类型;
步骤s5、网络部署:将转换得到的轻量级卷积神经网络模型部署到具有异构处理器的国产嵌入式系统中,完成实时处理任务。
2.根据权利要求1所述的基于国产嵌入式系统的神经网络实现方法,其特征在于:在所述步骤s1中:所述获取待压缩网络模型还包括:采集相应的数据并通过旋转、翻转、放缩、平移、仿射变换和加噪方式,完成数据增强工作。
3.根据权利要求1所述的基于国产嵌入式系统的神经网络实现方法,其特征在于:在所述步骤s2中,所述参数剪枝方法将权值和梯度结合起来,共同作为剪枝的依据。
4.根据权利要求1所述的基于国产嵌入式系统的神经网络实现方法,其特征在于:在所述步骤s2中,所述参数剪枝包括:一方面利用惩罚因子学习权值的重要性,另一方面利用自适应筛选算法找出评判梯度重要性的阈值,通过设定贡献值、表征权值和梯度对剪枝的影响力,进而评估该神经元能否进行裁剪。
5.根据权利要求1所述的基于国产嵌入式系统的神经网络实现方法,其特征在于:在所述步骤s3中,所述权值量化包括:针对国产嵌入式系统的具体资源配置,采用不同的量化强度,减少卷积神经网络的体积和存储占用。
技术总结