The invention discloses a progressive block knowledge distillation method for neural network acceleration, which includes the following steps: input the original complex network and related parameters; divide the original complex network into multiple sub-network blocks, design student sub-network blocks according to blocks and randomly initialize parameters; and take the input original complex network as the first step. Teacher network of sub-block distillation process, the block distillation process is completed to get a student network, in which the first student sub-network block parameters are optimal; the student network obtained from the last block distillation process is regarded as the teacher network of the next block distillation process, and the next student network is obtained, in which the student sub-network of the end of block distillation is the student sub-network. Block parameters are optimal; all sub-network block distillation processes are completed, and the final simple student network and the optimal parameters are obtained. The invention can achieve the effect of accelerating model compression on the general hardware architecture, and is simple to realize. It is an effective and practical accelerating algorithm for deep network model compression.
【技术实现步骤摘要】
一种用于神经网络加速的渐进式块知识蒸馏方法
本专利技术涉及深度网络模型压缩加速领域,尤其涉及一种用于神经网络加速的渐进式块知识蒸馏方法。
技术介绍
从2016年开始,人工智能热潮席卷了全球。包括谷歌、微软、百度、阿里巴巴、腾讯等国内外各大公司纷纷投入大量的力量到有关人工智能的研究中;中国政府在不久前也发布了《新一代人工智能发展规划》,制定了未来中国人工智能发展的目标。这几年来,深度学习的迅猛发展,使得计算机视觉、自然语言处理等一系列领域的最先进的算法性能都有了跨越式的进展。在人工智能领域,传统的芯片计算架构无法支撑深度学习等并行计算的需求,面对未来10年高达2000亿美元的市场,谷歌、英伟达等国内外芯片公司纷纷投入研究新的人工智能芯片(云端训练、云端推理、设备端推理、类脑芯片)来更好地储备数据、加速计算过程。但在工业界深度学习算法却还没得到较好的应用,其中一个原因是深度神经网络的模型庞大、计算量巨大,动辄数百兆的深度神经网络部署到实际产品中困难较大。另一方面,在一些嵌入式的平台上,存储计算资源都十分有限,深度学习算法的移植更加困难。所以,研究深度网络模型的压缩加速,是一个对工业界和学术界都非常有价值的问题,以ResNet-50为例,它有50层卷积网络、超过95MB的储存需求,如果剪枝一些冗余的权重后,其大概能节约75%的参数和50%的计算时间。当前主要用于深度网络模型压缩加速的方案有参数剪枝和共享、低秩分解、知识蒸馏等。有些方案(如低秩分解)只能够实现理论上对模型的压缩加速,但在实际硬件结构上依然无法达到对模型加速的效果;有些方案(如知识蒸馏)能够在实际的 ...
【技术保护点】
1.一种用于神经网络加速的渐进式块知识蒸馏方法,包括以下步骤:S1、输入原复杂网络和相关参数,定义方法目标;S2、将原复杂网络分成多个子网络块,基于学生子网络块设计准则,按块设计学生子网络块并随机初始化其参数;S3、蒸馏第一个子网络块,将S1中输入的原复杂网络作为第一次块蒸馏过程的教师网络,一次块蒸馏过程完成后得到第一个学生网络,其中蒸馏完成的第一个学生子网络块具有最优参数;S4、蒸馏下一个子网络块,将上一次块蒸馏过程得到的学生网络作为本次块蒸馏过程的教师网络,一次块蒸馏过程完成得到下一个学生网络,其中蒸馏完成的下一个学生子网络块具有最优参数;S5、重复步骤S4直到所有子网络块蒸馏过程完成,将最后一次块蒸馏得到的学生网络和最优参数作为最终的简单学生网络以及最终参数。
【技术特征摘要】
1.一种用于神经网络加速的渐进式块知识蒸馏方法,包括以下步骤:S1、输入原复杂网络和相关参数,定义方法目标;S2、将原复杂网络分成多个子网络块,基于学生子网络块设计准则,按块设计学生子网络块并随机初始化其参数;S3、蒸馏第一个子网络块,将S1中输入的原复杂网络作为第一次块蒸馏过程的教师网络,一次块蒸馏过程完成后得到第一个学生网络,其中蒸馏完成的第一个学生子网络块具有最优参数;S4、蒸馏下一个子网络块,将上一次块蒸馏过程得到的学生网络作为本次块蒸馏过程的教师网络,一次块蒸馏过程完成得到下一个学生网络,其中蒸馏完成的下一个学生子网络块具有最优参数;S5、重复步骤S4直到所有子网络块蒸馏过程完成,将最后一次块蒸馏得到的学生网络和最优参数作为最终的简单学生网络以及最终参数。2.根据权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,其特征在于S1中所述的原复杂网络定义如下:原复杂网络T由N个子网络块构成,表示如下:ti是在T中的第i个子网络块,i∈{1,2,...,N},c是分类器的映射函数,为简化网络表达的符号;该复杂网络的参数表示为Wc和是指c和ti的参数,i∈{1,2,...,N};所述的子网络块定义如下:一个神经网络由卷积层、池化层和全连接层构成,将神经网络中两个相邻池化层间的子网络定义为一个子网络块。3.根据权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,其特征在于S1中所述的方法目标定义如下:设计一个具有高计算效率和低存储占用空间的学生网络,并学习训练得到最优的参数;所述学生网络由N个学生子网络块构成,用表示,其中si表示S中的第i个学生子网络块,i∈{1,2,...,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。