CN112418388A - 一种实现深度卷积神经网络处理的方法及装置 - Google Patents

一种实现深度卷积神经网络处理的方法及装置 Download PDF

Info

Publication number
CN112418388A
CN112418388A CN201910781769.4A CN201910781769A CN112418388A CN 112418388 A CN112418388 A CN 112418388A CN 201910781769 A CN201910781769 A CN 201910781769A CN 112418388 A CN112418388 A CN 112418388A
Authority
CN
China
Prior art keywords
parameters
convolution
parameter
convolution kernel
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910781769.4A
Other languages
English (en)
Inventor
杨德友
刘文鸿
张欣
叶蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201910781769.4A priority Critical patent/CN112418388A/zh
Publication of CN112418388A publication Critical patent/CN112418388A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种实现深度卷积神经网络处理的方法及装置,包括:对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核;统计每个子卷积核中所有参数的类别数量。本申请为更好地实现对深度卷积神经网络的加速提供了保障。进一步地,本申请还针对每个子卷积核,按照每一类别中参数的数量进行聚类处理。这样,更好地实现了对深度卷积神经网络的加速。

Description

一种实现深度卷积神经网络处理的方法及装置
技术领域
本申请涉及但不限于计算机技术领域,尤指一种实现深度卷积神经网络处理的方法及装置。
背景技术
深度卷积神经网络(CNN,Convolutional Neural Network)在计算机视觉、语音识别、自然语言处理与生物信息学等领域取得了令人瞩目的成果,显著提高了图像分类、目标检测与跟踪、语义分割、人脸识别、视频分析等任务的性能。CNN也已在自动驾驶、智慧医疗、安防、互联网等行业得到了广泛应用。
大多数深度卷积神经网络都有百万量级的参数和运算量,比如:AlexNet网络有60M个参数和720M次乘加操作;再如:VGG16网络有138M个参数和15300M次乘加操作。因此,要实现深度卷积神经网络的实时推理,需要大量的存储和运算资源,必须依赖配备如图形处理器(GPU,Graphics Processing Unit)等加速设备的高性能计算机集群。
然而,对于移动设备,如手机、可穿戴设备、智能家居、汽车、机器人等,由于受体积和功耗等因素的限制,其存储和运算资源十分有限。尤其是在自动驾驶、视频监控、手机拍照等实时性要求高的应用场景,常见的深度卷积神经网络很难发挥作用。因此,加速深度卷积神经网络至关重要。
为了解决深度卷积神经网络的加速问题,相关技术中提出的算法通常采用剪枝和量化的方法实现加速,并且需要重新训练网络以确保预测精度损失在允许范围内。但是,剪枝和量化后的深度卷积神经网络仍然有加速的潜力,当前算法没有考虑剪枝和量化后的加速问题,所以如何对剪枝和量化后的网络进行加速还有待研究。
发明内容
本申请提供一种实现深度卷积神经网络处理的方法及装置,能够为更好地实现对深度卷积神经网络的加速提供保障。
本申请提供了一种实现深度卷积神经网络处理的方法,包括:
对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核;
统计每个子卷积核中所有参数的类别数量N。
在一种示例性实例中,所述方法还包括:
对所述深度卷积神经网络进行量化;获取量化后参数。
在一种示例性实例中,所述对深度卷积神经网络进行量化,包括:
采用均匀量化或非均匀量化,对所述深度卷积神经网络的参数进行量化,将所述深度卷积神经网络的参数由浮点型转化为整型。
在一种示例性实例中,所述采用均匀量化对所述深度卷积神经网络的参数进行量化,包括:
针对每一卷积层,统计卷积层输入X的绝对值的最大值Xmax,和输出Y的绝对值的最大值Ymax
统计权重绝对值的最大值Wmax和偏置绝对值最大值bmax
计算输入量化系数
Figure BDA0002176822420000021
输出量化系数
Figure BDA0002176822420000022
权重量化系数
Figure BDA0002176822420000023
偏置量化系数kb=kX+kW
浮点型输入X量化后的整型值为:Xq=round(X*kX),权重W量化结果为Wq=round(W*kW),偏置b量化结果为bq=round(b*kb);
使用量化后的输入、量化后的权重和量化后的偏置进行前向计算,计算结果乘以量化系数
Figure BDA0002176822420000024
后得到的积为该卷积层的输出结果。
在一种示例性实例中,所述方法还包括:
减小所述输入量化系数kX和所述权重量化系数kW的值。
在一种示例性实例中,所述获取量化后参数,包括:
利用深度学习框架工具,或者通过脚本或者手动方式获取所述深度卷积神经网络的参数。
在一种示例性实例中,所述对量化后的参数进行分块,包括:
针对所述深度卷积神经网络的每一卷积层的每个卷积核,保持卷积核的高度和宽度不变,在通道维度上将卷积核分成多个子卷积核,其中,每个子卷积核的通道数大于零,且小于或等于卷积核的通道数。
在一种示例性实例中,所述统计每个子卷积核中所有参数的类别数量N,包括:
针对每个子卷积核,删除数值为0的参数;将为负数的参数取绝对值得到正数;
对每个子卷积核中的每一个参数,将该参数除以2直到余数d不等于0,d为该参数的类别,根据d的数量统计出每一个子卷积核中所有参数的所述类别数量N。
在一种示例性实例中,针对每个子卷积核,如果所有参数的类别数量N大于设置的聚类后的类别数量K,所述方法还包括:
按照每一类别中参数的数量,对包含参数的数量少的(N-K)类参数进行聚类处理,使得该子卷积核中包括K类参数。
在一种示例性实例中,所述对包含参数的数量少的(N-K)类参数进行聚类处理,包括:
针对每个子卷积核,统计每种类别的参数的数量{l1,l2...,lN},并按大小对N个类别进行排序;
保持前K类参数不变,对倒数(N-K)类的参数进行调整,以保证需要修改的参数的数量最少。
在一种示例性实例中,所述对倒数(N-K)类的参数进行调整,包括:
对于所述排序之后的倒数(N-K)类的参数w,计算前K类参数中与该参数w的L1Norm距离最小的参数w′,用参数w′替换该参数w。
在一种示例性实例中,所述计算前K类参数中与所述参数w的L1Norm距离最小的参数w′,用参数w′替换所述参数w,包括:
计算所述前K类参数在量化位宽范围内的所有同类参数w′;
对于所述倒数(N-K)类的参数w,计算与其L1Norm最小的w′,用计算得到的w′替换所述参数w;
重复上述过程,直到所述倒数(N-K)类的所有参数均被划分到所述前K类。
在一种示例性实例中,所述方法还包括:
对所述聚类后的深度卷积神经网络进行前向计算。
在一种示例性实例中,所述对聚类后的深度卷积神经网络进行前向计算,包括:
针对每个子卷积核,按照不同类别分别计算卷积结果,不同类别计算得到的卷积结果求和得到该子卷积核的卷积结果;
针对每个卷积核,同一个卷积核中所有子卷积核的卷积结果求和,得到的和值加上偏置得到该卷积核的卷积结果;
针对每个卷积层,将卷积层中所有卷积核的卷积结果除以该卷积层输出的量化系数,作为该卷积层的输出结果。
在一种示例性实例中,所述针对每个子卷积核,按照不同类别分别计算卷积结果,包括:
对于某一类别,按照
Figure BDA0002176822420000041
进行计算,其中,q表示该类别的参数数量,m表示该类别的最大奇因数,ki表示参数正负标志,ni表示参数的移位位数,pi表示参数对应的输入x在特征图中的索引。
本申请还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现深度卷积神经网络处理的方法。
本申请又提供了一种实现深度卷积神经网络处理的装置,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行上述任一项所述的实现深度卷积神经网络处理的方法的步骤。
本申请包括:对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核;统计每个子卷积核中所有参数的类别数量N。本申请为更好地实现对深度卷积神经网络的加速提供了保障。
在一种示例性实例中,本申请还包括:针对每个子卷积核,按照每一类别中参数的数量,对包含参数的数量少的(N-K)类参数进行聚类处理,使得该子卷积核中包括K类参数,其中,K为聚类后的类别数量。这样,更好地实现了对深度卷积神经网络的加速。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实现深度卷积神经网络处理的方法的流程图;
图2为本申请卷积核分块的示意图;
图3为本申请实现深度卷积神经网络处理的装置的组成结构示意图。
具体实施方式
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本申请实现深度卷积神经网络处理的方法的流程图,如图1所示,至少包括:
步骤100:对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核。
在一种示例性实例中,子卷积核的大小可以根据软件资源和/或硬件资源选择合适的值。如果软件资源和/或硬件资源有限,可以选择较小的子卷积核,反之可以选择较大的子卷积核。
假设卷积核的维度为(C,H,W),其中,C表示卷积核的通道数、H表示卷积核的高度、W表示卷积核的宽度。
在一种示例性实例中,针对深度卷积神经网络每一卷积层的每个卷积核,对量化后的参数进行分块,包括:
图2为本申请卷积核分块的示意图,如图2所示,保持卷积核的高度和宽度不变,在通道维度上将卷积核分成多个子卷积核,每个子卷积核的通道数大于零,且小于或等于卷积核的通道数。也就是说,每个子卷积核的维度为(C′,H,W);其中,0<C′≤C。
在一种示例性实例中,如果C不能被C′整除,那么,在最后一个分块的通道维度上补零,最终得到
Figure BDA0002176822420000061
个分块。
在一种示例性实例中,步骤100之前还包括:
对深度卷积神经网络进行量化;获取量化后参数。
在一种示例性实例中,可以采用如均匀量化或非均匀量化等方法对深度卷积神经网络的参数进行量化,将深度卷积神经网络的参数由浮点型转化为整型。
在一种示例性实例中,以一种8比特(8-bit)均匀量化方法为例,量化一个卷积层的过程包括:
统计当前卷积层输入X的绝对值的最大值Xmax,和输出Y的绝对值的最大值Ymax
统计权重绝对值的最大值Wmax和偏置绝对值最大值bmax
计算输入量化系数
Figure BDA0002176822420000071
输出量化系数
Figure BDA0002176822420000072
权重量化系数
Figure BDA0002176822420000073
偏置量化系数kb=kX+kW
浮点型输入X量化后的整型值为:Xq=round(X*kX),权重W量化结果为Wq=round(W*kW),偏置b量化结果为bq=round(b*kb);
使用量化后的输入、量化后的权重和量化后的偏置进行前向计算,计算结果乘以量化系数
Figure BDA0002176822420000074
后得到的积即为当前卷积层的输出结果。
本申请中,可以通过调整量化系数2q
Figure BDA0002176822420000075
来保证量化位宽要求。
输入量化系数kX和权重量化系数kW越大,量化后的卷积层输入X和权重W越大,进而卷积结果也越大,那么,需要的计算和存储资源也越多。在一种示例性实例中,为了节省资源,本申请还包括:
减小输入量化系数kX和所述权重量化系数kW的值,以此来限制中间结果的数值。
在一种示例性实例中,可以通过减去预设步长(如1)来减小输入量化系数kX和所述权重量化系数kW的值。如果还不满足要求,可以继续减小。
但是,如果减小过多,网络精度会降低,因此,本申请在实际处理中,需要在节省资源和保证精度之间进行权衡,以保证网络精度。
在一种示例性实例中,可以利用深度学习框架工具如PyTorch、TensorFlow等,也可以通过脚本或者手动方式获取深度卷积神经网络的参数。对于网络中的任一卷积层,其维度为(N,C,H,W),其中,N为卷积核的数量,C为卷积核的通道数,H为卷积核的高度,W为卷积核的宽度,每一个卷积核的维度为(C,H,W)。
步骤101:统计每个子卷积核中所有参数的类别数量N。
任何整型参数都可以表示为m*2n的形式,比如-16=(-1)*24,31=31*20,其中,m表示最大奇因数。本申请实施例中,利用这个原理,将每个子卷积核中m绝对值相同的参数分为一类,比如1、16、-32、64、-128属于m绝对值为1的同一类别。
在一种示例性实例中,本步骤可以包括:
针对每个子卷积核,对参数进行预处理:删除数值为0的参数;将为负数的参数取绝对值得到正数;
对每个子卷积核中的每一个参数进行如下处理:将该参数除以2直到余数d不等于0,那么d就是该参数的类别。这样,根据d的数量可以统计出每一个子卷积核中所有参数的类别{d1,d2,...,dN},共N类。
本申请实施例中,通过提取同一类参数的最大奇因数m,将乘法操作转化为移位操作,比如:网络参数为w1=3、w2=-12、w3=96,输入为x1、x2、x3,那么,w1*x1+w2*x2+w3*x3=3*x1-12*x2+96*x3=3*(20*x1-22*x2+25*x3)。可见,括号内的乘法操作可转化为移位操作,乘法操作由3次减少为1次,即同一类别的参数只需一次乘法操作,这样,大大减少了乘法操作次数,从而实现了深度卷积神经网络的加速。
在一种示例性实例中,进一步地,本申请步骤101还包括:
参数的类别越多,需要的计算资源也越多。为了更好地利用有限的资源,本申请还包括:针对每个子卷积核,如果所有参数的类别数量N大于要求的聚类后的类别数量K,需要对该子卷积核的参数进行聚类处理。也就是说,针对每个子卷积核,假设要求所有参数的类别小于或等于K类,如果N≤K,那么,当前块满足分类条件,结束本流程;如果N>K,则继续执行步骤102。其中,K预先设置的为聚类后的类别数量。
步骤102:针对每个子卷积核,按照每一类别中参数的数量,对包含参数的数量少的(N-K)类参数进行聚类处理,使得该子卷积核中包括K类参数,其中,K为聚类后的类别数量。
在一种示例性实例中,假设需要将每个子卷积核中C′*H*W个参数聚为K类,本步骤可以包括:
针对每个子卷积核,统计每种类别的参数的数量{l1,l2...,lN},并按大小对N个类别进行排序;
保持前K类参数不变,只对倒数(N-K)类的参数进行调整,以保证需要修改的参数的数量最少。
在一种示例性实例中,对倒数(N-K)类的参数进行调整,可以包括:
对于排序之后的倒数(N-K)类的参数w,计算前K类参数中与该参数w的L1Norm距离最小的参数w′,用参数w′替换原始的参数w,以保证参数修改前后差值最小。其中,L1Norm指的是n维向量p和q对应元素差值的绝对值之和,可以理解为p与q的距离,此处表示在前K类中找到一个参数w′,该参数w′与参数w的差值的绝对值最小,w′和w均为标量。
在一种示例性实例中,计算前K类参数中与其L1Norm最小的参数w′,用参数w′替换原始的参数w,可以包括:
计算前K类参数在量化位宽范围(如8-bit)内的所有同类参数w′,比如:对于类别3在8-bit量化位宽范围内的所有参数包括:(-96,-48,-24,-12,-6,-3,3,6,12,24,48,96);
对于倒数(N-K)类的参数w,计算与其L1Norm最小的w′,即
Figure BDA0002176822420000091
用计算得到的w′替换原始的w,这样,参数w就被划分到了前K类参数中;
重复上述过程,直到倒数(N-K)类的所有参数均被划分到前K类,即完成本步骤的聚类处理。
本申请实施例中的聚类处理,通过限制需要修改的参数的数量和参数修改前后的差值大小,保证了对预测精度的影响尽量的低。
本申请通过对深度卷积神经网络参数的上述处理,为更好地实现对深度卷积神经网络的加速提供了保障。
在一种示例性实例中,本申请方法还可以包括:
对聚类后的深度卷积神经网络进行前向计算。
在一种示例性实例中,对聚类后的深度卷积神经网络进行前向计算,包括:
针对每个子卷积核,按照不同类别分别计算卷积结果,不同类别计算得到的卷积结果求和得到该子卷积核的卷积结果;
针对每个卷积核,同一个卷积核中所有子卷积核的卷积结果求和,得到的和值加上偏置得到该卷积核的卷积结果;
针对每个卷积层,将卷积层中所有卷积核的卷积结果除以该卷积层输出的量化系数,即可得到该卷积层的输出结果。
在一种示例性实例中,针对每个子卷积核,按照不同类别分别计算卷积结果,可以包括:
对于某一类别,按照
Figure BDA0002176822420000101
进行计算,其中,q表示该类别的参数数量,m表示该类别的最大奇因数,ki表示参数正负标志,ni表示参数的移位位数,pi表示参数对应的输入x在特征图中的索引。
本申请通过对深度卷积神经网络参数的上述处理,更好地实现了对深度卷积神经网络的加速。
需要说明的是,本申请实施例中的参数指的是卷积层的权重。卷积层一般包括权重和偏置两部分,两者都会进行量化操作,但是,本申请中仅对权重进行分块、分类、聚类等处理。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现深度卷积神经网络处理的方法。
本发明实施例还提供一种实现深度卷积神经网络处理的装置,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行上述任一项所述的实现深度卷积神经网络处理的方法的步骤。
图3为本申请实现深度卷积神经网络处理的装置的组成结构示意图,如图3所示,至少包括:分块模块、分类模块;其中,
分块模块,用于对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核;
分类模块,用于统计每个子卷积核中所有参数的类别数量N。
在一种示例性实例中,分类模块具体用于:
针对每个子卷积核,对参数进行预处理:删除数值为0的参数;将所有为负数的参数取绝对值得到正数;
对每个子卷积核中的每一个参数进行如下处理:将该参数除以2直到余数d不等于0,那么d就是该参数的类别。这样,可以统计出每一个子卷积核中所有参数的类别{d1,d2,...,dN},共N类。
在一种示例性实例中,本申请实现深度卷积神经网络处理的装置还可以包括:量化模块、获取模块;其中,
量化模块,用于对深度卷积神经网络进行量化;
获取模块,用于获取量化后参数。
在一种示例性实例中,所述分类模块还用于:针对每个子卷积核,如果所有参数的类别数量N大于要求的聚类后的类别数量K,需要对该子卷积核的参数进行聚类处理;相应地,
本申请实现深度卷积神经网络处理的装置还可以包括聚类模块,用于:
针对每个子卷积核,按照每一类别中参数的数量,对包含参数的数量少的(N-K)类参数进行聚类处理,使得该子卷积核中包括K类参数,其中,K为聚合后的类别数量。
在一种示例性实例中,聚类模块具体用于:
针对每个子卷积核,统计每种类别的参数的数量{l1,l2...,lN},并按大小对N个类别进行排序;
保持前K类参数不变,只对倒数(N-K)类的参数进行调整,以保证需要修改的参数的数量最少。
在一种示例性实例中,聚类模块中的对倒数(N-K)类的参数进行调整,包括:
对于排序之后的倒数(N-K)类的参数w,计算前K类参数中与其L1Norm距离最小的参数w′,用参数w′替换原始的参数w,以保证参数修改前后差值最小。
在一种示例性实例中,本申请实现深度卷积神经网络处理的装置还包括:计算模块,以完成对聚类后的深度卷积神经网络进行前向计算。计算模块可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件或程序模块。
在一种示例性实例中,计算模块具体用于:
针对每个子卷积核,按照不同类别分别计算卷积结果,不同类别计算得到的卷积结果求和得到该子卷积核的卷积结果;
针对每个卷积核,同一个卷积核中所有子卷积核的卷积结果求和,得到的和值加上偏置得到该卷积核的卷积结果;
针对每个卷积层,将卷积层中所有卷积核的卷积结果除以该卷积层输出的量化系数,即可得到该卷积层的输出结果。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种实现深度卷积神经网络处理的方法,包括:
对量化后的参数进行分块,将深度卷积神经网络每一卷积层的每个卷积核分成多个子卷积核;
统计每个子卷积核中所有参数的类别数量N。
2.根据权利要求1所述的方法,所述方法还包括:
对所述深度卷积神经网络进行量化;获取量化后参数。
3.根据权利要求2所述的方法,其中,所述对深度卷积神经网络进行量化,包括:
采用均匀量化或非均匀量化,对所述深度卷积神经网络的参数进行量化,将所述深度卷积神经网络的参数由浮点型转化为整型。
4.根据权利要求3所述的方法,其中,所述采用均匀量化对所述深度卷积神经网络的参数进行量化,包括:
针对每一卷积层,统计卷积层输入X的绝对值的最大值Xmax,和输出Y的绝对值的最大值Ymax
统计权重绝对值的最大值Wmax和偏置绝对值最大值bmax
计算输入量化系数
Figure FDA0002176822410000011
输出量化系数
Figure FDA0002176822410000012
权重量化系数
Figure FDA0002176822410000013
偏置量化系数kb=kX+kW
浮点型输入X量化后的整型值为:Xq=round(X*kX),权重W量化结果为Wq=round(W*kW),偏置b量化结果为bq=round(b*kb);
使用量化后的输入、量化后的权重和量化后的偏置进行前向计算,计算结果乘以量化系数
Figure FDA0002176822410000014
后得到的积为该卷积层的输出结果。
5.根据权利要求4所述的方法,所述方法还包括:
减小所述输入量化系数kX和所述权重量化系数kW的值。
6.根据权利要求2所述的方法,其中,所述获取量化后参数,包括:
利用深度学习框架工具,或者通过脚本或者手动方式获取所述深度卷积神经网络的参数。
7.根据权利要求1或2所述的方法,其中,所述对量化后的参数进行分块,包括:
针对所述深度卷积神经网络的每一卷积层的每个卷积核,保持卷积核的高度和宽度不变,在通道维度上将卷积核分成多个子卷积核,其中,每个子卷积核的通道数大于零,且小于或等于卷积核的通道数。
8.根据权利要求1或2所述的方法,其中,所述统计每个子卷积核中所有参数的类别数量N,包括:
针对每个子卷积核,删除数值为0的参数;将为负数的参数取绝对值得到正数;
对每个子卷积核中的每一个参数,将该参数除以2直到余数d不等于0,d为该参数的类别,根据d的数量统计出每一个子卷积核中所有参数的所述类别数量N。
9.根据权利要求8所述的方法,针对每个子卷积核,如果所有参数的类别数量N大于设置的聚类后的类别数量K,所述方法还包括:
按照每一类别中参数的数量,对包含参数的数量少的(N-K)类参数进行聚类处理,使得该子卷积核中包括K类参数。
10.根据权利要求9所述的方法,其中,所述对包含参数的数量少的(N-K)类参数进行聚类处理,包括:
针对每个子卷积核,统计每种类别的参数的数量{l1,l2...,lN},并按大小对N个类别进行排序;
保持前K类参数不变,对倒数(N-K)类的参数进行调整,以保证需要修改的参数的数量最少。
11.根据权利要求10所述的方法,其中,所述对倒数(N-K)类的参数进行调整,包括:
对于所述排序之后的倒数(N-K)类的参数w,计算前K类参数中与该参数w的L1 Norm距离最小的参数w′,用参数w′替换该参数w。
12.根据权利要求11所述的方法,其中,所述计算前K类参数中与所述参数w的L1 Norm距离最小的参数w′,用参数w′替换所述参数w,包括:
计算所述前K类参数在量化位宽范围内的所有同类参数w′;
对于所述倒数(N-K)类的参数w,计算与其L1 Norm最小的w′,用计算得到的w′替换所述参数w;
重复上述过程,直到所述倒数(N-K)类的所有参数均被划分到所述前K类。
13.根据权利要求9所述的方法,所述方法还包括:
对所述聚类后的深度卷积神经网络进行前向计算。
14.根据权利要求13所述的方法,所述对聚类后的深度卷积神经网络进行前向计算,包括:
针对每个子卷积核,按照不同类别分别计算卷积结果,不同类别计算得到的卷积结果求和得到该子卷积核的卷积结果;
针对每个卷积核,同一个卷积核中所有子卷积核的卷积结果求和,得到的和值加上偏置得到该卷积核的卷积结果;
针对每个卷积层,将卷积层中所有卷积核的卷积结果除以该卷积层输出的量化系数,作为该卷积层的输出结果。
15.根据权利要求14所述的方法,所述针对每个子卷积核,按照不同类别分别计算卷积结果,包括:
对于某一类别,按照
Figure FDA0002176822410000031
进行计算,其中,q表示该类别的参数数量,m表示该类别的最大奇因数,ki表示参数正负标志,ni表示参数的移位位数,pi表示参数对应的输入x在特征图中的索引。
16.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~权利要求15任一项所述的实现深度卷积神经网络处理的方法。
17.一种实现深度卷积神经网络处理的装置,包括处理器、存储器;其中,存储器上存储有可在处理器上运行的计算机程序:用于执行权利要求1~权利要求15任一项所述的实现深度卷积神经网络处理的方法的步骤。
CN201910781769.4A 2019-08-23 2019-08-23 一种实现深度卷积神经网络处理的方法及装置 Pending CN112418388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910781769.4A CN112418388A (zh) 2019-08-23 2019-08-23 一种实现深度卷积神经网络处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910781769.4A CN112418388A (zh) 2019-08-23 2019-08-23 一种实现深度卷积神经网络处理的方法及装置

