一种深度神经网络的二阶段三角剪枝方法技术

技术编号:38890650 阅读:20 留言:0更新日期:2023-09-22 14:15
本发明专利技术涉及一种深度神经网络的二阶段三角剪枝方法,属于人工智能领域。该方法执行如下步骤:S1对初始矩阵进行一阶段三角剪枝;S2对所述一阶段剪枝后矩阵进行二阶段剪枝;二阶段以斜边向直角端点修剪的方式进行或以斜边向直角端点保留的方式进行;最终完成对初始矩阵的剪枝。本发明专利技术提供一种高效、快速、灵活的神经网络剪枝方法,并可以有效解决计算量大和跟踪非零值时产生巨大索引开销的问题。踪非零值时产生巨大索引开销的问题。踪非零值时产生巨大索引开销的问题。

【技术实现步骤摘要】
一种深度神经网络的二阶段三角剪枝方法


[0001]本专利技术涉及一种深度神经网络的二阶段三角剪枝方法,属于人工智能领域。

技术介绍

[0002]数据分割压缩方法层出不穷,大体上有网络剪枝、低秩分解、紧凑网络设计等等。后两个方法相比于方法一预算复杂,不宜实现,不适合后期神经网络的训练。所以现今神经网络为了减少设计复杂度大多采用网络剪枝(Pruning)这一方法。
[0003]网络剪枝是一种传统的网络压缩方法。它主要是通过移除神经网络中的部分连接,来降低网络的存储资源和计算资源。近些年来,网络剪枝的方法又重新受到了越来越多的关注。网络剪枝可以分为结构化剪枝与非结构化剪枝,分类的依据在于其是否对可以剪掉的元素位置做约束。
[0004]非结构化剪枝是指不刻意追求剪枝后的网络的结构性,只管剪掉任意位置的参数。这样就导致非结构化剪枝对其形式没有做任何其它的约束,这样便可以达到很高的稀疏度。2015年,Han等人在论文中提出了一个三阶段的深度压缩框架(Deep Compression):网络剪枝、量化和霍夫曼编码。通过使用这种方法,AlexNet可以在没有精度损失的情况下压缩35倍。网络剪枝之后,还需要对网络进行重训练,以弥补剪枝过程中的精度损失。在其论文中,某个权值一旦被剪掉,在后续的重训练过程中一直保持为零,所以可能导致精度下降。因此,该类方法导致剪枝后的权值矩阵是无规则稀疏的,实际加速效果较低。
[0005]不同于非结构化剪枝,结构化剪枝对去除权值的位置做了一定限制。根据结构化粒度的不同,又可以分为组级剪枝(Group

level Pruning),向量级剪枝(Vector

level Pruning)和通道级剪枝(Filter

level or Channel

level Pruning)四种。2019年,Zhang等人提出了“通过结构化对角矩阵进行修剪”的方法进行剪枝,如图6所示。使用这种方法,该方法利用排列后的块对角掩码矩阵生成规则的稀疏结构。与之前的方法不同的是,这种处理方法消除了跟踪非零值时的索引开销,有利于硬件实现。为数据分割的压缩提出了一种新的可行性剪枝方法。但这种方法限制了稀疏度,不够灵活,导致复杂的剪枝流程耗费不必要的时间。
[0006]因此就目前情况看,需要一种速度快、精度高、更灵活的剪枝方法。

技术实现思路

[0007]本专利技术要解决的问题是如何提供一种高效、快速、灵活的神经网络剪枝方法,并同时降低FPGA在处理数据时索引开销。
[0008]为了解决上述技术问题,本专利技术提出的技术方案是:一种深度神经网络的二阶段三角剪枝方法,执行如下步骤:
[0009]S1对初始矩阵进行一阶段三角剪枝;
[0010]S11以方阵结构为目标对初始矩阵进行补零;
[0011]S12根据zkwd均分补零后的初始矩阵以获得子块;所述子块为方阵结构;
[0012]S13遍历各子块,对子块对应的四种三角区域的元素求绝对值,然后再对这四个区域求11范数;
[0013]S14对这四种三角区域的l1范数做比较,保留l1范数最大的三角区域并对其进行掩膜
[0014]化处理;当每个子块处理完毕后便得到了一阶段剪枝后矩阵;
[0015]S2对所述一阶段剪枝后矩阵进行二阶段剪枝;
[0016]S21计算稀疏度的可选值;并从所述可选值中选择基准值;所述可选值的数量与zkwd的值正相关;
[0017][0018]S22从所述一阶段剪枝后矩阵中的三角区域的斜边开始修剪,并保留修剪结果,之后修
[0019]剪均在前一次基础上进行;
[0020]S23修剪后计算当前稀疏度,并与基准值比较;
[0021]S231若当前稀疏度与所述基准值相同,停止修剪;
[0022]S232若当前稀疏度与所述基准值不相同,则保留步骤S22中被修剪部分,去除S22中保留部分;
[0023]S233计算S232中得到矩阵的稀疏度,并与基准值比较;
[0024]S2331若相同,则停止修剪;
[0025]S2332若不同,则返回步骤S22;
[0026]S24输出步骤S231或步骤S2331中修剪后矩阵,完成对初始矩阵的剪枝;
[0027]所述zkwd表示初始矩阵分块时,每个子块的维度。
[0028]上述技术方案的改进是:所述一阶段三角剪枝可独立应用。
[0029]上述技术方案的改进是:所述基准值可选范围为[025,0.75],并通过步骤S21中公式计算后得出的值。
[0030]上述技术方案的改进是:所述基准值可选范围为[035,0.75],并通过步骤S21中公式计算后得出的值。
[0031]本专利技术的有益效果是:本专利技术的剪枝方法可以提供更多的稀疏度选择,相较于结构化剪枝更为灵活;相比于非结构化的阈值剪枝法,在同一个识别手写数字集实验中,并且保持剪枝稀疏度相同的情况下,本专利技术的剪枝法可提供更高的精确度;本专利技术通过规则的结构以及掩膜矩阵的使用能够使得硬件快速的进行非零元素的索引,这很大程度上节省了硬件的索引开销。
附图说明
[0032]图1为本专利技术实施例一种深度神经网络的二阶段三角剪枝方法的流程示意图。
[0033]图2为本专利技术实施例一种深度神经网络的二阶段三角剪枝方法中一阶段三角剪枝算法流程示意图。
[0034]图3为本专利技术实施例一种深度神经网络的二阶段三角剪枝方法中二阶段剪枝算法流程示意图。
[0035]图4为本专利技术实施例一种深度神经网络的二阶段三角剪枝方法中一阶段三角剪枝子阵四种三角区域示意图。
[0036]图5本专利技术实施例一种深度神经网络的二阶段三角剪枝方法中二阶段剪枝稀疏度对剪枝结果的影响示意图。
[0037]图6为对角化剪枝原理示意图。
[0038]图7为本专利技术实施例一种深度神经网络的二阶段三角剪枝方法中二阶段剪枝总过程示意图。
[0039]图8为向量和矩阵是否经过二阶段三角剪枝所需要的按元素乘法数量对比图。
[0040]图9为二阶段三角剪枝中参数zkwd和稀疏度的选取对准确率的影响图。
[0041]图10为第二阶段中自定义的magic_matrix()函数算法流程示意图。
具体实施方式
[0042]实施例
[0043]本实例中使用得数据集是mnist数据集,mnist数据集里面包含的只有0到9的数字,一共十类手写数字图片。mnist数据集包含六万个训练集和一万个测试集,这些数字每一种写法都不一样,它大小粗细、是否工整、是否清晰都不一样。每张图片它的尺寸都做了规划,最终图片大小都是28
×
28像素的。本实例使用LSTM网络进行训练,LSTM的隐藏层维度为28,输入维度为28,使用了1层LSTM对mnist数据集进行剪枝训练以及量化。最后使用FPGA根据LSTM剪枝量化后的数据去本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度神经网络的二阶段三角剪枝方法,其特征在于执行如下步骤:S1对初始矩阵进行一阶段三角剪枝;S11以方阵结构为目标对初始矩阵进行补零;S12根据zkwd均分补零后的初始矩阵以获得子块;所述子块为方阵结构;S13遍历各子块,对子块对应的四种三角区域的元素求绝对值,然后再对这四个区域求11范数;S14对这四种三角区域的l1范数做比较,保留l1范数最大的三角区域并对其进行掩膜化处理;当每个子块处理完毕后便得到了一阶段剪枝后矩阵;S2对所述一阶段剪枝后矩阵进行二阶段剪枝;S21计算稀疏度的可选值;并从所述可选值中选择基准值;所述可选值的数量与zkwd的值正相关;S22从所述一阶段剪枝后矩阵中的三角区域的斜边开始修剪,并保留修剪结果,之后修剪均在前一次基础上进行;S23修剪后计算当前稀疏度,并与基准值比较;S231若当前稀疏度与所述基准值相同,停止...

【专利技术属性】
技术研发人员:余乐历泉有
申请(专利权)人:北京工商大学
类型:发明
国别省市:

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

1