Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

摘要:一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,包括:步骤1、向原始网络添加遮掩层约束,获取待剪枝的深度卷积神经网络模型,步骤2、网络模型在数据集上训练,根据通道梯度和权值的乘积的绝对值作为重要性标准更新通道的遮掩层约束,得到掩码和稀疏模型,步骤3、基于掩码对稀疏模型做剪枝操作,步骤4、重训练紧凑的深度卷积神经网络模型。本发明还提供了基于通道梯度剪枝的柔性深度学习网络模型压缩方法在实际物体识别APP上的应用效果,剪枝后模型对物体的识别速度大幅提升,解决了深度神经网络模型因高存储空间占用,高内存占用,高计算资源占用导致无法部署到嵌入式、智能手机等设备上的技术问题,拓展了深度神经网络的应用范围。

主权项:1.一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,具体步骤如下:步骤1:获取待剪枝的深度卷积神经网络初始模型,这一过程具体实现是在卷积层输出后添加额外的遮掩层,上一层卷积层的输出即当前卷积层的输入,输入记为zl-1,则对于当前卷积层操作记为fzl-1,初始化一个权重为1,维度与fzl-1的结果一致的遮掩层张量mmask作为遮掩层的权重,然后在对应的卷积层后添加上遮掩层,得到受遮掩层约束的输出:zl=fzl-1×mmask1掩码为1的通道的输出是原始输出,而掩码为0的通道的输出为0,该通道的输出对结果无影响并且通道权重无法被更新,当原始深度卷积神经网络模型中所有考虑剪枝的卷积层都添加完约束后,就得到了掩码数组Mmask和待剪枝的深度卷积神经网络;步骤2:训练网络模型,更新模型掩码信息,设定模型的压缩率s,既指网络剩余通道数占全部通道数的百分比,也表示剩余FLOPs占原FLOPs的百分比,在压缩率的限制下,使用训练集训练待剪枝深度卷积神经网络模型;步骤2-1:训练过程中,计算全局通道重要性指标:依据模型表现越好,损失函数越低这一先验知识,冗余的通道对于模型变化的影响是相对较小的,以损失函数值的变化幅度来体现当前通道的重要性程度,其数学表示式为: 表示第l层第i个通道的重要性指标,Lx,y,分别表示剪枝第l层第i个通道的输出前后的损失函数,x表示数据,y表示数据x对应的标签,越小说明该通道对损失函数影响越小,在求取剪去单个通道后的损失函数变化值时,采用泰勒一阶展开式来逼近实际的损失函数变化幅度,以减少搜索的计算量,单个通道的重要性指标为: 指第l层第i个通道输出值,则表示第l层第i个通道的输出值的回传梯度,回传梯度和输出值的获取通过在网络前向通道中插入Hook获取,然后对回传梯度和输出值相乘得到积的绝对值做层归一化处理,得到最终的通道重要性指标步骤2-2:训练过程中,网络的权重参数W通过随机梯度下降更新,掩码数组M则通过迭代阈值选择方法更新,生成阈值和调整掩码过程是将考虑剪枝的通道按照通道的重要性指标从小到大排序,生成一张表,包括index,key和value,index为序列下标,key为通道坐标l,i,l,i表示第l层第i个通道,value为通道重要性指标三者一一对应,统计通道总数n,则阈值为:TI=Is×n4对重要性指标小于阈值的通道,按照表内对应关系将对应坐标的通道的掩码置0,其余的通道掩码置1;步骤2-3:在训练过程,柔性迭代更新掩码信息,对于第m轮训练,重置掩码全部为1,整个网络在数据集上被训练,按照步骤2-2,步骤2-3更新掩码信息并保存,对于第m+1轮训练,依据上一轮的掩码信息,屏蔽对应通道,残余网络在数据集上被训练,对于第m+2轮训练,按照第m轮训练过程,整个网络在数据集上被训练,此时第m+1轮被剪枝的通道恢复,重复上述迭代过程,直到跑完所有训练轮数后停止训练,保存最后得到稀疏模型和掩码信息;步骤3:步骤2-3得到的掩码信息是一张表,包括key和value,key为通道坐标l,i,value为掩码值0或1;统计每一层掩码值为1的通道的个数,按照每一层剩余通道数量重新构造一个新的规模更小的网络,将新网络的通道坐标按顺序对应掩码信息中的通道坐标,再把稀疏模型中仍然处于激活态的权重参数按照坐标对应关系一一保存到新网络中,得到紧凑的深度卷积神经网络模型;步骤4:完成紧凑的深度卷积神经网络模型重训练,在原数据集上重新训练剪枝后的紧凑深度卷积神经网络模型,超参数设置为每次迭代的批次数量选取为128,一共迭代50~100个epoch,优化方法选择带0.90~0.99动量的随机梯度下降,权重衰减为0.0001~0.001,初始学习速率设置为0.01~0.1,然后在loss不发生显著变化的3个epoch后将学习率除以10;输出性能良好且模型参数量少的最终网络模型;步骤5.将通过基于通道梯度剪枝的柔性深度学习网络模型压缩方法压缩的紧凑神经网络模型应用到智能手机的物体识别APP中,实现视频形式的实时物体识别和对单张图片内物体的识别,物体识别APP实现物体识别的步骤如下:步骤51.加载并调用模型,在电脑端将剪枝好的模型转换为torchScript格式并保存为后缀.pt的模型文件,并将其放在安卓项目的assets文件夹下,同时,在安卓端的AndroidStudio中导入Pytorch1.4依赖包,并通过Module.load函数导入assets路径下的模型文件,将通过Ptorch自带的PytorchMobile移动端框架运行模型文件;步骤52.需要调用摄像头加载图像,导入androidx.camera的依赖包CameraX;请求打开手机的相机权限,若允许,则可以使用相机,调用相机的预览图像在UI界面上显示,若不允许,则提示信息,其次打开摄像头,注册ConnectionCallback和OnImageAvailableListener,设置camera获取图片的输出参数,包括图片预览大小和摄像头方向,然后,调用相机,每隔0.5s取一张摄像头所拍到的最近队列的图片,将获取到的图像调整为宽224,高224的图像,输入到紧凑神经网络模型中进行处理,调用子线程进行图像格式转换并且实现模型计算以及UI界面的更新,最后,当预处理结束,相机设备会回调之前注册到的OnImageAvailableListener;步骤53.获取模型结果,首先,通过imageYUV420CenterCropToFloatBuffer函数将YUV420形式的Image类型图像转化成维度为1,3,224,224的Tensor输入,对于输入数据按照ImageNet数据集的标准预处理方法做预处理,转换好的图像以Tensor形式输入模型进行前向计算,将神经网络的输出节点和输出值拷贝出来,得到概率最大的分类类别,最后,保存单帧图片的推理时间,FPS,平均推理时间,以及最高概率的输出类别,将结果通过安卓提供的textview组件显示在屏幕上面,从而实现实时物体识别。

全文数据:

权利要求:

百度查询: 浙江工业大学 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术