【技术实现步骤摘要】
深度神经网络剪枝方法、装置、终端及存储介质
本专利技术涉及模型剪枝
,尤其涉及一种深度神经网络剪枝方法、装置、终端及存储介质。
技术介绍
随着人工智能技术的发展,深度神经网络的普及,对设备的算力需求激增。例如,越来越多的机器人等边缘端设备会挂载或集成微型图形计算单元GPU,通常,这类边缘端微型GPU算力与带宽有限,在一些对计算实时性要求较高的场景,GPU无法及时完成深度神经网络的计算,因此,需要对深度神经网络进行优化。神经网络剪枝,是人工智能领域中一种常见的技术,其中通道剪枝技术(channelprune)应用最广,该技术对深度神经网络中一些特定层施加统一的约束条件,可以达到对网络“瘦身”目的。然而,在深度神经网络中,不同位置的卷积层,所需计算量和数据访存量也不同,统一处理并不能高效地对网络“瘦身”,尤其在边缘端资源有限的GPU设备上,一般的通道剪枝技术修剪的深度神经网络往往与GPU不适配,导致深度神经网络计算消耗的时间下降不明显。鉴于此,实有必要提供一种深度神经网络剪枝方法、装置、终端及存储介 ...
【技术保护点】
1.一种深度神经网络剪枝方法,应用于边缘端GPU计算,其特征在于,包括以下步骤:/n以堆叠多个卷积块的方式构建全卷积深度神经网络模型;其中,每个卷积块均包括卷积层、批归一化层及激活层;/n计算每个卷积块的计算强度;/n设计损失函数,对所述深度神经网络进行稀疏化训练,获得网络模型参数;其中,所述损失函数定义为:Loss=Loss_ce+ΣWeight[i]*||gamma[i]||,其中,Weight[i]=alpha*sqrt(Intensity[i]/Intensity_base),Weight[i]为第i个卷积块的惩罚系数(i=1,2,3,4,…,N,N为卷积块的数量) ...
【技术特征摘要】
1.一种深度神经网络剪枝方法,应用于边缘端GPU计算,其特征在于,包括以下步骤:
以堆叠多个卷积块的方式构建全卷积深度神经网络模型;其中,每个卷积块均包括卷积层、批归一化层及激活层;
计算每个卷积块的计算强度;
设计损失函数,对所述深度神经网络进行稀疏化训练,获得网络模型参数;其中,所述损失函数定义为:Loss=Loss_ce+ΣWeight[i]*||gamma[i]||,其中,Weight[i]=alpha*sqrt(Intensity[i]/Intensity_base),Weight[i]为第i个卷积块的惩罚系数(i=1,2,3,4,…,N,N为卷积块的数量),Alpha为惩罚系数常量,Intensity[i]为第i个卷积块的计算强度,Intensity_base为最后一层卷积块的计算强度,Loss_ce为交叉熵损失函数,gamma[i]为第i个卷积块的gamma值;
提取出所述每个卷积块的的gamma值,根据下列公式进行剪枝操作:Mask[i]=||gamma[i]||>0.0001;其中,Mask=1表示保留通道;Mask=0表示删除通道;
根据Mask的值重新整合所述深度神经网络,得到新的参数结构,并应用到所述边缘端GPU计算。
2.如权利要求1所述的深度神经网络剪枝方法,其特征在于,所述以堆叠多个卷积块的方式搭建全卷积深度神经网络步骤中包括:
设置训练数据集;
采用预设的属性参数配置卷积层;其中,所述属性参数包括卷积窗口、卷积跨度、输入通道数及输出通道数;
将所述卷积层、所述批归一化层及所述激活层组合成卷积块;
将多个所述卷积块堆叠,构建全卷积的深度神经网络模型。
3.如权利要求1所述的深度神经网络剪枝方法,其特征在于,所述计算每个卷积块的计算强度步骤中包括:
根据计算公式计算卷积层的计算强度,获得对应卷积块的计算强度;计算公式为:I=Flops/Mems=H*W*K^2*Cin/(4*(H*W+K^2*Cin));其中,Flops为卷积层计算量,通过公式Flops=H*W*K^2*Cin*Cout计算可得;Mems为卷积层访存量,通过公式Mems=4*(H*W*Cout+K^2*Cin*Cout)计算可得;其中,H、W为卷积层输出的特征图尺寸,K为卷积层卷积窗口大小,Cin为卷积层输入通道数目,Cout为卷积层输出通道数目。
4.如权利要求1所述的深度神经网络剪枝方法,其特征在于,所述设计损失函数,对所述深度神经网络进行稀疏化训练,获得网络模型参数步骤中包括:
获取稀疏参数组;
定义交叉熵损失函数;其中,首先定义交叉熵CE(y1,y2)=y1*log(y2)+(1-y1)*log(1-y2),然后将Y_true与Y_pred分别代入y1与y2,即得所述交叉熵损失函数Loss_ce=CE(Y_true,Y_pred);其中,Y_true为真实的数据类别标签,Y_pred为深度神经网络预测的类别;
利用L1损失函数公式,构建最终的损失函数;其中,首先定义L1损失函数Loss_L1=weight*||gamma||,Weight为gamma参数惩罚系数;则最终的损失函数定义为Loss=Loss_ce+Loss_L1;
根据最终的损失函数训练所述深度神经网...
【专利技术属性】
技术研发人员:秦豪,赵明,
申请(专利权)人:上海有个机器人有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。