本申请提供一种神经网络剪枝方法、装置、设备及存储介质,涉及神经网络领域,该方法包括:对待剪枝的神经网络模型进行预训练,获得全精度神经网络模型;对全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层;对硬件加速潜力层中的多个输出通道进行重要性排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型;对已剪枝神经网络模型进行重训练,获得目标神经网络模型。通过对全精度神经网络模型中硬件加速潜力层的输出通道进行重要性排序,根据重要性大小进行通道剪枝,将完成剪枝的模型重新进行训练以恢复精度,减小了冗余程度,确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。力。力。
【技术实现步骤摘要】
神经网络剪枝方法、装置、设备及存储介质
[0001]本申请涉及神经网络
,具体而言,涉及一种神经网络剪枝方法、装置、设备及存储介质。
技术介绍
[0002]模型剪枝也叫做结构化稀疏,通过对神经网络模型的权重和激活的进行以通道为颗粒度的舍弃,实现模型权重的减少和模型计算量的下降,从而达到模型压缩和加速的目的。为了保证模型的精度不受影响,通常模型剪枝需要结合模型训练同时进行,在模型训练的过程中,逐渐将模型的某些层的某些输出通道按照一定重要性指标进行排序,并将重要性低的通道进行剪枝,通过训练的损失函数的梯度更新来弥补剪枝对最终模型精度的影响。
[0003]目前,现有模型剪枝通常以模型计算量或者参数量的下降来衡量剪枝的程度,以此来近似实际部署中的硬件推理耗时,但由于模型计算量和硬件耗时两者之间并没有完全对应的关系,使得硬件加速不准确,模型精度低。
技术实现思路
[0004]有鉴于此,本申请实施例的目的在于提供一种神经网络剪枝方法、装置、设备及存储介质,通过预先训练一个完整的全精度神经网络模型,对该模型进行拓扑分析选择硬件可以加速的潜力层,然后对这些潜力层的输出通道的权重幅值进行通道维度的排序,在给定的稀疏率下将对应比例的输出通道进行剪枝,最后将完成剪枝的模型重新进行训练以恢复精度,在相同的稀疏率或者相同的剪枝后模型计算量下,最大程度确保了模型精度和硬件推理加速比,从而解决了上述技术问题。
[0005]第一方面,本申请实施例提供一种神经网络剪枝方法,所述方法包括:对待剪枝的神经网络模型进行预训练,获得全精度神经网络模型;对所述全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层;对所述硬件加速潜力层中的多个输出通道进行重要性排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型;对所述已剪枝神经网络模型进行重训练,获得目标神经网络模型。
[0006]在上述实现过程中,通过预先训练一个完整的全精度神经网络模型,对该模型进行拓扑分析选择硬件可以加速的潜力层,然后对这些潜力层的输出通道进行重要性排序,根据重要性大小进行通道剪枝,最后将完成剪枝的模型重新进行训练以恢复精度,减小了冗余程度,节省了计算量,最大程度确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。
[0007]可选地,所述对所述全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层,包括:基于所述全精度神经网络模型的局部拓扑结构,对所述全精度神经网络模型中卷积层和/或全连接层的输出层的类型进行判断;若判定所述输出层的类型为卷积层、激活函数层或concat层,则将当前卷积层和/或当前全连接层确定为硬件
加速潜力层;若判定所述输出层的类型为加法层或乘法层,则将当前卷积层和/或当前全连接层确定为非硬件加速潜力层。
[0008]在上述实现过程中,通过对预训练神经网络模型进行拓扑类型的分析,区分所有卷积层和/或所有全连接层中可以加速的硬件潜力层和不可以加速的非硬件潜力层,方便后续进行针对性地剪枝,提高了剪枝效率,最大程度确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。
[0009]可选地,所述对所述硬件加速潜力层中的多个输出通道进行排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型,包括:根据输出通道上权重幅值的大小,对所述硬件加速潜力层中的多个输出通道进行重要性排序,获得排序结果;根据所述排序结果,设置全局稀疏率对所述硬件加速潜力层进行通道剪枝,获得已剪枝神经网络模型。
[0010]在上述实现过程中,通过对预训练神经网络模型中的硬件加速潜力层的输出通道进行重要性排序,利用通道维度上的权重幅值对重要性大小进行排序评估,根据全局稀疏率确定“重要”的尺度,并对应进行通道剪枝,获得剪枝模型,避免了将重要程度高的通道给剪枝掉,减少了精度损失,最大程度确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。
[0011]可选地,所述排序结果中权重幅值越大的输出通道排列在越靠前位置。
[0012]在上述实现过程中,通过对预训练神经网络模型中的硬件加速潜力层的输出通道进行重要性排序,利用通道维度上的权重幅值对重要性大小进行升序或降序的排列,从而可以很快识别出重要程度高的通道,提高了剪枝效率,最大程度确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。
[0013]可选地,所述根据所述排序结果,设置全局稀疏率对所述硬件加速潜力层进行通道剪枝,获得已剪枝神经网络模型,包括:根据全局稀疏率的百分比例,将所述排序结果中对应所述百分比例的输出通道进行剪枝,获得剪枝后的剩余输出通道;将所述剪枝后的剩余输出通道映射至所述硬件加速潜力层的原始位置,获得已剪枝神经网络模型。
[0014]在上述实现过程中,通过对预训练神经网络模型中的硬件加速潜力层的输出通道进行重要性排序,利用稀疏率对这个排序结果进行取舍,将排序结果中重要程度低的通道舍弃掉,再将剩余通道映射回原位置获得已剪枝神经网络模型,提高了剪枝效率,最大程度确保了模型精度和硬件推理加速比,从而提高了模型压缩优化能力。
[0015]可选地,所述剪枝后的剩余输出通道的数量与字节长度成比例。
[0016]在上述实现过程中,对通道进行剪枝时,要求已剪枝神经网络模型剩余的输出通道大小为字节长度成的比例倍数,在给定的稀疏率下将对应比例的输出通道设成零,同时保证每层的剩余通道数依然是字节长度成的比例倍数,从而提高了硬件读写处理效率。
[0017]可选地,所述对所述已剪枝神经网络模型进行重训练,获得目标神经网络模型,包括:对所述已剪枝神经网络模型进行重训练,获得初始恢复精度模型;重训练过程中,将所述初始恢复精度模型和所述全精度神经网络模型的相对误差与预设误差指标值进行比对判断;若判定所述相对误差满足预设误差指标值,则停止重训练,将当前的初始恢复精度模型确定为目标神经网络模型。
[0018]在上述实现过程中,通过对预训练网络模型中的硬件加速潜力层的输出通道进行重要性排序,根据重要性大小进行通道剪枝,最后将完成剪枝的模型重新进行训练,根据精
度要求,对该剪枝模型进行全数据微调,减小了剪枝带来的精度损失,恢复了精度;在相同的稀疏率或者相同的剪枝后模型计算量下,最大程度确保了模型的精度和硬件推理加速比。
[0019]第二方面,本申请实施例提供了一种神经网络剪枝装置,所述装置包括:预训练模块,用于对待剪枝的神经网络模型进行预训练,获得全精度神经网络模型;拓扑分析模块,用于对所述全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层;剪枝模块,用于对所述硬件加速潜力层中的多个输出通道进行重要性排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型;重训练模块,用于对所述已剪枝神经网络模型进行重训练,获得目标神经网络模型。
[0020]第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种神经网络剪枝方法,其特征在于,所述方法包括:对待剪枝的神经网络模型进行预训练,获得全精度神经网络模型;对所述全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层;对所述硬件加速潜力层中的多个输出通道进行重要性排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型;对所述已剪枝神经网络模型进行重训练,获得目标神经网络模型。2.根据权利要求1所述的方法,其特征在于,所述对所述全精度神经网络模型中的卷积层和/或全连接层进行拓扑分析,获得硬件加速潜力层,包括:基于所述全精度神经网络模型的局部拓扑结构,对所述全精度神经网络模型中卷积层和/或全连接层的输出层的类型进行判断;若判定所述输出层的类型为卷积层、激活函数层或concat层,则将当前卷积层和/或当前全连接层确定为硬件加速潜力层;若判定所述输出层的类型为加法层或乘法层,则将当前卷积层和/或当前全连接层确定为非硬件加速潜力层。3.根据权利要求1所述的方法,其特征在于,所述对所述硬件加速潜力层中的多个输出通道进行重要性排序,并根据排序结果进行通道剪枝,获得已剪枝神经网络模型,包括:根据输出通道上权重幅值的大小,对所述硬件加速潜力层中的多个输出通道进行重要性排序,获得排序结果;根据所述排序结果,设置全局稀疏率对所述硬件加速潜力层进行通道剪枝,获得已剪枝神经网络模型。4.根据权利要求3所述的方法,其特征在于,其中,所述排序结果中权重幅值越大的输出通道排列在越靠前位置。5.根据权利要求3所述的方法,其特征在于,所述根据所述排序结果,设置全局稀疏率对所述硬件加速潜力层进行通道剪枝,获得已剪枝神经网络模型,包括:根据全局稀疏率的百分比例,...
【专利技术属性】
技术研发人员:刘建伟,
申请(专利权)人:西安爱芯元智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。