CN111860824A - 一种数据处理方法及相关产品 - Google Patents
一种数据处理方法及相关产品 Download PDFInfo
- Publication number
- CN111860824A CN111860824A CN201910366764.5A CN201910366764A CN111860824A CN 111860824 A CN111860824 A CN 111860824A CN 201910366764 A CN201910366764 A CN 201910366764A CN 111860824 A CN111860824 A CN 111860824A
- Authority
- CN
- China
- Prior art keywords
- neural network
- function
- network model
- tensor
- transpose
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 230000006870 function Effects 0.000 claims abstract description 286
- 238000003062 neural network model Methods 0.000 claims abstract description 196
- 238000010801 machine learning Methods 0.000 claims abstract description 43
- 238000005457 optimization Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 41
- 238000009966 trimming Methods 0.000 claims description 19
- 238000007493 shaping process Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000015654 memory Effects 0.000 description 30
- 238000013473 artificial intelligence Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- WURBVZBTWMNKQT-UHFFFAOYSA-N 1-(4-chlorophenoxy)-3,3-dimethyl-1-(1,2,4-triazol-1-yl)butan-2-one Chemical compound C1=NC=NN1C(C(=O)C(C)(C)C)OC1=CC=C(Cl)C=C1 WURBVZBTWMNKQT-UHFFFAOYSA-N 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
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
本申请实施例公开了一种数据处理方法及相关产品,当神经网络模型中存在可以优化的结构时,根据函数的执行情况实现针对神经网络模型的优化,当接收到机器学习处理任务的请求时,调用优化后的神经网络模型可以减少冗余计算,继而提高神经网络模型的运算速度。
Description
技术领域
本申请涉及信息处理技术领域,尤其涉及一种数据处理方法及相关产品。
背景技术
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,这种网络由大量的节点(或称神经元)之间星湖连接构成,通过调整内部大量节点之间相互连接的关系,利用输入数据、权值产生输出数据模拟人脑的信息处理过程处理信息并生成模式识别之后的结果。
现有技术中,一般通过对神经网络模型的参数进行调整(例如,减少神经网络模型的神经元数量、对神经网络模型的权值数据进行剪枝等等),以降低神经网络模型的计算量,进而提高神经网络模型的运算速度,并不涉及如何根据神经网络模型中函数的执行情况对神经网络模型进行优化。
发明内容
本申请实施例提供一种数据处理方法及相关产品,可以优化神经网络模型,从而可以减少神经网络模型的冗余计算,提高神经网络模型的运算速度。
第一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取第一神经网络模型;
根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
第二方面,本申请实施例提供了一种数据处理装置,该装置包括用于执行上述第一方面的方法的单元。具体地,该装置可以包括:
获取单元,用于获取第一神经网络模型;
第一优化单元,用于根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
在其中一个可能的实现方式中,所述第一优化单元,具体用于:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
第三方面,本申请实施例提供了一种数据处理设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储支持数据处理设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第五方面,本申请实施例提供了一种计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种数据处理方法的示意流程图;
图2是本申请实施例提供的一种连续的存储空间的示意图;
图3是本申请另一实施例提供的一种数据处理方法的示意流程图;
图4A是本申请实施例提供的一种数据处理装置的结构示意图;
图4B是本申请实施例提供的另一种数据处理装置的结构示意图;
图5是本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了便于更好的理解本申请所描述的技术方案,下面先解释本申请实施例所涉及的技术术语:
张量(tensor):在本技术方案中,张量仅仅是对存储的一块数据的特征描述,张量记录了数据的形状、类型等信息。
本申请实施例中,张量应该理解为张量数据,可以包括神经网络模型中输入张量数据、输出张量数据,也可以包括特征张量数据,还可以包括权值张量数据等。
以谷歌人工智能深度学习框架(TensorFlow)为例,一般使用阶(rank),形状(shape)和维数(dimension number)来描述张量的维度信息,其关系可以表示为表1所示:
表1
如表1所示,张量A=4,其表示一个数。
如表1所示,张量A=[6,2],其表示二维矩阵,具体地,该矩阵为6行2列的矩阵。
reshape函数:也即,张量重塑函数,是指对张量的形状进行重新诠释。在实际应用中,reshape函数可以表示为:tf.reshape(tensor,shape,name=None),用于将tensor变换为参数shape的形式。在一种情形中,参数shape=[-1],表示将tensor展开成一个列表。在一种情形中,参数shape=[a,b,c,...,n],其中,a,b,c,...n均大于0的正整数,表示将tensor变换为多维矩阵。在一种情形中,参数shape=[a,-1,c,...,n],这里,b=-1,a,c,...,n均为大于0的正整数,表示tf根据tensor的原尺寸,自动计算b的值。
transpose函数:也即,张量转置函数,是指对张量进行转置。在实际应用中,transpose函数可以表示为:tf.transpose(a,perm=None,name=’transpose’),用于按照perm参数调换tensor的顺序。这里,perm参数为自然数列[1,2,3,...,n]的一个全排列,不同的全排列表示不同的transpose函数。
全排列:从n个不同元素中任意取m(m小于等于n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫做全排列。例如,1,2,3三个元素的全排列可以为:1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1。
数据预处理:就是将数据在人工智能处理器的相应存储区域上重新排列,利于人工智能处理器更快的处理数据,数据摆放有些基本的操作,这些基本操作统称为数据预处理。基本操作包括:维度转换,对齐,分段,数据类型转换。比如:有多张图片作为一块数据存在内存上,可以认为这块数据是四维的。图片个数是N,图片高是H,图片宽是W,图片的RGB三个通道是C,就有NCHW四个维度。因为人工智能处理器处理NHWC维度的数据更方便,所以需要将NCHW维度转换成NHWC维度。人工智能处理器的向量指令需要数据的地址是对齐大小的倍数,对齐大小是由人工智能处理器芯片本身决定的,比如32字节,如果最内维度(对应NHWC中的C维度)所占的字节数不是对齐大小的倍数的话需要补0补到对齐大小的倍数。分段操作是为了增加数据局部性,将优先处理的数据先移动到一起。对于数据类型转换,可以把一个高精度数据格式转换成低精度数据格式,比如4字节的浮点型转换成2字节的半精度浮点,以损失一定精度的代价来加快运算速度。
现有技术中,可以对神经网络模型的结构进行调整来减少神经网络模型的计算量。例如,将神经网络模型中不满足条件的权值数据进行剪枝,以优化神经网络的结构。可以理解的是,基于现有技术的技术现状,本领域的技术人员并不会想到根据神经网络模型中函数的执行情况对神经网络模型进行优化,以减少神经网络模型中的冗余计算,以达到提高神经网络模型的运算速度的目的。
基于此,下面结合图1所示的本申请实施例提供的一种数据处理方法的流程示意图,本技术方案是在数据预处理阶段如何对神经网络模型进行修整的,可以包括但不限于如下步骤:
步骤S100、获取第一神经网络模型。
本申请实施例中,“神经网络模型”也称模型,如“第一神经网络模型”、“第二神经网络模型”或“第三神经网络模型”,可以接收输入数据,并根据接收的输入数据和当前的模型参数生成预测输出。在实际应用中,预测输出可以包括图像检测输出结果、语义分析输出结果、图像分类输出结果等等。该神经网络模型可以包括深度学习神经网络模型(deepneural network,DNN)、卷积神经网络模型(Convolutional Neural Network,CNN)、极限学习机模型(extreme learning machine,ELM)或其他的神经网络模型等。
步骤S102、根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
如前所述,张量的维度信息可以包括张量的阶、张量的形状、张量的维数,等等。
具体实现中,所述根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,包括:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
在本技术方案中,第一张量对应的数据块与所述第二张量对应的数据块是同一数据块需满足的条件为:所述第一张量的最内维度(对应C方向)所占的字节数和所述第二张量的最内维度(对应C方向)所占的字节数均是16的倍数,且最内维度(对应C方向)所占的字节数小于等于256;或者所述第一张量的最内维度(对应C方向)所占的字节数和所述第二张量的最内维度(对应C方向)所占的字节数均是16的倍数,且第一张量除了最内维度(对应C方向)之外的其他维度以及第二张量除了最内维度(对应C方向)之外的其他维度的均为1;或者所述第一张量的最内维度(对应C方向)和所述第二张量的最内维度(对应C方向)均相同。
在本申请实施例中,张量对应的数据块存储在Host内存中。
可选的,张量对应的存储地址为一段连续的存储空间,例如,如图2所示的从I0-I15之间连续的16个比特位。可以理解的是,在实际应用中,每个数据块对应的存储空间均配置有对应的指针,通过获取指针,可以取出指针指示的地址中所存储的数据块的值。
具体实现中,对第一张量执行reshape函数之后,可以得到第二张量。当第一张量对应的数据块与第二张量对应的数据块为同一数据块时,这意味着,对第一张量执行reshape函数的过程中,reshape函数不需要任何计算,此时,将神经网络模型中第二张量对应的数据块的值直接赋值给第一张量,从而可以实现针对第一神经网络模型的优化,得到第二神经网络模型。可以理解的是,这一实现方式可以避免神经网络模型中的无用的reshape函数。
在实际应用中,接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
本申请实施例中,机器学习处理任务是指,神经网络模型通过获取学习能力,以完成某项任务。这里,机器学习处理任务可以包括图像识别,边缘检测,语义分析,等等。具体地,为了提高神经网络模型的实用性,不同的神经网络模型对应不同的机器学习处理任务。例如,深度学习神经网络模型对应的机器学习处理任务可以为图像分类,文本分类等;卷积神经网络模型对应的机器学习处理任务可以为图像识别,视频分类等;长短时记忆神经网络模型(Long Short Term Memory Network,LSTM)对应的机器学习处理任务可以为语音识别、图片描述、自然语言处理等。
在本申请实施例中,机器学习处理任务的请求可以为用户针对神经网络模型输入的执行指令。当数据处理设备在接收到机器学习处理任务的请求时,根据机器学习处理任务的类型获取对应的神经网络模型,并运行神经网络模型,继而可以得到针对机器学习处理任务的运行结果。需要说明的是,处理器(例如,通用处理器,人工智能处理器)运行的神经网络模型为经过修整后的神经网络模型。
在本申请实施例中,机器学习处理任务的运行结果是指,数据处理设备执行机器学习处理任务时的结果,可以包括但不限于:执行机器学习处理任务时,神经网络模型的精度;执行机器学习处理任务时,神经网络模型的运行时间等等。进一步可选的,数据处理设备可以输出该运行结果,例如,数据处理设备通过显示屏显示该运行结果。可以理解的是,由于对第一神经网络模型执行了上述优化操作,使得处理器在调用第二神经网络模型执行机器学习处理任务时,可以减少冗余计算。
实施本申请实施例,可以根据神经网络模型中的第一张量的维度信息与第二张量的维度信息对神经网络模型进行优化,当调用优化后的神经网络模型执行机器学习处理任务时,可以减少神经网络模型的冗余计算,继而提高神经网络模型的运算速度。
在其中一个可能的实现方式中,在步骤S102之后,还可以执行步骤S106。下面结合图3所示的本申请实施例提供的数据处理方法的流程示意图,具体说明在本申请实施例中是如何实现神经网络模型的优化的:
步骤S106、根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系。
在一种情形下,当第二神经网络模型中包含连续N个reshape函数时,对N个reshape函数进行合并,得到一个reshape函数。这里,N为大于等于2的正整数,如N=2。
以张量A=[A1,A2,A3,...,An]为例,当对张量A执行reshape1函数之后,得到张量B,其中,张量B=[B1,B2,B3,...,Bn]。与此同时,当对张量B执行reshape2函数之后,得到张量C,其中,张量C=[C1,C2,C3,...,Cn]。可以理解是,将reshape1函数与reshape2函数合并得到的reshape3函数的输入是A张量,输出为C张量。例如,A=[1,32,1,1],经过reshape1函数之后,变为B=[1,4,4,2],再经过reshape2函数之后,变为C=[16,2]。采用本申请描述的技术方案,对reshape1函数以及reshape2函数进行合并,可以得到reshape3函数,张量A在经过reshape3函数之后,直接从张量A=[1,32,1,1]变为张量C=[16,2]。可以理解的是,由于处理器(例如,通用处理器CPU、专用处理器人工智能处理器)在运行神经网络模型时,无需依次执行两次不同的reshape函数,而是只执行合并后的reshape函数,可以减少冗余计算,以达到提高神经网络模型的运算速度的目的。
在一种情形下,当第二神经网络模型中包含连续M个transpose函数,对M个transpose函数进行合并,得到一个transpose函数。这里,M为大于等于2的正整数,例如,M=2。
如前所述,transpose函数中的perm参数为自然数列[1,2,3,...,n]的一个全排列,不同的全排列表示不同的transpose函数。
具体地,所述连续M个transpose函数包括第一transpose函数和第二transpose函数;所述将所述连续M个transpose函数合并为一个transpose函数,包括:
确定所述第一transpose函数以及所述第二transpose函数各自对应的perm参数;
根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,其中,所述第一参数为合并后的transpose函数对应的perm参数。
具体地,所述根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,包括:
在确定所述第一参数时,根据以下公式来计算:
perm3[i]=perm1[perm2[i]]
其中,perm3表示所述第一参数,perm1表示所述第一transpose函数对应的perm参数,perm2表示所述第二transpose函数对应的perm参数。
这里,中括号[]表示取数组中的元素。
例如,第一transpose函数对应的perm参数为perm1=[1,2],第二transpose函数对应的perm参数为perm2=[2,1],当i=1时,perm3[1]=perm1[perm2[1]]=2。当i=2时,perm3[2]=perm1[perm2[2]]=1。从而可以得到合并后的transpose函数对应的perm参数perm3=[2,1]。进一步地,合并后的transpose函数在确定好的perm3参数下调换tensor的顺序。
为了便于理解,下面结合具体的实例进行阐述。例如,张量A=[1,4,3,2],经过transpose_1423函数之后,变为张量B=[1,2,4,3],再经过transpose_1243函数之后,变为张量C=[1,2,3,4]。采用本申请所描述的技术方案,对transpose_1423函数以及transpose_1243函数进行合并,可以得到transpose_1432函数,张量A在经过transpose_1432函数之后,直接从张量A=[1,4,3,2]变为张量C=[1,2,3,4]。由于处理器(例如,通用处理器CPU、专用处理器人工智能处理器)在运行神经网络模型时,无需依次执行两次不同的transpose函数,而是只执行合并后的transpose函数,可以减少冗余计算,以达到提高神经网络模型的运算速度的目的。
在另一种情形下,当第二神经网络模型中reshape函数与transpose函数等价,并且第二神经网络模型中的reshape函数与transpose函数相邻时,将transpose函数替换为reshape函数,或者,将transpose函数替换为reshape函数。
具体地,在确定所述第二神经网络模型中的reshape函数与transpose函数等价时,包括:
步骤1:根据所述transpose函数对应的perm参数以及自然数列确定至少一个公共子序列。
这里,自然数列是指数列[1,2,3,...,n]。可以理解的是,自然数列满足an=n。这里,n的取值由张量的维度信息确定,例如,张量的维度信息为张量的维数。例如,张量A=[A1,A2,A3,A4]时,表示张量A的维数为4-D维时,此时,n=4。在这种情况下,对应的自然数列为[1,2,3,4]。
本申请实施例中,一个给定序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果。其形式化定义如下:
给定一个序列X=<x1,x2,...,xn>,另一个序列Z=<Z1,Z2,...,Zk>满足如下条件时称为X的子序列,即存在一个严格递增的X的下标序列<i1,i2,...,ik>,对所有j=1,2,...,k,满足xij=Zj。例如:Z=<B,C,D,B>是X=<A,B,C,B,D,A,B>的子序列,对应的下标序列为<2,3,5,7>。给定两个序列X和Y,如果Z既是X的子序列,也是Y的子序列,称为Z是X和Y的公共子序列。例如:如果X=<A,B,C,B,D,A,B>,Y=<B,D,C,A,B,A>,那么序列<B,C,A>就是X和Y的公共子序列。可以理解的是,在transpose函数对应的perm参数不同的情况下,根据transpose函数对应的perm参数以及自然数列确定的公共子序列可能相同,也可能不同。进一步地,由于transpose函数对应的perm参数不同,根据transpose函数对应的perm参数以及自然数列确定的公共子序列的数量可以包括1个,也可以包括2个,等等。
步骤2:根据张量的维度信息以及第一公共子序列确定差集序列;其中,所述第一公共子序列为所述至少一个公共子序列中的其中一个公共子序列;其中,张量的维度信息可以包括张量的维数,也可以包括张量的形状。
如前所述,张量A=[A1,A2,A3,A4],第一公共子序列为[1,2,3],此时,这二者确定好的差集序列X=[4]。
步骤3:若所述差集序列中的每个元素X[i]满足A[X[i]]=1,则确定所述第一神经网络模型中的reshape函数与transpose函数等价。
如前所述,差集序列X=[4],由于差集序列中只有一个元素(i=1),也即X[1]=4,这意味着A[X[1]]=A[4],其对应的物理意义为:张量A在二维坐标系中的第4个位置的值。当A[4]=1,也即张量A在二维坐标系内第4个位置的值为1时,确定第一神经网络模型中的reshape函数与transpose函数等价。
当第二神经网络模型中的reshape函数与transpose函数等价,并且第二神经网络模型中的reshape函数与transpose函数相邻时,这里,reshape函数与transpose函数相邻的情形可以包括reshape函数与transpose函数相邻、transpose函数与reshape函数相邻。
当reshape函数与transpose函数相邻,或者,transpose函数与reshape函数相邻时,一种情形下,将transpose函数替换为reshape函数,此时,第二神经网络模型中包含连续两个reshape函数,可以将连续两个reshape函数进行合并,得到一个reshape函数。关于对连续两个reshape函数的合并的具体实现请参考前述描述,此处不多加赘述。
为了便于理解,下面结合具体的实例进行阐述。例如,张量A=[1,3,4,1],经过reshape1函数之后,变为张量B==[1,6,2,1],再经过transpose_1423函数之后,变为张量C=[1,1,6,2]。采用本申请描述的技术方案,将transpose_1423函数进行替换,得到合并后的reshape2函数,张量A在经过reshape2函数之后,直接从张量A=[1,3,4,1]变为张量C=[1,1,6,2]。又例如,张量A=[1,5,6,1],经过transpose_1243函数之后,变为张量B=[1,5,1,6],再经过reshape1函数之后,变为C=[1,6,5]。采用本申请描述的技术方案,可以直接通过reshape2函数将张量A=[1,5,6,1]变为张量C=[1,6,5]。
当reshape函数与transpose函数相邻,或者,transpose函数与reshape函数相邻时,在另一种情形下,将所述reshape函数替换为transpose函数,此时,第二神经网络模型中包含连续两个transpose函数,可以将连续两个transpose函数进行合并,得到一个transpose函数。关于对连续两个transpose函数的合并的具体实现请参考前述描述,此处不多加赘述。
需要说明的是,根据第二神经网络模型中的函数的位置关系对第二神经网络模型进行修整的过程中,可以执行其中的至少一个优化操作,例如,可以执行单一的reshape函数合并,或者,可以执行单一的transpose函数合并,或者,也可以执行reshape函数合并与transpose函数合并,等等。
那么,在这种情况下,处理器在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务,可以包括:
调用所述第三神经网络模型执行所述机器学习处理任务。关于数据处理设备调用第三神经网络模型执行机器学习处理任务的具体实现,请参考前述描述,此处不多加赘述。
在一个实际的应用场景中,以XX公司研发的神经网络模型为例,第二神经网络模型中包含大量的reshape函数和/或transpose函数相邻的情形,在第二神经网络模型未进行优化之前,数据处理设备在接收到机器学习处理任务请求时,通过调用第二神经网络模型,得到的运行结果为:该神经网络模型的运行时间为2s。当第二神经网络模型中包含大量的reshape函数和/或transpose函数相邻时,通过执行本申请描述的至少一种优化操作,可以得到第三神经网络模型。数据处理设备在接收到机器学习处理任务请求时,通过调用第三神经网络模型,得到的运行结果为:该神经网络模型的运行时间为200ms。很显然地,这大大提高了神经网络模型的运算速度。
实施本申请实施例,可以根据神经网络模型中函数的位置关系对神经网络模型进行优化,当调用优化后的神经网络模型执行机器学习处理任务时,可以减少神经网络模型的冗余计算,继而提高神经网络模型的运算速度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图1-图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图4A所示,是本申请实施例提供的一种数据处理装置40的结构示意图。该数据处理装置40至少可以包括:
获取单元400,用于获取第一神经网络模型;
第一优化单元402,用于根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
在其中一个可能的实现方式中,如图4B所示,该数据处理装置40还包括:
执行单元404,用于在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
在其中一个可能的实现方式中,数据处理装置400还可以包括:
第二优化处理单元406,用于在所述第一优化单元402根据第一张量和第二张量的形状对所述第一神经网络模型进行修整,得到第二神经网络模型之后,所述执行单元404在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务之前,根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系。
所述执行单元404,具体用于:
调用所述第三神经网络模型执行所述机器学习处理任务。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
如图5所示,是本申请实施例提供的一种数据处理设备的结构示意图,所述数据处理设备可以包括:处理器501、存储器502、通信总线503和通信接口504,处理器501通过所述通信总线连接所述存储器502和所述通信接口503。
处理器501可以是中央处理单元(Central Processing Unit,CPU),该处理器501还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器501也可以是任何常规的处理器等。
处理器501还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的数据处理方法的各个步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501还可以是通用处理器、数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件执行本申请方法实施例的数据处理方法。
存储器502可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)或其他存储器。本申请实施例中,存储器502用于存储数据以及各种软件程序,例如本申请实施例中根据函数的执行情况实现本申请实施例中数据处理方法的程序等。
可选的,在本申请实施例中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
通信接口504使用例如但不限于收发器一类的收发装置,来实现数据处理设备50与其他设备或通信网络之间的通信。例如,可以通过通信接口504获取神经网络模型。
可选地,该数据处理设备50还可以包括人工智能处理器505。人工智能处理器505可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。人工智能处理器505可以实现上述数据处理方法中涉及的一种或多种运算。例如,以神经网络处理器(networkprocessing unit,NPU)NPU为例,NPU的核心部分为运算电路,通过控制器控制运算电路提取存储器502中的矩阵数据并进行乘加运算。
在本申请实施例中,所述人工智能处理器505也称之为专用处理器,针对特定应用或者领域的处理器。例如:图形处理器(Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的专用处理器。又例如:神经网络处理器(NeuralProcessing Unit,缩写:NPU),是一种在人工智能领域的应用中针对矩阵乘法运算的专用处理器,采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
可选的,人工智能处理器可以是可重构体系结构的人工智能处理器。这里,可重构体系结构是指,如果某一人工智能处理器能够利用可重用的硬件资源,根据不同的应用需求,灵活的改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构,那么这一人工智能处理器就称为可重构的计算系统,其体系结构称为可重构的体系结构。
所述处理器501用于调用所述存储器中的数据和程序代码,执行:
获取第一神经网络模型;
根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
在其中一个可能的实现方式中,所述处理器501用于调用所述存储器中的数据和程序代码,还执行:
在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
在其中一个可能的实现方式中,处理器根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,可以包括:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
在其中一个可能的实现方式中,处理器根据第一张量和第二张量的形状对所述第一神经网络模型进行修整,得到第二神经网络模型之后,还可以包括:
根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系;
处理器调用所述第二神经网络模型执行所述机器学习处理任务,包括:
调用所述第三神经网络模型执行所述机器学习处理任务。
在其中一个可能的实现方式中,处理器根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,可以包括:
当所述第二神经网络模型中包含连续N个reshape函数时,将所述连续N个reshape函数合并为一个reshape函数;其中,N为大于等于2的正整数;
或者,
当所述第二神经网络模型中包含连续M个transpose函数时,将所述连续M个transpose函数合并为一个transpose函数;
或者,
当所述第二神经网络模型中的reshape函数与transpose函数等价,并且所述第二神经网络模型中的reshape函数与transpose函数相邻时,将所述transpose函数替换为所述reshape函数,或者,将所述reshape函数替换为所述transpose函数。
其中,所述连续M个transpose函数包括第一transpose函数和第二transpose函数;处理器将所述连续M个transpose函数合并为一个transpose函数,可以包括:
确定所述第一transpose函数以及所述第二transpose函数各自对应的perm参数;
根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,其中,所述第一参数为合并后的transpose函数对应的perm参数。
在其中一个可能的实现方式中,处理器根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,可以包括:
在确定所述第一参数时,根据以下公式来计算:
perm3[i]=perm1[perm2[i]]
其中,perm3表示所述第一参数,perm1表示所述第一transpose函数对应的perm参数,perm2表示所述第二transpose函数对应的perm参数。
在其中一个可能的实现方式中,处理器在确定所述第二神经网络模型中的reshape函数与transpose函数等价时,可以包括:
根据所述transpose函数对应的perm参数以及自然数列确定至少一个公共子序列;
根据张量的维度信息以及第一公共子序列确定差集序列;其中,所述第一公共子序列为所述至少一个公共子序列中的其中一个公共子序列;
若所述差集序列中的每个元素X[i]满足A[X[i]]=1,则确定所述第一神经网络模型中的reshape函数与transpose函数等价。
其存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
本发明实施例还提供了一种计算机存储介质,用于存储为上述图1-图3所示的数据处理设备所用的计算机软件指令,其包含用于执行上述方法实施例所涉及的程序。通过执行存储的程序,可以实现神经网络模型的优化,以减少冗余计算。
由上可见,本申请实施例提供一种数据处理方法及相关产品,当神经网络模型中存在可以优化的结构时,对其进行优化,可以减少神经网络模型的冗余计算,提供神经网络模型的运算速度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
进一步地,依据以下条款可更好地理解前述内容:
例如,条款A1,一种数据处理方法,所述方法包括:
获取第一神经网络模型;
根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
A2.根据A1所述的方法,所述方法还包括:
在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
A3.根据A1或A2所述的方法,所述根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,包括:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
A4.根据A1或A2所述的方法,所述根据第一张量和第二张量的形状对所述第一神经网络模型进行修整,得到第二神经网络模型之后,还包括:
根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系。
A5.根据A4所述的方法,所述根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,包括:
当所述第二神经网络模型中包含连续N个reshape函数时,将所述连续N个reshape函数合并为一个reshape函数;其中,N为大于等于2的正整数;
或者,
当所述第二神经网络模型中包含连续M个transpose函数时,将所述连续M个transpose函数合并为一个transpose函数;
或者,
当所述第二神经网络模型中的reshape函数与transpose函数等价,并且所述第二神经网络模型中的reshape函数与transpose函数相邻时,将所述transpose函数替换为所述reshape函数,或者,将所述reshape函数替换为所述transpose函数。
A6.根据A5所述的方法,所述连续M个transpose函数包括第一transpose函数和第二transpose函数;所述将所述连续M个transpose函数合并为一个transpose函数,包括:
确定所述第一transpose函数以及所述第二transpose函数各自对应的perm参数;
根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,其中,所述第一参数为合并后的transpose函数对应的perm参数。
A7.根据A6所述的方法,所述根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,包括:
在确定所述第一参数时,根据以下公式来计算:
perm3[i]=perm1[perm2[i]]
其中,perm3表示所述第一参数,perm1表示所述第一transpose函数对应的perm参数,perm2表示所述第二transpose函数对应的perm参数。
A8.根据A5所述的方法,在确定所述第二神经网络模型中的reshape函数与transpose函数等价时,包括:
根据所述transpose函数对应的perm参数以及自然数列确定至少一个公共子序列;
根据张量的维度信息以及第一公共子序列确定差集序列;其中,所述第一公共子序列为所述至少一个公共子序列中的其中一个公共子序列;
若所述差集序列中的每个元素X[i]满足A[X[i]]=1,则确定所述第一神经网络模型中的reshape函数与transpose函数等价。
B9.一种数据处理装置,所述装置包括:
获取单元,用于获取第一神经网络模型;
第一优化单元,用于根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
B10.根据B9所述的装置,所述装置还包括:
执行单元,用于在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
B11.根据B9或B10所述的装置,所述第一优化单元,具体用于:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
B12.根据B9或B10所述的装置,所述装置还包括第二优化单元;
所述第二优化单元,用于根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系。
B13.根据B12所述的装置,所述第二优化单元包括第一合并单元、第二合并单元以及替换单元中的至少一种;其中,
所述第一合并单元,用于当所述第二神经网络模型中包含连续N个reshape函数时,将所述连续N个reshape函数合并为一个reshape函数;其中,N为大于等于2的正整数;
所述第二合并单元,用于当所述第二神经网络模型中包含连续M个transpose函数时,将所述连续M个transpose函数合并为一个transpose函数;
所述替换单元,用于当所述第二神经网络模型中的reshape函数与transpose函数等价,并且所述第二神经网络模型中的reshape函数与transpose函数相邻时,将所述transpose函数替换为所述reshape函数,或者,将所述reshape函数替换为所述transpose函数。B14.根据B13所述的装置,所述连续M个transpose函数包括第一transpose函数和第二transpose函数;所述第二合并单元包括第一确定单元和第二确定单元;其中,
所述第一确定单元,用于确定所述第一transpose函数以及所述第二transpose函数各自对应的perm参数;
所述第二确定单元,用于根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,其中,所述第一参数为合并后的transpose函数对应的perm参数。
B15.根据B14所述的装置,所述第二确定单元具体用于:
在确定所述第一参数时,根据以下公式来计算:
perm3[i]=perm1[perm2[i]]
其中,perm3表示所述第一参数,perm1表示所述第一transpose函数对应的perm参数,perm2表示所述第二transpose函数对应的perm参数。
B16.根据B12所述的装置,所述装置还包括:函数等价确定单元;所述函数等价确定单元包括公共子序列确定单元、差集序列确定单元、处理单元;其中,
所述公共子序列确定单元,用于根据所述transpose函数对应的perm参数以及自然数列确定至少一个公共子序列;
所述差集序列确定单元,用于根据张量的维度信息以及第一公共子序列确定差集序列;其中,所述第一公共子序列为所述至少一个公共子序列中的其中一个公共子序列;
所述处理单元,用于在所述差集序列中的每个元素X[i]满足A[X[i]]=1时,确定所述第一神经网络模型中的reshape函数与transpose函数等价。
C1.一种数据处理设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储应用程序代码,所述处理器被配置用于调用所述程序代码,执行如权利要求A1-A8任一项所述的方法。
D1.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求A1-A8任一项所述的方法。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取第一神经网络模型;
根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
2.根据权利要求1所述的方法,其特征在于,还包括:
在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
3.根据权利要求1或2所述的方法,其特征在于,所述根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,包括:
当所述第一张量对应的数据块与所述第二张量对应的数据块为同一数据块时,将所述第二神经网络模型中所述第二张量对应的数据块的值赋值给为所述第一张量。
4.根据权利要求1或2所述的方法,其特征在于,所述根据第一张量和第二张量的形状对所述第一神经网络模型进行修整,得到第二神经网络模型之后,还包括:
根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,得到第三神经网络模型;其中,所述函数的位置关系包括reshape函数和/或transpose函数的位置关系。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二神经网络模型中函数的位置关系对所述第二神经网络模型进行修整,包括:
当所述第二神经网络模型中包含连续N个reshape函数时,将所述连续N个reshape函数合并为一个reshape函数;其中,N为大于等于2的正整数;
或者,
当所述第二神经网络模型中包含连续M个transpose函数时,将所述连续M个transpose函数合并为一个transpose函数;
或者,
当所述第二神经网络模型中的reshape函数与transpose函数等价,并且所述第二神经网络模型中的reshape函数与transpose函数相邻时,将所述transpose函数替换为所述reshape函数,或者,将所述reshape函数替换为所述transpose函数。
6.根据权利要求5所述的方法,其特征在于,所述连续M个transpose函数包括第一transpose函数和第二transpose函数;所述将所述连续M个transpose函数合并为一个transpose函数,包括:
确定所述第一transpose函数以及所述第二transpose函数各自对应的perm参数;
根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,其中,所述第一参数为合并后的transpose函数对应的perm参数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一transpose函数以及所述第二transpose函数各自对应的perm参数确定第一参数,包括:
在确定所述第一参数时,根据以下公式来计算:
perm3[i]=perm1[perm2[i]]
其中,perm3表示所述第一参数,perm1表示所述第一transpose函数对应的perm参数,perm2表示所述第二transpose函数对应的perm参数。
8.根据权利要求5所述的方法,其特征在于,在确定所述第二神经网络模型中的reshape函数与transpose函数等价时,包括:
根据所述transpose函数对应的perm参数以及自然数列确定至少一个公共子序列;
根据张量的维度信息以及第一公共子序列确定差集序列;其中,所述第一公共子序列为所述至少一个公共子序列中的其中一个公共子序列;
若所述差集序列中的每个元素X[i]满足A[X[i]]=1,则确定所述第一神经网络模型中的reshape函数与transpose函数等价。
9.一种数据处理装置,其特征在于,包括:
获取单元,用于获取第一神经网络模型;
第一优化单元,用于根据第一张量的维度信息和第二张量的维度信息对所述第一神经网络模型进行修整,得到第二神经网络模型;其中,所述第二张量为对所述第一张量执行reshape函数得到的张量。
10.根据权利要求9所述的装置,其特征在于,还包括:
执行单元,用于在接收到机器学习处理任务请求时,调用所述第二神经网络模型执行所述机器学习处理任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910366764.5A CN111860824A (zh) | 2019-04-30 | 2019-04-30 | 一种数据处理方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910366764.5A CN111860824A (zh) | 2019-04-30 | 2019-04-30 | 一种数据处理方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111860824A true CN111860824A (zh) | 2020-10-30 |
Family
ID=72966087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910366764.5A Pending CN111860824A (zh) | 2019-04-30 | 2019-04-30 | 一种数据处理方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111860824A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115762515A (zh) * | 2022-11-08 | 2023-03-07 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
WO2023040740A1 (zh) * | 2021-09-18 | 2023-03-23 | 华为技术有限公司 | 神经网络模型优化方法及相关设备 |
-
2019
- 2019-04-30 CN CN201910366764.5A patent/CN111860824A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023040740A1 (zh) * | 2021-09-18 | 2023-03-23 | 华为技术有限公司 | 神经网络模型优化方法及相关设备 |
CN115762515A (zh) * | 2022-11-08 | 2023-03-07 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
CN115762515B (zh) * | 2022-11-08 | 2023-12-01 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360819B2 (en) | Systems and methods for data management | |
US11568258B2 (en) | Operation method | |
EP4036724A1 (en) | Method for splitting neural network model by using multi-core processor, and related product | |
EP4036810A1 (en) | Neural network processing method and apparatus, computer device and storage medium | |
US20180260709A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
CN110659728A (zh) | 神经网络优化方法、装置、计算机设备及存储介质 | |
US11144823B1 (en) | Method and system for hierarchical weight-sparse convolution processing | |
CN113449857A (zh) | 一种数据处理方法和数据处理设备 | |
US11775832B2 (en) | Device and method for artificial neural network operation | |
CN111401538A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
US20210133854A1 (en) | Information processing method and terminal device | |
CN111401539A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111401511A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
JP7085600B2 (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
US20230067934A1 (en) | Action Recognition Method, Apparatus and Device, Storage Medium and Computer Program Product | |
CN111860824A (zh) | 一种数据处理方法及相关产品 | |
CN112130805A (zh) | 包括浮点加法器的芯片、设备及浮点运算的控制方法 | |
CN111401537A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
US10747845B2 (en) | System, method and apparatus for computationally efficient data manipulation | |
CN117725966A (zh) | 草图序列重建模型的训练方法、几何模型重建方法及设备 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
CN117786299A (zh) | 一种稀疏矩阵求解方法、系统、设备及介质 | |
CN111860825A (zh) | 一种数据处理方法及相关产品 | |
CN113570028A (zh) | 用于在神经网络中处理数据的静态生成的经编译表示 | |
CN116933864A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201030 |
|
RJ01 | Rejection of invention patent application after publication |