CN113168557B - 一种数据处理方法、服务器和可读介质 - Google Patents
一种数据处理方法、服务器和可读介质 Download PDFInfo
- Publication number
- CN113168557B CN113168557B CN201980080301.0A CN201980080301A CN113168557B CN 113168557 B CN113168557 B CN 113168557B CN 201980080301 A CN201980080301 A CN 201980080301A CN 113168557 B CN113168557 B CN 113168557B
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- matrix
- full
- layer
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000003062 neural network model Methods 0.000 claims abstract description 222
- 239000011159 matrix material Substances 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 92
- 238000004364 calculation method Methods 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 24
- 238000013527 convolutional neural network Methods 0.000 claims description 8
- 238000000354 decomposition reaction Methods 0.000 claims description 8
- 230000000007 visual effect Effects 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims 2
- 239000000758 substrate Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000009467 reduction Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000000513 principal component analysis Methods 0.000 description 4
- 241000282326 Felis catus Species 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000003925 brain function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000016776 visual perception Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005312 nonlinear dynamic Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 239000009891 weiqi Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
一种数据处理方法、服务器和可读介质,本申请实施例方法包括:获取神经网络模型的目标全连接层的输出参数k和权值数据W,所述W为m×k阶的矩阵(201);根据目标性能和所述神经网络模型的额定性能确定简化参数r(202),其中,所述r<(m×k)/(m+k);根据所述r和所述k将所述神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型(203);采用所述更新后的神经网络模型进行数据处理(205)。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种基于神经网络模型的数据处理方法、服务器和可读介质。
背景技术
随着神经网络模型的技术成熟,其应用越来越广泛。为了使边缘计算产品(如手机、计算棒)也能使用神经网络模型,产生了在边缘计算产品等上部署神经网络模型的需求。
由于神经网络模型占用内存较大,运行神经网络模型是的计算能力要求较高,相对而言,边缘计算产品的内存较小,计算能力较弱,不能将神经网络模型直接部署在边缘计算产品上。当下,若要将神经网络模型部署在边缘计算产品上,需要针对该边缘计算产品的性能对重新训练神经网络模型,这样做费时费力,效率较低。
发明内容
本申请实施例提供了一种基于神经网络模型的数据处理方法、服务器和可读介质。
本申请第一方面提供了一种数据处理方法,包括:
获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵,然后根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k),根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵,最后采用更新后的神经网络模型进行数据处理,相比较根据目标性能重新训练神经网络模型,本申请所提供的技术方案省时省力,效率更高。
在一些可能的实现方式中,根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,包括:根据r确定W1和W2,然后基于r和W1构建第一全连接层,且基于k和W2构建第二全连接层。
在本申请实施例中,r用于对目标全连接层进行简化,使得神经网络模型的计算量降低。具体的,目标全连接层的计算量为m×k,通过r对目标全连接层进行简化后,目标全连接层替换为串联的第一全连接层和第二全连接层,其中第一全连接层的计算量为m×r,第二全连接层的计算量为r×k,则可知,只要m×r+r×k<m×k,即r<(m×k)/(m+k),即可实现目标全连接层的计算量的降低,即神经网络模型的计算量降低。在本申请实施例中,可以通过确定简化参数r控制更新后的神经网络模型的计算量。
在一些可能的实现方式中,根据r确定W1和W2,包括:
对W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),U为m×m阶的矩阵,∑为m×k阶的矩阵,V为k×k阶的矩阵,i为正整数,基于∑中前r行的非零元素,获得∑’,其中,
∑’为r×r阶的矩阵;
截取U的前r列元素,以获得矩阵U’,U’为m×r阶的矩阵;
将U’和∑’进行矩阵乘法,以得到W1;
截取V的前r列元素,以获得矩阵V’,V’为k×r阶的矩阵;
将V’转置,以获得W2。
需要说明的是,奇异值分解在统计中的主要应用为主成分分析(principalcomponent analysis,PCA),主成分分析作为一种数据分析方法,用来找出大量数据中所隐含的“模式”,它可以用在模式识别,数据压缩等方面,作用是把数据集映射到低维空间中去。数据集的特征值(∑)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量组成的空间即为降维后的空间。
由于W=W1×W2,对于任意矩阵A,A×W=A×(W1×W2),由于矩阵结合律,A×(W1×W2)=A×W1×W2,得到等式A×W=A×W×W2,该等式左右两边的计算结果相同。但是等式左边的计算次数是m×k,等式右边的计算次数是m×r+r×k。则可知第一全连接层的计算次数为m×r,第二全连接层的计算次数为r×k,一共为m×r+r×k。由于r的值是可以调节的,一般可以为32/64/128,当将r调整到足够小的时候,将fc6分成2层全连接层的做法可以降低神经网络模型的计算量。具体的,要使得m×r+r×k<m×k,即r<(m×k)/(m+k)。如r=32,m=100000,k=4096,则明显的,m×r+r×k=3331072,m×k=409600000,m×r+r×k远远小于m×k,则达到了降低神经网络模型的计算量的技术效果。
在一些可能的实现方式中,神经网络模型用于云端,目标性能包括云端对应的边缘计算产品的额定性能,神经网络模型的额定性能包括神经网络模型的内存使用量和计算量,边缘计算产品的额定性能包括边缘计算产品的内存空间容量和芯片计算能力。在本申请实施例中,r用于对目标全连接层进行简化,使得神经网络模型的计算量降低。具体的,目标全连接层的计算量为m×k,通过r对目标全连接层进行简化后,目标全连接层替换为串联的第一全连接层和第二全连接层,其中第一全连接层的计算量为m×r,第二全连接层的计算量为r×k,则可知,只要m×r+r×k<m×k,即r<(m×k)/(m+k),即可实现目标全连接层的计算量的降低,即神经网络模型的计算量降低。在
在一些可能的实现方式中,r通过以下公式获得:
r=ceiling(k/S,1),
其中,S=MAX(S1,S2),S1=M/(b×L),S2=t/(a×T),ceiling()表示舍入函数,MAX()表示求最大值函数,a表示边缘计算产品的芯片计算能力的负载系数,b表示边缘计算产品的内存空间容量的负载系数,M表示神经网络模型的内存使用量,t表示神经网络模型的计算量,L表示边缘计算产品的内存空间容量,T表示边缘计算产品的芯片计算能力。
在一些可能的实现方式中,M通过以下公式获得:
其中,D表示神经网络模型的卷积层数,l表示神经网络模型的第l个卷积层,Cl表示第l个卷积层输出的通道数,Ql表示第l个卷积层的卷积核的大小,B表示神经网络模型的数据位宽。
在一些可能的实现方式中,t通过以下公式获得:
其中,Ml表示第l个卷积层的内存使用量。
在一些可能的实现方式中,神经网络神经网络模型根据基于视觉几何组网络VGG的训练而获得。
在本申请实施例中,若该边缘计算产品能够提供的内存空间或芯片算力不足以运行该神经网络模型,则需要首先确定该边缘计算产品的可用性能和该神经网络模型的性能需求的差距,在本申请实施例中,可以确定二者的比率,并根据该比率确定简化参数r,根据该简化参数r对神经网络模型进行简化,以使得更新后的神经网络模型的计算量跟原来的神经网络模型相比,其性能需求按照特定比例缩小,使得该边缘计算产品能够提供的内存空间或芯片算力足以运行该更新后的神经网络模型。
在一些可能的实现方式中,该方法还包括:
设神经网络模型的目标卷积层的卷积核大小为P×P,将目标卷积层分成2层卷积层,分别为第一卷积层和第二卷积层,其中,第一卷积层的卷积核大小为P×E,第二卷积层用于接收第一卷积层的输出数据,且第二卷积层的卷积核大小为E×P,其中E为正整数,E<1/2×P。
在一些可能的实现方式中,除了将全连接层分成两层全连接层之外,还可以将目标卷积层分成2层卷积层,使得2层卷积层的计算量少于目标卷积层的计算量,进一步缩减原来的神经网络模型的计算量。
在一些可能的实现方式中,设神经网络模型的目标卷积层的卷积核大小为P×P,卷积层具有f个卷积核,分别为B_i,i=1,2,…,f,其中每个卷积核的矩阵大小为P×P,方法还包括:
将f个卷积核中的每个卷积核的矩阵分解为B1_i和B2_i,其中,B_i=B1_i·B2_i,B1_i为P×E阶矩阵,B2_i为E×P阶矩阵。
在一些可能的实现方式中,E等于1。
在一些可能的实现方式中,除了将全连接层分成两层全连接层之外,还可以将目标卷积层分成2层卷积层,使得2层卷积层的计算量少于目标卷积层的计算量,进一步缩减原来的神经网络模型的计算量,以下进行详细描述。
本申请第二方面提供了一种服务器,包括:
存储器和至少一个处理器。
存储器用于存储计算机可读指令。
至少一个处理器用于执行存储器中的计算机可读指令从而执行以下操作:
获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵。
根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k)。
根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵。
采用更新后的神经网络模型进行数据处理。
在一些可能的实现方式中,根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,包括:
根据r确定W1和W2。
基于r和W1构建第一全连接层,且基于k和W2构建第二全连接层。
在一些可能的实现方式中,根据r确定W1和W2,包括:
对W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),U为m×m阶的矩阵,∑为m×k阶的矩阵,V为k×k阶的矩阵,i为正整数。
基于∑中前r行的非零元素,获得∑’,其中,
∑’为r×r阶的矩阵。
截取U的前r列元素,以获得矩阵U’,U’为m×r阶的矩阵。
将U’和∑’进行矩阵乘法,以得到W1。
截取V的前r列元素,以获得矩阵V’,V’为k×r阶的矩阵。
将V’转置,以获得W2。
在一些可能的实现方式中,神经网络模型用于云端,目标性能包括云端对应的边缘计算产品的额定性能。
在一些可能的实现方式中,神经网络模型的额定性能包括神经网络模型的内存使用量和计算量,边缘计算产品的额定性能包括边缘计算产品的内存空间容量和芯片计算能力。
在一些可能的实现方式中,r通过以下公式获得:
r=ceiling(k/S,1),
其中,S=MAX(S1,S2),S1=M/(b×L),S2=t/(a×T),ceiling()表示舍入函数,MAX()表示求最大值函数,a表示边缘计算产品的芯片计算能力的负载系数,b表示边缘计算产品的内存空间容量的负载系数,M表示神经网络模型的内存使用量,t表示神经网络模型的计算量,L表示边缘计算产品的内存空间容量,T表示边缘计算产品的芯片计算能力。
在一些可能的实现方式中,M通过以下公式获得:
其中,D表示神经网络模型的卷积层数,l表示神经网络模型的第l个卷积层,Cl表示第l个卷积层输出的通道数,Ql表示第l个卷积层的卷积核的大小,B表示神经网络模型的数据位宽。
在一些可能的实现方式中,t通过以下公式获得:
其中,Ml表示第l个卷积层的内存使用量。
在一些可能的实现方式中,神经网络神经网络模型根据基于视觉几何组网络VGG的训练而获得。
在一些可能的实现方式中,该方法还包括:
设神经网络模型的目标卷积层的卷积核大小为P×P,将目标卷积层分成2层卷积层,分别为第一卷积层和第二卷积层,其中,第一卷积层的卷积核大小为P×E,第二卷积层用于接收第一卷积层的输出数据,且第二卷积层的卷积核大小为E×P,其中E为正整数,E<1/2×P。
在一些可能的实现方式中,设神经网络模型的目标卷积层的卷积核大小为P×P,卷积层具有f个卷积核,分别为B_i,i=1,2,…,f,其中每个卷积核的矩阵大小为P×P,方法还包括:
将f个卷积核中的每个卷积核的矩阵分解为B1_i和B2_i,其中,B_i=B1_i·B2_i,B1_i为P×E阶矩阵,B2_i为E×P阶矩阵。
在一些可能的实现方式中,E等于1。
本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请实施例提供的技术方案中,通过获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵,然后根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k),接着根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵,最后采用更新后的神经网络模型进行数据处理,相比较根据目标性能重新训练神经网络模型,本申请所提供的技术方案省时省力,效率更高。
附图说明
图1-1为本申请实施例中数据处理系统的实施例示意图;
图1-2为本申请实施例中输入的待识别图片的示意图;
图1-3为本申请实施例中服务器的结构示意图;
图1-4为本申请实施例中一种边缘计算产品的实施例示意图;
图2-1为本申请实施例中一种数据处理方法;
图2-2为本申请实施例中VGG-16的网络结构示意图;
图3为本申请实施例中的一种服务器示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参考图1-1,本申请应用于数据处理系统1000,该系统包括服务器1100和边缘计算产品1200。
在本申请实施例中,服务器1100可以根据需要实现的功能对网络架构进行训练,得到相应的神经网络模型,然后简化该神经网络模型,并将简化后的神经网络模型部署在边缘计算产品1200中。在一些可能的实现方式中,“简化”指的是在保持几乎相同的功能下,将神经网络模型修改为计算量和内存需求较低的神经网络模型。需要说明的是,神经网络模型的要实现的功能可以包括图像识别、人脸识别、声音识别、棋牌游戏、数据分析等,此处不做限定。
以图像识别为例,服务器1100可以通过内置的图形处理器(graphics processingunit,GPU)根据输入的图片数据(如10万张)进行训练,得到具有图像识别功能的神经网络模型。
例如,经过训练后的神经网络模型可以具有这样的功能:识别图片中是否包含猫。在对神经网络模型进行训练的过程中,可以向服务器1100输入大量图片(如10万张)。这些图片可以包含猫,或不包含猫,以使得服务器1100可以通过内置的GPU对输入的图片对预设的网络架构进行训练,当训练完成后,得到具有“识别图片中是否包含猫”的功能的神经网络模型,则可以使用该神经网络模型对图片进行识别。如图1-2所示的图片(为输入的待识别图片的示意图),神经网络模型对该图片进行判断,确定该图片是否包含猫。显然地,该图片是包含猫的,如果神经网络模型的输出结果是“包含”,则本次判断结果是正确的,否则是错误的。
在一些可能的实现方式中,除了GPU,还可以通过其他类型的处理器训练神经网络模型,此处不做限定。
请参考图1-3,为本申请实施例提供的服务器1100的结构示意图。该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本申请实施例中,边缘计算产品1200可以为移动终端(如手机)、计算棒、人脸识别门禁机或声音识别机器,此处不做限定。
需要说明的是,边缘计算产品1200是指靠近物或数据源头一侧设备,用于通过网络连接服务器1100,具备计算、存储、应用核心能力,就近提供最近端服务。由于边缘计算产品1200的应用程序在边缘侧发起,可以产生更快的网络服务响应,因此更易满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。
请参考图1-4,本申请实施例提供了一种边缘计算产品1200,该边缘计算产品1200可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备。
该边缘计算产品1200的内部结构可以包括:射频(radio frequency,RF)电路1210、存储器1220、输入单元1230、显示单元1240、传感器1250、音频电路1260、无线保真(wireless fidelity,WiFi)模块1270、处理器1280、以及电源1290等部件。本领域技术人员可以理解,图1-4中示出的结构并不构成限定,该边缘计算产品1200可以包括比图1-4所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置。
神经网络模型占用内存较大,运行神经网络模型是的计算能力要求较高,边缘计算产品的内存较小,计算能力较弱,若想要在边缘计算产品上部署神经网络模型,需要针对该边缘计算产品的性能对重新训练神经网络模型,这样做费时费力,效率较低。
为此,本申请提供了一种数据处理方法,通过获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵,然后根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k),接着根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵,最后采用更新后的神经网络模型进行数据处理,相比较根据目标性能重新训练神经网络模型,本申请所提供的技术方案省时省力,效率更高。
有鉴于此,请参考图2-1,本申请提供了一种数据处理方法,该方法包括:
201、获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵。
在本申请实施例中,神经网络模型是基于神经网络的技术而产生的模型。所谓神经网络,是指受到人脑功能的启发,通过大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。
需要说明的是,神经网络网络的生成,通常需要在服务器上预先设置一个网络结构,然后根据需要实现的功能,往该网络结构输入大量的训练数据,在训练过程中对该网络结构的模型数据进行调整,最终得到神经网络模型。例如阿尔法围棋(AlphaGo),是通过多层的神经网络进行训练获得的神经网络模型的一款围棋程序。
需要说明的是,神经网络模型可以为多种结构,包括谷歌网络模型(googlenet)、视觉几何组网络模型(visual geometry group network,VGG)等。其中VGG是一种卷积神经网络(convolutional neural networks,CNN),包括VGG-16或VGG-19。CNN是通过仿造生物的视知觉(visual perception)机制所构建的,对于像素和音频进行学习有稳定的效果,且对数据没有额外的特征工程要求。
以VGG-16为例,如图2-2(为VGG-16的网络结构示意图)所示,VGG-16包括输入层,用于输入图片的数据(data)、多个卷积层(cony_1_1、cony_1_2、……,每个卷积层包括激活函数relu,分别为relu1_1、relu1_2、……)、多个池化层(分别为pool1、pool2、……)、多个全连接层(分别为fc6、fc7和fc8,全连接层或包括激活函数relu和drop函数)和输出层(prob)。在一些可能的实现方式中,可以往VGG-16中输入图片数据(如10万图片),以使得VGG-16对输入的图片数据进行训练,得到具有需要的功能的神经网络模型。在一些可能的实现方式中,该神经网络模型可以是服务器训练得到的,也可以获取现成的神经网络模型,此处不做限定。
在本申请实施例中,当获得神经网络模型后,该神经网络模型包括模型数据,模型数据为该神经网络模型的各种参数,对于该神经网络模型具备某种功能的起到主要作用。其中,模型数据可以包括结构数据和权值数据。结构数据表征整个神经网络每一层处理单元的种类和参数,比如全连接层的输出参数,卷积层的卷积核的大小,卷积核数目等;而权值数据表征神经网络模型的每一层数据处理的方式和数据流动的方式,如全连接层的权值数据。
在以VGG-16为网络架构进行训练得到的神经网络模型中,其结构数据保存在对应的文件中为:VGG_ILSVRC_16_layers_deploy.prototxt;而权值数据保存在对应的文件中为:VGG_ILSVRC_16_layers.caffemodel。
需要说明的是,VGG-16包括输入层、卷积层、池化层、全连接层和输出层,在本申请实施例中主要通过对全连接层和卷积层的简化,使得到更新后的神经网络模型,该更新后的神经网络模型可以适应边缘计算产品。
以全连接层为例,以VGG-16为网络架构的神经网络模型具有多个全连接层,在本申请实施例中,可以对任意一个全连接层进行简化,如fc6,为该神经网络模型的第6层。
具体的,以下为在该神经网络模型中fc6的代码为:
其中,name”fc6”指示为全连接层的名为”fc6”,其中“6”表征全连接层为在该神经网络模型中的第6层,“fc”表征全连接层(fully connected layers,FC);bottom:”pool5”表征该全连接层的输入数据的来源,即该神经网络模型的第5层,其中“pool”表征池化层;top:”fc6”表征全连接层的输出数据为名为”fc6”的数据;inner_prodect_param{num_output:4096}表征该全连接层的输出参数k为4096。
需要说明的是,k用于指示当fc6接收输入数据后,对输入数据进行处理,得到k个数值,作为输出结果。具体的,在本申请实施例中,当接收到输入数据后,可以根据k在相关的文件(VGG_ILSVRC_16_layers.caffemodel)中进行索引或查找,得到与k对应的权值数据W。需要说明的是,W为m×k阶的矩阵,用于接收输入数据为m张图片后,通过W对该m张图片进行处理,使用W对m张图片进行计算的次数为m×k,例如,m=100000,k=4096,则m×k=409600000。
在本申请实施例中,可以根据输出参数k,在存储的相关文件中进行索引(如VGG-16中的VGG_ILSVRC_16_layers.caffemodel),得到目标全连接层的权值数据W,W为m×k阶的矩阵。
202、根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k)。
在本申请实施例中,r用于对目标全连接层进行简化,使得神经网络模型的计算量降低。具体的,目标全连接层的计算量为m×k,通过r对目标全连接层进行简化后,目标全连接层替换为串联的第一全连接层和第二全连接层,其中第一全连接层的计算量为m×r,第二全连接层的计算量为r×k,则可知,只要m×r+r×k<m×k,即r<(m×k)/(m+k),即可实现目标全连接层的计算量的降低,即神经网络模型的计算量降低。在本申请实施例中,可以通过确定简化参数r控制更新后的神经网络模型的计算量。
需要说明的是,神经网络模型用于云端,目标性能为云端对应的边缘计算产品的额定性能。因此,在本申请实施例中,可以根据目标性能和神经网络模型的额定性能确定简化参数r,使得更新后的神经网络模型可以部署在边缘计算产品上。需要说明的是,神经网络模型的额定性能包括神经网络模型的内存使用量和计算量,边缘计算产品的额定性能包括边缘计算产品的内存空间容量和芯片计算能力。
具体的,在本申请实施例中,可以首先获取神经网络模型的性能需求,在确定边缘计算产品的可用性能,确定二者之间的比率,根据这个比率确定简化参数r。在本申请实施例中,神经网络模型的性能需求可以为运行该神经网络模型的内存使用量和计算量。在一些可能的实现方式中,可以通过下述公式,对运行神经网络模型的内存使用量进行估算:
其中,M表示神经网络模型的内存使用量,D表示神经网络模型的卷积层数,l表示神经网络模型的第l个卷积层,Cl表示第l个卷积层输出的通道数,Ql表示第l个卷积层的卷积核的大小,B表示神经网络模型的数据位宽。
例如,输入数据为224×224×3的图像,即像素为224×224的图像,其中“×3”指的是RGB中的红(R)、绿(G)、蓝(B)通道各一张。输出数据(top)为224×224×64,即3张224×224的图像各自进行64个不相同的卷积核的卷积运算,其中,卷积核的大小(kernel_size)为3×3,假设数据位宽B为2bytes,则可以计算得到单次计算时,所需要的内存使用量:
M≈3×3×3×64×2(Bytes)=3456(Bytes)
然后,可以通过下述公式,估算该神经网络模型的计算量:
其中,t表示神经网络模型的计算量,Ml表示第l个卷积层的内存使用量。
以VGG-16为网络结构的神经网络模型为例,输入图像的数据为224×224×3阶的矩阵,输出数据为224×224×64阶的矩阵,卷积核大小3×3,则可以计算该神经网络模型的计算量为:
t≈224×224×3×3×5×64≈1.7×10^8
通过上述计算,则可以确定运行神经网络模型的内存使用量和计算量。
需要说明的是,由于更新后的神经网络模型需要同时满足边缘计算产品的性能,使得该边缘计算产品可以运行更新后的神经网络模型,所以需要同时考虑神经网络模型的内存使用量和计算量,然后通过确定简化参数r,使得更新后的神经网络模型可以被该边缘计算产品运行。
在一些可能的实现方式中,该边缘计算产品的可用性能包括内存空间(闪存)和芯片算力。具体的,设定该边缘计算产品的内存空间容量为L,一般可以通过查询系统文件或驱动文件可包含相关数据获得,例如华为的mate 20 pro手机的内存空间为6GB。设定边缘计算产品的芯片算力为T,一般系统文件或驱动文件中有包含相关数据,例如华为的昇腾310芯片的芯片算力为16TFLOPS/int8。
需要说明的是,一般而言,边缘计算产品的性能不会全部为该神经网络模型服务,而是只会提供一部分的性能。如芯片算力,可以提供的百分比为0.2%、0.3%、……、1%,在此称为芯片算力负载系数a,取值为{0.002,0.003,…,0.01}。如内存空间,可以提供的百分比为20%、30%、40%、50%、60%,称为内存空间负载系数b,取值为{0.2,0.3,0.4,0.5,0.6}。如该边缘计算产品的芯片算力负载系数a=0.01,内存空间负载系数b=0.6,则该边缘计算产品能够提供的内存空间和芯片算力分别为a×L=0.01×L和b×T=0.6×T。
当获取了神经网络模型的性能需求和边缘计算产品的可用性能后,则可以判断运行神经网络模型的内存使用量M是否大于该边缘计算产品能够提供的内存空间,即判断以下不等式是否成立:
M>b×L
t>a×T
若上述不等式至少一个成立,则视为该边缘计算产品能够提供的内存空间或芯片算力不足以运行该神经网络模型,则需要进行简化。若同时不成立,则视为该边缘计算产品能够提供的内存空间和芯片算力足够运行该神经网络模型,则不需要进行简化。
在本申请实施例中,若该边缘计算产品能够提供的内存空间或芯片算力不足以运行该神经网络模型,则需要首先确定该边缘计算产品的可用性能和该神经网络模型的性能需求的差距,在本申请实施例中,可以确定二者的比率,并根据该比率确定简化参数r,根据该简化参数r对神经网络模型进行简化,以使得更新后的神经网络模型的计算量跟原来的神经网络模型相比,其性能需求按照特定比例缩小,使得该边缘计算产品能够提供的内存空间或芯片算力足以运行该更新后的神经网络模型。
设:
S1=m/(b×L)
S2=t/(a×T)
即运行该神经网络模型的内存使用量为该边缘计算产品的内存空间的S1倍,该运行神经网络模型的计算量为该边缘计算产品的芯片算力的S2倍,由于必须使得该边缘计算产品能够提供的内存空间和芯片算力要同时满足简化后的神经网络模型的需求,则可以取S1和S2之间的较大值,即令S=MAX(S1,S2),MAX()表示求最大值函数,最后,令r=ceiling(k/S,1),ceiling()表示舍入函数,那么,可以认为该神经网络模型的性能需求需要缩小为原来(k)的1/S倍以下,得到更新后的神经网络模型,才能使得该边缘计算产品可以运行该更新后的神经网络模型。则确定简化参数r≤k×1/S,由于r一般可以取2、4、8、16、32、64、128…,则根据上述不等式取r的最大值,作为简化参数r。
例如,通过计算计算得到S=100,即将神经网络模型的性能需求应当缩小到原来的1/100以下,而k=4096,则得到r≤k/S=4096/100=40.96,则可以取简化参数r=32。
203、根据r确定W1和W2,基于r和W1构建第一全连接层,且基于k和W2构建第二全连接层,以获得更新后的神经网络模型。
在本申请实施例中,简化参数r用于对权值数据W进行处理,使得权值数据W分成两个小矩阵,分别为W1和W2,其中W=W1×W2,W1为m×r阶的矩阵,W2为r×k阶的矩阵,然后使fc6分成2层全连接层,分别为第一全连接层和第二全连接层,其中第一全连接层的输出参数为r,使用W1作为权值数据,第二全连接层的输出参数为k,使用W2作为权值数据。
另外,需要说明的是,当该神经网络模型接收到输入数据A(如m张图片数据),通过第一全连接层对输入数据进行处理,即计算矩阵A×W1,得到的输出结果,使得第二全连接层对上述输出结果作为输入数据进行处理,即A×W×W2。由于W=W1×W2,对于任意矩阵A,A×W=A×(W1×W2),由于矩阵结合律,A×(W1×W2)=A×W1×W2,得到等式A×W=A×W×W2,该等式左右两边的计算结果相同。但是等式左边的计算次数是m×k,等式右边的计算次数是m×r+r×k。则可知第一全连接层的计算次数为m×r,第二全连接层的计算次数为r×k,一共为m×r+r×k。由于r的值是可以调节的,一般可以为32/64/128,当将r调整到足够小的时候,将fc6分成2层全连接层的做法可以降低神经网络模型的计算量。具体的,要使得m×r+r×k<m×k,即r<(m×k)/(m+k)。如r=32,m=100000,k=4096,则明显的,m×r+r×k=3331072,m×k=409600000,m×r+r×k远远小于m×k,则达到了降低神经网络模型的计算量的技术效果。
在本申请实施例中,可以根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵。
需要说明的是,更新后的神经网络模型的fc6变换为第一全连接层fc6_L和第二全连接层fc6_U,可知,fc6_L和fc6_U的计算量分别是m×r和r×k,一共为m×r+r×k,则原来的神经网络模型的计算量为m×k。若m=100000,r=32,k=4096,则显然的,m×r+r×k远远小于m×k,甚至m×r+r×k远远小于m×k的1/100,即1/S。
具体的,若简化参数r=32,k=4096,则可以将fc_6的代码分成fc6_L和fc6_U:
/>
以上fc6_L和fc6_U均为全连接层,其中,fc6_L层的数据来源于pool5层,fc6_U的数据来源于fc6_L层。
通过上述的变换后,将大矩阵转换为两个小矩阵的计算,如pool5层输入的数据有100000个数据,进行操作数为4096的操作,则得到一个100000×4096阶的矩阵。当进行上述处理后,可以得到一个100000×32阶的矩阵和一个32×4096阶的矩阵。显然地,100000×4096约为100000×32与32×4096之和的123倍,因此其计算量约缩小为原来的1/123,即更新后的神经网络模型的fc6_L和fc6_U的计算量之和小于原来的神经网络模型的fc6的计算量的1/100,若对该原来的神经网络模型的所有全连接层都进行相同的操作,得到的更新后的神经网络模型的总计算量将会缩小为原来的1/100以下,则边缘计算产品可以对该更新后的神经网络模型进行运行。
在本申请实施例中,可以根据r确定W1和W2,基于r和W1构建第一全连接层,且基于k和W2构建第二全连接层。
将fc6分成fc6_L和fc6_U后,需要确定fc6_L和fc6_U的权值数据。在本申请实施例中,可以将权值数据W分化为W1和W2,其中,W1为m×r阶的矩阵,W2为r×k阶的矩阵,以W1和W2分别作为第一全连接层和第二全连接层的权值数据。
在一些可能的实现方式中,可以通过下述方法确定W1和W2,设:
对W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),∑为m×k阶的矩阵,i为正整数;
U为m×m阶的矩阵:
V为k×k阶的矩阵:
基于∑中前r行的非零元素,获得∑’,其中,
∑’为r×r阶的矩阵;
截取U的前r列元素,以获得矩阵U’,U’为m×r阶的矩阵,将U’和∑’进行矩阵乘法,以得到W1;截取V的前r列元素,以获得矩阵V’,V’为k×r阶的矩阵,将V’转置,以获得W2。
需要说明的是,奇异值分解在统计中的主要应用为主成分分析(principalcomponent analysis,PCA),主成分分析作为一种数据分析方法,用来找出大量数据中所隐含的“模式”,它可以用在模式识别,数据压缩等方面,作用是把数据集映射到低维空间中去。数据集的特征值(∑)按照重要性排列,降维的过程就是舍弃不重要的特征向量的过程,而剩下的特征向量组成的空间即为降维后的空间。
因此,当输入任意矩阵A时,A以此通过fc6_U,得到输出数据,fc6_L以此作为输入数据进行处理,相当于A×(U’×S’)×V’T,显得的,由于矩阵的乘法结合律,得到的结果等于A×(U’×S’×V’)=A×W。
最后,以矩阵取代W,保存在相关文件(如VGG-16中的VGG_ILSVRC_16_layers.caffemode),并以U’×∑’作为fc6_U的权值数据W1,以V’T作为fc6_L的权值数据W2。
由此可知,将fc6分成fc6_L和fc6_U,并分别以W1和W2作为权值数据,对相同的输入数据进行处理,可以得到近似的计算结果,二者可以得到近乎相同的计算结果,但是其计算量大大减少。
在一些可能的实现方式中,当计算得到U’、S’和V’T后,可以将矩阵替代全连接层的网络模型权值W:
由于的矩阵元素个数为m×r+r×r+r×k个,相比较原来的W(m×k个矩阵元素),其数量大大减少,存储空间的要求也等比例地缩小。
在一些可能的实现方式中,还可以将目标全连接层分成多于2层,如通过简化参数r_1、r_2、…、r_j,将目标全连接层分成输出参数分别是r_1、r_2、…、r_j、k的j+1层全连接层,其权值数据分别为m×r_1、r_1×r_2、…、r_(j-1)×r_j、r_j×k阶的矩阵。如3层,相当于将其中1层全连接层再次分成2层,如将fc6_L分成fc6_L_1和fc6_L_2,其实现方式与上述相同,此处不做赘述。
在一些可能的实现方式中,除了将全连接层分成两层全连接层之外,还可以将目标卷积层分成2层卷积层,使得2层卷积层的计算量少于目标卷积层的计算量,进一步缩减原来的神经网络模型的计算量,以下进行详细描述。
204、将神经网络模型中的目标卷积层替换为串联的第一卷积层和第二卷积层。
在本申请实施例中,设神经网络模型的目标卷积层的卷积核大小为P×P,卷积核个数为f,将目标卷积层分成2层卷积层,分别为第一卷积层和第二卷积层,其中,第一卷积层的卷积核大小为P×E,第二卷积层用于接收第一卷积层的输出数据,且第二卷积层的卷积核大小为E×P,其中E为正整数,为了使得2层卷积层的总计算次数少于目标卷积层,需要满足P×E+E×P<P×P,即E<1/2×P。在本申请实施例中,可以将f个卷积核中的每个卷积核的矩阵分解为B1_i和B2_i,其中,B_i=B1_i×B2_i,B1_i为P×E阶的矩阵,B2_i为E×P阶的矩阵。
以VGG-16的卷积层Cony1_1的代码为例:
/>
需要说明的是,本申请实施例所描述的代码为在python软件中运行的代码,需要说明的是,除了python,还可以有其他软件可以运行,此处不做限定。
其中,name:”conv1_1”表征该层为卷积层(convolution,conv)的第1层;bottom:”data”表征该层的输入数据为原始数据data,如10万张图片;top:”conv1_1”表征该层的输出数据为conv1_1的数据;type:”convolution”表征层类型为卷积层;Convolution_param{num_output:64}表征该层的卷积核的数量,为64;kernel_size表征卷积核的大小,此处为3,即该卷积核的大小为3×3。
由上述代码可知,神经网络模型对输入数据通过64个卷积核分别进行卷积计算,每个卷积核均为3×3阶的矩阵的结构。若对64个卷积核进行缩减,会降低该神经网络模型的准确率,在本申请实施例中,可以对每个卷积核均为3×3的矩阵的结构进行简化。
设E等于1,则在本申请实施例中,可以将上述卷积层(conv1_1)的代码变换为:
/>
/>
通过上述变换,将64个卷积核中的任意一个大小为3×3的卷积核,转换为两个卷积核,其大小分别为3×1和1×3。
例如,其中一个卷积核为:
则可以将该卷积核转换为两个卷积核:
和(-1 -1 1)
其中,
然后将上述两个卷积核代入上述两层卷积层中,得到两个不同的卷积层,分别进行计算,分别经过3×1和1×3两个卷积核的计算,相当于经过了一个3×3的卷积核的计算,计算结果相同,且(3×1+1×3)/(3×3)=2/3,即其计算量缩小为原来的2/3。则可知,如果将一个5×5阶的矩阵的卷积核转换为5×1阶的矩阵和1×5阶的矩阵的两个卷积核,即其计算量缩小为原来的(5×1+1×5)/(5×5)=2/5,则原卷积核越大,其计算量缩小得越多。
由于矩阵的乘法结合律,因此对于任意一个矩阵A,以下等式均成立:
即通过上述简化后,在计算得到相同结果的前提下,计算量大大缩小。需要说明的是,由于计算量和内存使用量的是成正比的,因此只要缩小了计算量,则可以确定内存使用量以等比例缩小。
205、采用所述更新后的神经网络模型进行数据处理。
本申请实施例提供的技术方案中,通过获取神经网络模型的目标全连接层的输出参数k和简化参数r,根据r和k将目标全连接层分成2层全连接层,分别为第一全连接层和第二全连接层,其中,第一全连接层的输出参数为r,第二全连接层用于接收第一全连接层的输出数据,且第二全连接层的输出参数为k,以此得到计算量和内存需求较小的神经网络模型,相比较重新训练神经网络模型,本申请所提供的技术方案省时省力,效率更高。
请参考图3,本申请提供了一种服务器300,包括:
存储器301和至少一个处理器302;
存储器301用于存储计算机可读指令;
至少一个处理器302用于执行存储器301中的计算机可读指令从而执行以下操作:
获取神经网络模型的目标全连接层的输出参数k和权值数据W,W为m×k阶的矩阵;
根据目标性能和神经网络模型的额定性能确定简化参数r,其中,r<(m×k)/(m+k);
根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,第一全连接层的输出参数为r,第一全连接层的权值数据为W1,第二全连接层的输出参数为k,第二全连接层的权值数据为W2,第二全连接层接收第一全连接层的输出数据,W1为m×r阶的矩阵,W2为r×k阶的矩阵;
采用更新后的神经网络模型进行数据处理。
在一些可能的实现方式中,根据r和k将神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,包括:
根据r确定W1和W2;
基于r和W1构建第一全连接层,且基于k和W2构建第二全连接层。
在一些可能的实现方式中,根据r确定W1和W2,包括:
对W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),U为m×m阶的矩阵,∑为m×k阶的矩阵,V为k×k阶的矩阵,i为正整数;
基于∑中前r行的非零元素,获得∑’,其中,
∑’为r×r阶的矩阵;
截取U的前r列元素,以获得矩阵U’,U’为m×r阶的矩阵;
将U’和∑’进行矩阵乘法,以得到W1;
截取V的前r列元素,以获得矩阵V’,V’为k×r阶的矩阵;
将V’转置,以获得W2。
在一些可能的实现方式中,神经网络模型用于云端,目标性能包括云端对应的边缘计算产品的额定性能。
在一些可能的实现方式中,神经网络模型的额定性能包括神经网络模型的内存使用量和计算量,边缘计算产品的额定性能包括边缘计算产品的内存空间容量和芯片计算能力。
在一些可能的实现方式中,r通过以下公式获得:
r=ceiling(k/S,1),
其中,S=MAX(S1,S2),S1=M/(b×L),S2=t/(a×T),ceiling()表示舍入函数,MAX()表示求最大值函数,a表示边缘计算产品的芯片计算能力的负载系数,b表示边缘计算产品的内存空间容量的负载系数,M表示神经网络模型的内存使用量,t表示神经网络模型的计算量,L表示边缘计算产品的内存空间容量,T表示边缘计算产品的芯片计算能力。
在一些可能的实现方式中,M通过以下公式获得:
其中,D表示神经网络模型的卷积层数,l表示神经网络模型的第l个卷积层,Cl表示第l个卷积层输出的通道数,Ql表示第l个卷积层的卷积核的大小,B表示神经网络模型的数据位宽。
在一些可能的实现方式中,t通过以下公式获得:
其中,Ml表示第l个卷积层的内存使用量。/>
在一些可能的实现方式中,其特征在于,神经网络神经网络模型根据基于视觉几何组网络VGG的训练而获得。
需要说明的是,处理器302可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器302还可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器302可以是指一个处理器,也可以包括多个处理器。存储器301可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(英文:flash memory),硬盘(harddisk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。存储器301中存储有计算机可读指令,所述计算机可读指令包括至少一个软件模块。处理器302执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
获取神经网络模型的目标全连接层的输出参数k和权值数据W,所述W为m×k阶的矩阵;
根据目标性能和所述神经网络模型的额定性能确定简化参数r,其中,所述r<(m×k)/(m+k);
根据所述r和所述k将所述神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,所述第一全连接层的输出参数为所述r,所述第一全连接层的权值数据为W1,所述第二全连接层的输出参数为所述k,所述第二全连接层的权值数据为W2,所述第二全连接层接收所述第一全连接层的输出数据,所述W1为m×r阶的矩阵,所述W2为r×k阶的矩阵;
采用所述更新后的神经网络模型进行数据处理;
所述神经网络模型用于云端,所述目标性能包括所述云端对应的边缘计算产品的额定性能;
所述神经网络模型的额定性能包括所述神经网络模型的内存使用量和计算量,所述边缘计算产品的额定性能包括所述边缘计算产品的内存空间容量和芯片计算能力;
所述r通过以下公式获得:
r=ceiling(k/S,1),
其中,S=MAX(S1,S2),ceiling()表示舍入函数,MAX()表示求最大值函数,运行所述神经网络模型的内存使用量为所述边缘计算产品的内存空间的S1倍,运行所述神经网络模型的计算量为所述边缘计算产品的芯片算力的S2倍。
2.根据权利要求1所述的方法,其特征在于,所述根据所述r和所述k将所述神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,包括:
根据所述r确定所述W1和所述W2;
基于所述r和所述W1构建所述第一全连接层,且基于所述k和所述W2构建所述第二全连接层。
3.根据权利要求2所述的方法,其特征在于,所述根据所述r确定所述W1和所述W2,包括:
对所述W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),所述U为m×m阶的矩阵,所述∑为m×k阶的矩阵,所述V为k×k阶的矩阵,所述i为正整数;
基于所述∑中前r行的非零元素,获得∑’,其中,
所述∑’为r×r阶的矩阵;
截取所述U的前r列元素,以获得矩阵U’,所述U’为m×r阶的矩阵;
将所述U’和所述∑’进行矩阵乘法,以得到所述W1;
截取所述V的前r列元素,以获得矩阵V’,所述V’为k×r阶的矩阵;
将所述V’转置,以获得所述W2。
4.根据权利要求1所述的方法,其特征在于,
S1=M/(b×L),S2=t/(a×T),a表示所述边缘计算产品的芯片计算能力的负载系数,b表示所述边缘计算产品的内存空间容量的负载系数,M表示所述神经网络模型的内存使用量,t表示所述神经网络模型的计算量,L表示所述边缘计算产品的内存空间容量,T表示所述边缘计算产品的芯片计算能力。
5.根据权利要求4所述的方法,其特征在于,所述M通过以下公式获得:
其中,D表示所述神经网络模型的卷积层数,l表示所述神经网络模型的第l个卷积层,Cl表示所述第l个卷积层输出的通道数,Ql表示所述第l个卷积层的卷积核的大小,B表示所述神经网络模型的数据位宽。
6.根据权利要求5所述的方法,其特征在于,所述t通过以下公式获得:
其中,Ml表示所述第l个卷积层的内存使用量。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述神经网络模型基于视觉几何组网络VGG的训练而获得,所述VGG是一种卷积神经网络CNN。
8.一种服务器,其特征在于,包括:
存储器和至少一个处理器;
所述存储器用于存储计算机可读指令;
所述至少一个处理器用于执行所述存储器中的所述计算机可读指令从而执行以下操作:
获取神经网络模型的目标全连接层的输出参数k和权值数据W,所述W为m×k阶的矩阵;
根据目标性能和所述神经网络模型的额定性能确定简化参数r,其中,所述r<(m×k)/(m+k);
根据所述r和所述k将所述神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,以获得更新后的神经网络模型,其中,所述第一全连接层的输出参数为所述r,所述第一全连接层的权值数据为W1,所述第二全连接层的输出参数为所述k,所述第二全连接层的权值数据为W2,所述第二全连接层接收所述第一全连接层的输出数据,所述W1为m×r阶的矩阵,所述W2为r×k阶的矩阵;
采用所述更新后的神经网络模型进行数据处理;
所述神经网络模型用于云端,所述目标性能包括所述云端对应的边缘计算产品的额定性能;
所述神经网络模型的额定性能包括所述神经网络模型的内存使用量和计算量,所述边缘计算产品的额定性能包括所述边缘计算产品的内存空间容量和芯片计算能力;
所述r通过以下公式获得:
r=ceiling(k/S,1),
其中,S=MAX(S1,S2),ceiling()表示舍入函数,MAX()表示求最大值函数,运行所述神经网络模型的内存使用量为所述边缘计算产品的内存空间的S1倍,运行所述神经网络模型的计算量为所述边缘计算产品的芯片算力的S2倍。
9.根据权利要求8所述的服务器,其特征在于,所述根据所述r和所述k将所述神经网络模型中的目标全连接层替换为串联的第一全连接层和第二全连接层,包括:
根据所述r确定所述W1和所述W2;
基于所述r和所述W1构建所述第一全连接层,且基于所述k和所述W2构建所述第二全连接层。
10.根据权利要求9所述的服务器,其特征在于,所述根据所述r确定所述W1和所述W2,包括:
对所述W进行奇异值分解,以获得第一矩阵U,第二矩阵∑和第三矩阵V,其中,
w_i>w_(i+1),所述U为m×m阶的矩阵,所述∑为m×k阶的矩阵,所述V为k×k阶的矩阵,所述i为正整数;
基于所述∑中前r行的非零元素,获得∑’,其中,
所述∑’为r×r阶的矩阵;
截取所述U的前r列元素,以获得矩阵U’,所述U’为m×r阶的矩阵;
将所述U’和所述∑’进行矩阵乘法,以得到所述W1;
截取所述V的前r列元素,以获得矩阵V’,所述V’为k×r阶的矩阵;
将所述V’转置,以获得所述W2。
11.根据权利要求8所述的服务器,其特征在于,
S1=M/(b×L),S2=t/(a×T),a表示所述边缘计算产品的芯片计算能力的负载系数,b表示所述边缘计算产品的内存空间容量的负载系数,M表示所述神经网络模型的内存使用量,t表示所述神经网络模型的计算量,L表示所述边缘计算产品的内存空间容量,T表示所述边缘计算产品的芯片计算能力。
12.根据权利要求11所述的服务器,其特征在于,所述M通过以下公式获得:
其中,D表示所述神经网络模型的卷积层数,l表示所述神经网络模型的第l个卷积层,Cl表示所述第l个卷积层输出的通道数,Ql表示所述第l个卷积层的卷积核的大小,B表示所述神经网络模型的数据位宽。
13.根据权利要求12所述的服务器,其特征在于,所述t通过以下公式获得:
其中,Ml表示所述第l个卷积层的内存使用量。
14.根据权利要求8至11任一项所述的服务器,其特征在于,所述神经网络模型基于视觉几何组网络VGG的训练而获得,所述VGG是一种卷积神经网络CNN。
15.一种计算机可读介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/080688 WO2020199056A1 (zh) | 2019-03-30 | 2019-03-30 | 一种数据处理方法、服务器和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113168557A CN113168557A (zh) | 2021-07-23 |
CN113168557B true CN113168557B (zh) | 2024-04-30 |
Family
ID=72664853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980080301.0A Active CN113168557B (zh) | 2019-03-30 | 2019-03-30 | 一种数据处理方法、服务器和可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113168557B (zh) |
WO (1) | WO2020199056A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004157A (zh) * | 2015-01-22 | 2017-08-01 | 高通股份有限公司 | 模型压缩和微调 |
CN107967516A (zh) * | 2017-10-12 | 2018-04-27 | 中科视拓(北京)科技有限公司 | 一种基于迹范数约束的神经网络的加速与压缩方法 |
CN108875924A (zh) * | 2018-02-09 | 2018-11-23 | 北京旷视科技有限公司 | 基于神经网络的数据处理方法、装置、系统及存储介质 |
CN108898168A (zh) * | 2018-06-19 | 2018-11-27 | 清华大学 | 用于目标检测的卷积神经网络模型的压缩方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268947A (zh) * | 2016-12-30 | 2018-07-10 | 富士通株式会社 | 用于提高神经网络的处理速度的装置和方法及其应用 |
CN109471074B (zh) * | 2018-11-09 | 2023-04-21 | 西安电子科技大学 | 基于奇异值分解与一维cnn网络的雷达辐射源识别方法 |
-
2019
- 2019-03-30 CN CN201980080301.0A patent/CN113168557B/zh active Active
- 2019-03-30 WO PCT/CN2019/080688 patent/WO2020199056A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004157A (zh) * | 2015-01-22 | 2017-08-01 | 高通股份有限公司 | 模型压缩和微调 |
CN107967516A (zh) * | 2017-10-12 | 2018-04-27 | 中科视拓(北京)科技有限公司 | 一种基于迹范数约束的神经网络的加速与压缩方法 |
CN108875924A (zh) * | 2018-02-09 | 2018-11-23 | 北京旷视科技有限公司 | 基于神经网络的数据处理方法、装置、系统及存储介质 |
CN108898168A (zh) * | 2018-06-19 | 2018-11-27 | 清华大学 | 用于目标检测的卷积神经网络模型的压缩方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2020199056A1 (zh) | 2020-10-08 |
CN113168557A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055063B2 (en) | Systems and methods for deep learning processor | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
US11928577B2 (en) | System and method for parallelizing convolutional neural networks | |
US10262241B2 (en) | Method and apparatus for recognizing character string in image | |
KR20180060149A (ko) | 컨볼루션 처리 장치 및 방법 | |
US20190303757A1 (en) | Weight skipping deep learning accelerator | |
US11586903B2 (en) | Method and system of controlling computing operations based on early-stop in deep neural network | |
US11797855B2 (en) | System and method of accelerating execution of a neural network | |
US11531868B1 (en) | Input value cache for temporarily storing input values | |
US11663491B2 (en) | Allocation system, method and apparatus for machine learning, and computer device | |
US20200218777A1 (en) | Signal Processing Method and Apparatus | |
US20210019606A1 (en) | Cellular neural network integrated circuit having multiple convolution layers of duplicate weights | |
US20220188595A1 (en) | Dynamic matrix convolution with channel fusion | |
WO2022179588A1 (zh) | 一种数据编码方法以及相关设备 | |
WO2019001323A1 (zh) | 信号处理的系统和方法 | |
JP2022188301A (ja) | 情報処理装置、情報処理方法 | |
DE102022105808A1 (de) | Effiziente quantisierung für eine bereitstellung und ausführung von neuronalen netzen | |
CN114742783A (zh) | 基于神经网络模型的食品检测方法和装置 | |
CN113168557B (zh) | 一种数据处理方法、服务器和可读介质 | |
US20210019602A1 (en) | Using and training cellular neural network integrated circuit having multiple convolution layers of duplicate weights in performing artificial intelligence tasks | |
CN111160517A (zh) | 一种深度神经网络的卷积层量化方法及装置 | |
CN112183725B (zh) | 提供神经网络的方法、计算装置和计算机可读存储介质 | |
DE112020005140T5 (de) | Dreidimensionale faltung im prozessor eines neuronalen netzwerks | |
US11335045B2 (en) | Combining feature maps in an artificial intelligence semiconductor solution | |
US11195094B2 (en) | Neural network connection reduction |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |