一种卷积神经网络轻量化的改进方法技术

技术编号:36919247 阅读:11 留言:0更新日期:2023-03-22 18:43
本申请提供一种卷积神经网络轻量化的改进方法,所述方法中组卷积group convolution是由一组普通卷积normal convolution组成,其中的每个普通卷积normal convolution的输入通道input channel和输出通道output channel数相同,这个值定义为组通道group channel,即设置一个组通道group channel,将模型中卷积核不为1的普通卷积替换为确定group channel数值的组卷积group convolution和逐点卷积pointwise convolution。本申请从指令级优化的角度出发,在算法上减少参数和计算量,保证模型的精度,且对嵌入式设备的指令级优化很友好。好。好。

【技术实现步骤摘要】
一种卷积神经网络轻量化的改进方法


[0001]本专利技术涉及卷积神经网络
,特别涉及一种卷积神经网络轻量化的改进方法。

技术介绍

[0002]随着计算机技术的发展,在卷积神经网络技术中,由于嵌入式设备内存和功耗的限制,神经网络模型在嵌入式设备运算仍是一个巨大的挑战。手工设计轻量化模型主要思想在于针对卷积,设计更高效的计算方式,减少参数,并不损失网络性能,基于标准卷积的变体,有group convolution,depthwise convolution,pointwise convolution等。轻量化的卷积神经网络有mobilenet,shufflenet,squeezenet等。
[0003]然而,现有的方法存在缺陷,如下:
[0004]现有的轻量化工作是算法的优化,并未考虑指令级优化,例如shufflenet中的channel shuffle,就会占用大量内存和指针跳转,实际在嵌入式设备运行神经网络,指令级优化工作,影响甚大。
[0005]另外,现有技术中的常用术语如下:
[0006]1、卷积神经网络:包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。
[0007]2、convolution:普通卷积。
[0008]3、group convolution:组卷积,将channel分成若干个组,每个组分别作普通卷积。
[0009]4、pointwise convolution:逐点卷积,卷积核为1x1的普通卷积。
专利技术内
[0010]为了解决上述现有技术中的问题,本申请的目的在于:通过设置一个确定的group channel值,将模型中卷积核不为1的普通卷积转化为channel确定的group convolution和pointwise convolution,从而对卷积神经网络轻量化进行改进。
[0011]具体地,本申请提供一种卷积神经网络轻量化的改进方法,所述方法中组卷积group convolution是由一组普通卷积normal convolution组成,其中每个普通卷积的输入通道input channel和输出通道output channel的通道数值相等,定义为组通道,即设置一个确定的组通道数值,将模型中卷积核不为1的普通卷积替换为通道数值确定的组卷积group convolution和逐点卷积pointwise convolution,其中,所述组卷积group convolution为一组通道数值相等也即输入通道和输出通道相等的普通卷积的集合,用group channel来表示输入/输出通道的数值,所述组卷积中含有普通卷积的个数为group num,group channel和group num的乘积等于被替换普通卷积的输入通道input channel的值,这样普通卷积的输入特征图input feature map也能够作为组卷积的输入,组卷积的输入通道input channel数值和输出通道output channel数值相等,都等于被替换普通卷积
的输入通道input channel数值;所述逐点卷积pointwise convolution是卷积核为1x1的普通卷积。
[0012]所述方法包括以下步骤:
[0013]S1,调整:卷积神经网络中除去输入层和输出层之外,中间层根据需求选择合适的group channel值,为使其符合替换的条件,将卷积核不为1*1的普通卷积层的input channel调整为group channel的整数倍;
[0014]即根据需求选择和运行平台的计算能力以及内存空间相关的合适group channel,设定每一层卷积的channel数,使每一层的channel数都为group channel的整数倍;
[0015]S2,替换:除去神经网络的输入层和输出层,对于卷积核大小不为1的普通卷积,使用组卷积group convolution和逐点卷积pointwise convolution进行替换,所述方法中,组成组卷积的普通卷积的输入通道和输出通道数相等,本申请中group convolution是由一组channel数完全相同的普通卷积组成,单个普通卷积是指这些相同的普通的卷积的其中一个,具有普遍的代表性;
[0016]S3,结果:最终的结果就是网络中除输入层和输出层外的部分计算被简化为输入通道input channel和输出通道output channel为确定值的普通卷积组成的组卷积和卷积核为1x1的普通卷积,该确定值就是步骤S1中选择的合适的group channel值。
[0017]所述S2中所述替换步骤,包括如下:
[0018]S2.1,假设普通卷积normal convolution的输入通道input channel的通道数为in_num,输出通道output channel的通道数为out_num,固定的组通道group channel的通道数为g_channel,组的个数group num为g_nums,满足in_num=g_channel*g_nums;
[0019]S2.2,此时组卷积group convolution的输出通道数仍为in_num,因为替换后,组卷积先计算,逐点卷积后计算,因此逐点卷积的输出通道是out_num,设置逐点卷积pointwise convolution的输入通道input channel的通道数为in_num,输出通道output channel的通道数为out_num,这样组卷积和逐点卷积的组合保持了和原普通卷积相同的input channel和output channel,完成替换;
[0020]其中,组卷积的卷积核大小等于被替换普通卷积的卷积核大小;group num为输入input feature map划分的group个数,input feature map的channel数,即为被替换普通卷积的input channel数,也为组卷积的input channel数,这个数除以group channel数,即为分组的个数group num。
[0021]所述方法不需要固定组通道数,而是用户根据网络选择合适的数值作为本次替换过程中的确定值,可以是8、或者16、或者32,这里的确定值是指用户的替换的过程中这个值确定,不会出现例如替换第一个普通卷积使用32,替换第二个普通卷积使用16的情形,所述定义为组通道group channel的值,能够被普通卷积的输入通道数值整除,如若不能,则需要修改原网络模型,使其满足被替换掉的组卷积的input channel的值能够被组通道数值整除;在替换过程中,不会改变卷积核大小,即组卷积和被替换卷积的卷积核大小相等,替换过程中pointwise convolution的卷积核大小为1是固定的,group convolution的卷积核大小等于被替换普通卷积的卷积核大小,这样不会改变网络的感受野,在卷积神经网络中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积神经网络轻量化的改进方法,其特征在于,所述方法中组卷积group convolution是由一组普通卷积normal convolution组成,其中每个普通卷积的输入通道input channel和输出通道output channel的通道数值相等,定义为组通道,即设置一个确定的组通道数值,将模型中卷积核不为1的普通卷积替换为通道数值确定的组卷积group convolution和逐点卷积pointwise convolution,其中,所述组卷积group convolution为一组通道数值相等也即输入通道和输出通道相等的普通卷积的集合,用group channel来表示输入/输出通道的数值,所述组卷积中含有普通卷积的个数为group num,group channel和group num的乘积等于被替换普通卷积的输入通道input channel的值,这样普通卷积的输入特征图input feature map也能够作为组卷积的输入,组卷积的输入通道input channel数值和输出通道output channel数值相等,都等于被替换普通卷积的输入通道input channel数值;所述逐点卷积pointwise convolution是卷积核为1x1的普通卷积。2.根据权利要求1所述的一种卷积神经网络轻量化的改进方法,其特征在于,所述方法包括以下步骤:S1,调整:卷积神经网络中除去输入层和输出层之外,中间层根据需求选择合适的group channel值,为使其符合替换的条件,将卷积核不为1*1的普通卷积层的input channel调整为group channel的整数倍;即根据需求选择和运行平台的计算能力以及内存空间相关的合适group channel,设定每一层卷积的channel数,使每一层的channel数都为group channel的整数倍;S2,替换:除去神经网络的输入层和输出层,对于卷积核大小不为1的普通卷积,使用组卷积group convolution和逐点卷积pointwise convolution进行替换,所述方法中,组成组卷积的普通卷积的输入通道和输出通道数相等;S3,结果:最终的结果就是网络中除输入层和输出层外的部分计算被简化为输入通道input channel和输出通道output channel为确定值的普通卷积组成的组卷积和卷积核为1x1的普通卷积,该确定值就是步骤S1中选择的合适的group channel值。3.根据权利要求2所述的一种卷积神经网络轻量化的改进方法,其特征在于,所述S2中所述替换步骤,包括如下:S2.1,假设普通卷积normal convolution的输入通道input channel的通道数为in_num,输出通道output channel的通道数为out_num,固定的组通道group channel的通道数为g_channel,组的个数group num为g_nums,满足in_num=g_channel*g_nums;S2.2,此时组卷积group convolution的输出通道数仍为in_num,设置逐点卷积pointwise convolution的输入通道input channel的通道数为in_num,输出通道output channel的通道数为out_num,这样组卷积和逐点卷积的组合保持了和原普通卷积相同的input channel和output channel,完成替换;其中,组卷积的卷积核大小等于被替换普通卷积的卷积核大小;group ...

【专利技术属性】
技术研发人员:孙建峰
申请(专利权)人:北京君正集成电路股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1