Publications (1)

Publication Number Publication Date
CN112418388A true CN112418388A (zh) 2021-02-26

Family

ID=74779331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910781769.4A Pending CN112418388A (zh) 2019-08-23 2019-08-23 一种实现深度卷积神经网络处理的方法及装置

Country Status (1)

Country Link
CN (1) CN112418388A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138957A (zh) * 2021-03-29 2021-07-20 北京智芯微电子科技有限公司 用于神经网络推理的芯片及加速神经网络推理的方法
CN115994561A (zh) * 2023-03-22 2023-04-21 山东云海国创云计算装备产业创新中心有限公司 卷积神经网络加速方法、系统、存储介质、装置及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138957A (zh) * 2021-03-29 2021-07-20 北京智芯微电子科技有限公司 用于神经网络推理的芯片及加速神经网络推理的方法
CN115994561A (zh) * 2023-03-22 2023-04-21 山东云海国创云计算装备产业创新中心有限公司 卷积神经网络加速方法、系统、存储介质、装置及设备

Similar Documents

Publication Publication Date Title
US11157815B2 (en) Efficient convolutional neural networks and techniques to reduce associated computational costs
US11727276B2 (en) Processing method and accelerating device
He et al. Soft filter pruning for accelerating deep convolutional neural networks
US20210004663A1 (en) Neural network device and method of quantizing parameters of neural network
US20220004884A1 (en) Convolutional Neural Network Computing Acceleration Method and Apparatus, Device, and Medium
CN111488985B (zh) 深度神经网络模型压缩训练方法、装置、设备、介质
CN110718211B (zh) 一种基于混合压缩卷积神经网络的关键词识别系统
CN111191783B (zh) 一种自适应量化方法及装置、设备、介质
US20220036167A1 (en) Sorting method, operation method and operation apparatus for convolutional neural network
US11450096B2 (en) Systems and methods for progressive learning for machine-learned models to optimize training speed
US20200389182A1 (en) Data conversion method and apparatus
CN111461302B (zh) 一种基于卷积神经网络的数据处理方法、设备及存储介质
CN112418388A (zh) 一种实现深度卷积神经网络处理的方法及装置
CN114677548A (zh) 基于阻变存储器的神经网络图像分类系统及方法
CN116188878A (zh) 基于神经网络结构微调的图像分类方法、装置和存储介质
US20220004849A1 (en) Image processing neural networks with dynamic filter activation
US11699077B2 (en) Multi-layer neural network system and method
CN111275166A (zh) 基于卷积神经网络的图像处理装置、设备及可读存储介质
CN114155388B (zh) 一种图像识别方法、装置、计算机设备和存储介质
CN111788582A (zh) 电子设备及其控制方法
CN114065913A (zh) 模型量化方法、装置及终端设备
CN114222997A (zh) 用于对神经网络进行后训练量化的方法和装置
WO2024060727A1 (zh) 神经网络模型的训练方法、装置、设备及系统
US20240160695A1 (en) Approximating activation function in neural network with look-up table having hybrid architecture
WO2020078200A1 (zh) 一种数据处理方法及装置、计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination