CN111242286A - 一种数据格式变换方法、装置及计算机可读存储介质 - Google Patents
一种数据格式变换方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111242286A CN111242286A CN202010035868.0A CN202010035868A CN111242286A CN 111242286 A CN111242286 A CN 111242286A CN 202010035868 A CN202010035868 A CN 202010035868A CN 111242286 A CN111242286 A CN 111242286A
- Authority
- CN
- China
- Prior art keywords
- data format
- format
- dimension
- neural network
- network 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.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013528 artificial neural network Methods 0.000 claims abstract description 113
- 230000009466 transformation Effects 0.000 claims abstract description 41
- 230000001131 transforming effect Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种数据格式变换方法、装置及计算机可读存储介质,该数据格式变换方法包括:采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;通过对应于差异属性的格式变换策略,对初始数据格式进行变换。通过本申请方案的实施,采用统一的格式描述来对输入至神经网络层的数据格式以及神经网络层所支持的数据格式进行描述,并基于两种格式之间的差异来对进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种数据格式变换方法、装置及计算机可读存储介质。
背景技术
人工神经网络或者基于人工神经网络的深度学习方法目前取得了巨大进展,已被成功地应用到图像处理、语言处理等多个领域。
在各种神经网络加速硬件中,当一个标准格式的数据经过某个神经网络层的加速计算之后,可能会成为一种非标准的数据格式,而这种非标准的数据格式可能无法被下一个神经网络层直接使用,这种情况下,就需要对格式进行变换。目前,在进行格式变换时,通常是针对几种特定格式之间进行变换,例如仅支持将格式A变换为格式B,然而在实际应用中,神经网络加速计算通常可能会针对不同层采用不同的格式,或神经网络层的输出格式会根据不同输入对应变化,则神经网络中所涉及到的格式类型较为繁杂,从而目前的格式变换方式在某些情况下则无法良好的实现格式变换,格式变换的局限性较强、适用性和有效性较差。
发明内容
本申请实施例提供了一种数据格式变换方法、装置及计算机可读存储介质,至少能够解决相关技术在神经网络加速计算中只能支持固定格式之间的格式变换,所导致的格式变换的局限性较强、适用性和有效性较差的问题。
本申请实施例第一方面提供了一种数据格式变换方法,包括:
采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式;其中,所述标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述;
在所述初始数据格式与所述有效数据格式不相符时,获取所述初始数据格式与所述有效数据格式的差异属性;
通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换。
本申请实施例第二方面提供了一种数据格式变换装置,包括:
描述模块,用于采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式;其中,所述标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述;
获取模块,用于在所述初始数据格式与所述有效数据格式不相符时,获取所述初始数据格式与所述有效数据格式的差异属性;
变换模块,用于通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的数据格式变换方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的数据格式变换方法中的各步骤。
由上可见,根据本申请方案所提供的数据格式变换方法、装置及计算机可读存储介质,该数据格式变换方法包括:采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;通过对应于差异属性的格式变换策略,对初始数据格式进行变换。通过本申请方案的实施,采用统一的格式描述来对输入至神经网络层的数据格式以及神经网络层所支持的数据格式进行描述,并基于两种格式之间的差异来对进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
附图说明
图1为本申请第一实施例提供的神经网络架构示意图;
图2为本申请第一实施例提供的数据格式变换方法的基本流程示意图;
图3为本申请第一实施例提供的另一种数据格式变换方法的流程示意图;
图4为本申请第二实施例提供的数据格式变换方法的细化流程示意图;
图5为本申请第三实施例提供的一种数据格式变换装置的程序模块示意图;
图6为本申请第三实施例提供的另一种数据格式变换装置的程序模块示意图;
图7为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工神经网络或者基于人工神经网络的深度学习方法已经越来越多地在各个方面展示了其优越性。神经网络计算的基本单位是神经元,通常将数个神经元组织为层,如图1所示为本实施例提供的神经网络架构示意图,图中的神经网络中包括三个神经网络层,其中,input layer为输入层,hidden layer为隐藏层,而output layer则为输出层。
在神经网络中,每一层的输入为上一层的输出,每一层的输入输出可以称之为张量(Tensor),张量可以简单地看作多维矩阵。在实际计算时,张量数据会按照一定的顺序被计算,比如遍历一个3x3x3的立方体矩阵,可以按照宽→高→深这样的顺序,也可以按照深→高→宽这样的顺序。同样地,由于内存地址通常是一维的,张量被存储时,也需要按照一定顺序展开。
在实际应用中,张量数据通常有两种标准的存储顺序,分别是NHWC和NCHW。其中N代表个数;H代表高;W代表宽;C代表深。在各种神经网络加速硬件中,为了加快计算速度,往往会采用非标准的数据存储顺序,如NVIDIA的NVDLA在计算过程中将NHWC中原始的维度C按照16个一组拆开成X个新的三维矩阵,然后重新组合成为NXHWC’,其中C’=16,C’*X=C。因此,在实际应用中可能会存在数种不同的数据存储顺序。
为了解决相关技术在神经网络加速计算中只能支持固定格式之间的格式变换,所导致的格式变换的局限性较强、适用性和有效性较差的缺陷,本申请第一实施例提供了一种数据格式变换方法,如图2为本实施例提供的数据格式变换方法的基本流程图,该数据格式变换方法包括以下的步骤:
步骤201、采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式。
具体的,本实施例的标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述。其中维度类型描述可以表达为Format,Format通常可以由大、小写字母组成,例如NHWC,四个字母各对应一种维度类型,而维度值描述可以表达为Shape,Shape可以由数字、逗号组成,元素个数与Format长度相等,例如(1,224,224,3),也即维度N的取值为1,维度H和W的取值均为224,而维度C的取值为3,那么最终可以将数据格式描述为NHWC(1,224,224,3)。
应当说明的是,当数据在神经网络中传递时,传递至某一神经网络层中的数据为经过在前的神经网络层的加速计算后所输出的数据,该数据可能会成为一种非标准模式,而与所传递至的神经网络层支持的数据格式不相符,而不能被该神经网络层直接使用,从而本实施例采用相同的格式描述方式,对所传递过来的数据的数据格式,以及当前神经网络层所支持的数据格式均进行统一描述,以为格式变换做准备。
在本实施例的一种可选的实施方式中,在采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式之前,还包括:获取目标数据的数据属性;基于数据属性,从目标神经网络层的可用数据格式集合中确定有效数据格式,其中,可用数据格式集合中包括多个可用数据格式。
具体的,在实际应用中,神经网络中的一个神经网络层可能支持多种不同的数据格式,从而在对所传递过来的数据进行格式转换时,存在多种不同的格式转换选择,然而,在所转换至的目标格式不同时,神经网络加速硬件的计算加速性能也对应有所不同,基于此,本实施例基于所传递过来的张量数据的数据属性(例如数据大小)来从当前神经网络层所有可用数据格式中,确定对应的可用数据格式,来作为本次格式转换所需转换至的有效数据格式,从而可以有针对性的进行格式转换选择,有利于神经网络加速硬件的计算加速性能的充分发挥。
在本实施例的一种可选的实施方式中,在采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式之前,还包括:获取目标神经网络层的网络层属性;基于网络层属性,从目标神经网络层的可用格式描述集合中确定标准格式描述,其中,可用格式描述集合中包括多个可用格式描述。
具体的,本实施例中在对数据格式进行描述时,所采用的格式定义也可以有多种,而采用不同格式所定义出的格式在进行格式转换时,格式转换操作的效率、准确性等性能指标可能会有所不同,基于此,本实施例基于数据当前所传递至的神经网络层的属性,从多种格式描述中确定出对应的可用格式描述,来作为本次进行格式描述的标准格式描述方式,从而可以有针对性的进行格式描述方式选择,可有效提升格式转换效率、准确性以及适用性。
在本实施例的一种可选的实施方式中,在采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式之前,还包括:当目标数据传递至目标神经网络层时,判断当前是否满足数据格式变换条件。
具体的,在实际应用中,为了使数据格式变换更为合理,充分保证数据变换与场景的适应性,避免盲目执行数据变换所导致的处理性能浪费和数据变换出错,本实施例在执行数据格式变换之前,首先需要进行触发条件判断,例如目标数据属性是否为预设属性的数据,目标神经网络层是否为预设类型的网络层,然后在确定当前满足数据格式变换条件时,执行采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式的步骤。
步骤202、在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性。
具体的,本实施例对所传递过来的数据的数据格式与当前神经网络层所支持的数据格式进行比对,若两种格式比对一致,则可直接对目标数据在当前神经网络层进行使用,而在两种格式比对不一致时,则需要进行格式转换。在本实施例中,进行格式转换时需要基于两种格式的差异来有针对性进行。
步骤203、通过对应于差异属性的格式变换策略,对初始数据格式进行变换。
具体的,在格式间的差异不同时,所需要采用的格式变换策略也会有所不同。在本实施例中,基于两种格式之间的差异来对对应确定格式变换策略,然后基于所确定的格式变换策略进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
在本实施例的一种可选的实施方式中,在差异属性为维度类型排列顺序不一致而相同维度类型所对应的维度值一致时,通过对应于差异属性的格式变换策略,对初始数据格式进行变换包括:按照有效数据格式的维度类型排列顺序,对初始数据格式的维度类型排列顺序进行移动,并将各维度类型对应的维度值进行适应性移动。
具体的,当输入至神经网络层的数据的数据格式中Format与神经网络层所支持的格式的Format不同,但每个维度对应的Shape值相同的情况下,执行维度移动操作。例如输入数据的数据格式为NHWC(1,224,224,3),而当前神经网络层所支持的数据格式为NCHW(1,3,224,224)时,可以看出虽然Format发生了变化,但其对应的Shape值并没有发生变化,在这种情况下,可以使用维度移动操作,移动发生变化的维度,也即将输入数据的数据格式中的维度C和其对应的维度值向左移动两个单位,而移动至维度N和维度H之间,而变换为当前神经网络层所支持的数据格式。
在本实施例的一种可选的实施方式中,在差异属性为维度类型排列顺序一致而相同维度类型所对应的维度值不一致时,通过对应于差异属性的格式变换策略,对初始数据格式进行变换包括:在初始数据格式中的目标维度值小于有效数据格式中对应维度值时,按照对应维度值与目标维度值的差值对目标维度值进行填充;在初始数据格式中的目标维度值大于有效数据格式中对应维度值时,按照目标维度值与对应维度值的差值对目标维度值进行截断。
具体的,当输入至神经网络层的数据的数据格式中Format与神经网络层所支持的格式的Format相同,但Format中各维度所对应的Shape值不同时,则执行填充或截断操作。
其中,如果神经网络层所支持的格式中的Shape值大于输入数据的数据格式中对应的Shape值,则发生填充,填充值为Padding值,例如输入数据的数据格式为NHWC(1,224,224,3),而当前神经网络层所支持的数据格式为NHWC(1,256,256,3)时,由于维度H和W所对应的维度值256大于输入数据的数据格式中相应维度值224,则需要对输入数据的数据格式中相应维度值进行填充,也即采用填充操作分别在H和W维度上添加长度为32的填充数据“0”。而如果神经网络层所支持的格式中的Shape值小于输入数据的数据格式中对应的Shape值,则发生截断,丢弃输入数据的数据格式中超过长度的值,例如输入数据的数据格式为NHWC(1,256,256,3),而当前神经网络层所支持的数据格式为NHWC(1,224,224,3)时,则需要对输入数据的数据格式中相应维度值进行截断,也即采用截断操作在H和W维度上截断至长度为224,并丢弃32个长度的值。
在本实施例的一种可选的实施方式中,在差异属性为维度类型数量不一致时,通过对应于差异属性的格式变换策略,对初始数据格式进行变换包括:在初始数据格式中的维度类型数量小于有效数据格式中的维度类型数量时,获取初始数据格式中的待拆分维度类型,并对待拆分维度类型进行拆分;在初始数据格式中的维度类型数量大于有效数据格式中的维度类型数量时,获取初始数据格式中的所有待合并维度类型,并对所有待合并维度类型进行合并。
具体的,当神经网络层所支持的格式中Format长度大于输入数据的数据格式的Format,并且神经网络层所支持的格式中Format中出现了对应的小写字母,则将输入数据的数据格式的Format中该小写字母对应的大写字母确定为待拆分维度类型,并对其执行维度拆分操作。例如输入数据的数据格式为NHWC(1,224,224,3),而当前神经网络层所支持的数据格式为NHWCw(1,224,112,3,2)时,可以看出Format中的大写字母没有发生变化,但当前神经网络层所支持的数据格式的Format多出了新的w维度,并且新的w和W对应的Shape值乘积正好与输入数据的数据格式的Format中W相等,从而本实施例可以对输入数据的数据格式的Format中W维度进行拆分,将原W维度拆分成新W和w两个维度,并将原W维度的维度值也进行相应拆分,应当说明的是,本实施例的拆分可以按照乘积或加和进行拆分。并且在本实施例的一种细化实施方式中,可以直接通过拆分操作即完成格式变换,也可以拆分完之后还进行移动操作才完成格式变换,例如承接前述举例,在拆分操作完成后所得到的数据格式为wNHWC(2,1,224,112,3)格式,那么则还应当按照前述实施例中所介绍的维度移动操作,对维度w向右移动,才能最终变换为NHWCw(1,224,112,3,2)格式。另外,合并维度则为拆分维度的逆操作,在此则不作赘述。
如图3所示为本实施例提供的另一种数据格式变换方法的流程示意图,在格式变换策略为多个格式变换子策略所组成的组合策略时,通过对应于差异属性的格式变换策略,对初始数据格式进行变换具体包括以下步骤:
步骤301、分别获取对应于差异属性的多个格式变换子策略的变换操作优先级;
步骤302、对所有的变换操作优先级进行排序;
步骤303、按照对应于排序结果的格式变换子策略执行顺序,对初始数据格式进行变换。
具体的,在本实施例中,不同应用场景下的格式变换复杂度有所不同,而当采用较为复杂的组合策略时,不同的格式变换策略的执行顺序会造成整个格式变换的效率和准确性有所不同,基于此,本实施例根据各子策略的操作优先级进行排序,并根据排序结果来依次执行对应的子策略,以保证整体格式变换效率和准确性。
在实际应用中,本实施例可以按照拆分→填充→移动→截断→合并的顺序进行格式变换操作,按照这种操作顺序可以实现转换和反转换。例如将NHWC(1,224,224,3)的格式转换为NwCHW(1,2,3,256,113)时,可以按照如下组合进行操作:首先,通过拆分操作度将NHWC(1,224,224,3)变换为wNHWC(2,1,224,112,3),然后通过填充操作再将wNHWC(2,1,224,112,3)变换为wNHWC(2,1,256,113,3),最后再通过移动操作将wNHWC(2,1,256,113,3)变换为NwCHW(1,2,3,256,113)。再例如将NwCHW(1,2,3,256,113)格式变换为NHWC(1,224,224,3)时,则可以按照如下组合进行操作:首先,通过移动操作将NwCHW(1,2,3,256,113)变换为wNHWC(2,1,256,113,3),然后通过截断操作将wNHWC(2,1,256,113,3)变换为wNHWC(2,1,224,112,3),最后再通过合并操作将wNHWC(2,1,224,112,3)变换为NHWC(1,224,224,3)。
基于上述本申请实施例的技术方案,采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;通过对应于差异属性的格式变换策略,对初始数据格式进行变换。通过本申请方案的实施,采用统一的格式描述来对输入至神经网络层的数据格式以及神经网络层所支持的数据格式进行描述,并基于两种格式之间的差异来对进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
图4中的方法为本申请第二实施例提供的一种细化的数据格式变换方法,该数据格式变换方法包括:
步骤401、基于传递至目标神经网络层的目标数据的数据属性,从目标神经网络层的可用数据格式集合中确定有效数据格式。
本实施例基于传递至目标神经网络层的张量数据的数据属性(例如数据大小),从当前神经网络层所有可用数据格式中确定对应的可用数据格式,来作为本次格式转换所需转换至的有效数据格式,从而可以有针对性的进行格式转换选择,有利于神经网络加速硬件的计算加速性能的充分发挥。
步骤402、基于目标神经网络层的网络层属性,从目标神经网络层的可用格式描述集合中确定标准格式描述。
本实施例基于数据当前所传递至的神经网络层的属性,从多种格式描述中确定出对应的可用格式描述,来作为本次进行格式描述的标准格式描述方式,从而可以有针对性的进行格式描述方式选择,可有效提升格式转换效率、准确性以及适用性。
步骤403、采用标准格式描述,分别描述目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式。
本实施例采用相同的格式描述方式,对所传递过来的数据的数据格式,以及当前神经网络层所支持的数据格式均进行统一描述,该标准格式描述可以包括:数据的维度类型描述Format、各维度类型所对应的维度值描述Shape,在另一些实施例中进一步还可以包括填充值Padding,也即格式描述可以按照如下定义:Format(Shape)[Padding]。
步骤404、在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性。
本实施例对所传递过来的数据的数据格式与当前神经网络层所支持的数据格式进行比对,在两种格式比对不一致时,则需要进行格式转换,并且本实施例基于两种格式的差异来有针对性进行格式变换。
步骤405、分别获取对应于差异属性的多个格式变换子策略的变换操作优先级,并对所有的变换操作优先级进行排序。
在实际应用中,不同应用场景下的格式变换复杂度有所不同,在格式变换复杂度较高时,需要采用多个格式变换子策略所组成的组合策略进行格式变换。
步骤406、按照对应于排序结果的格式变换子策略执行顺序,对初始数据格式进行变换。
具体的,当采用较为复杂的组合策略时,不同的格式变换策略的执行顺序会造成整个格式变换的效率和准确性有所不同,基于此,本实施例根据各子策略的操作优先级进行排序,并根据排序结果来依次执行对应的子策略,以保证整体格式变换效率和准确性。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种数据格式变换方法,采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;通过对应于差异属性的格式变换策略,对初始数据格式进行变换。通过本申请方案的实施,采用统一的格式描述来对输入至神经网络层的数据格式以及神经网络层所支持的数据格式进行描述,并基于两种格式之间的差异来对进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
图5为本申请第三实施例提供的一种数据格式变换装置。该数据格式变换装置可用于实现前述实施例中的数据格式变换方法。如图5所示,该数据格式变换装置主要包括:
描述模块501,用于采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;其中,标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述;
获取模块502,用于在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;
变换模块503,用于通过对应于差异属性的格式变换策略,对初始数据格式进行变换。
在本实施例的一些实施方式中,在差异属性为维度类型排列顺序不一致而相同维度类型所对应的维度值一致时,变换模块503具体用于:按照有效数据格式的维度类型排列顺序,对初始数据格式的维度类型排列顺序进行移动,并将各维度类型对应的维度值进行适应性移动。
在本实施例的一些实施方式中,在差异属性为维度类型排列顺序一致而相同维度类型所对应的维度值不一致时,变换模块503具体用于:在初始数据格式中的目标维度值小于有效数据格式中对应维度值时,按照对应维度值与目标维度值的差值对目标维度值进行填充;在初始数据格式中的目标维度值大于有效数据格式中对应维度值时,按照目标维度值与对应维度值的差值对目标维度值进行截断。
在本实施例的一些实施方式中,在差异属性为维度类型数量不一致时,变换模块503具体用于:在初始数据格式中的维度类型数量小于有效数据格式中的维度类型数量时,获取初始数据格式中的待拆分维度类型,并对待拆分维度类型进行拆分;在初始数据格式中的维度类型数量大于有效数据格式中的维度类型数量时,获取初始数据格式中的所有待合并维度类型,并对所有待合并维度类型进行合并。
在本实施例的一些实施方式中,在格式变换策略为多个格式变换子策略所组成的组合策略时,变换模块503具体用于:分别获取对应于差异属性的多个格式变换子策略的变换操作优先级;对所有的变换操作优先级进行排序;按照对应于排序结果的格式变换子策略执行顺序,对初始数据格式进行变换。
请再次参阅图6,在本实施例的一些实施方式中,数据格式变换装置还包括:第一确定模块504,用于在采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式之前,获取目标数据的数据属性;基于数据属性,从目标神经网络层的可用数据格式集合中确定有效数据格式;其中,可用数据格式集合中包括多个可用数据格式。
请再次参阅图6,在本实施例的一些实施方式中,数据格式变换装置还包括:第二确定模块505,用于在采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式之前,获取目标神经网络层的网络层属性;基于网络层属性,从目标神经网络层的可用格式描述集合中确定标准格式描述;其中,可用格式描述集合中包括多个可用格式描述。
应当说明的是,第一、二实施例中的数据格式变换方法均可基于本实施例提供的数据格式变换装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的数据格式变换装置的具体功能,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的数据格式变换装置,采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及目标神经网络层所支持的有效数据格式;在初始数据格式与有效数据格式不相符时,获取初始数据格式与有效数据格式的差异属性;通过对应于差异属性的格式变换策略,对初始数据格式进行变换。通过本申请方案的实施,采用统一的格式描述来对输入至神经网络层的数据格式以及神经网络层所支持的数据格式进行描述,并基于两种格式之间的差异来对进行数据格式变换,有效扩展了格式变换的适用性,保证了格式变换的有效性。
请参阅图7,图7为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的数据格式变换方法。如图7所示,该电子装置主要包括:
存储器701、处理器702、总线703及存储在存储器701上并可在处理器702上运行的计算机程序,存储器701和处理器702通过总线703连接。处理器702执行该计算机程序时,实现前述实施例中的数据格式变换方法。其中,处理器的数量可以是一个或多个。
存储器701可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器701用于存储可执行程序代码,处理器702与存储器701耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图7所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的数据格式变换方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的数据格式变换方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据格式变换方法,其特征在于,包括:
采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式;其中,所述标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述;
在所述初始数据格式与所述有效数据格式不相符时,获取所述初始数据格式与所述有效数据格式的差异属性;
通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换。
2.根据权利要求1所述的数据格式变换方法,其特征在于,在所述差异属性为维度类型排列顺序不一致而相同维度类型所对应的维度值一致时,所述通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换包括:
按照所述有效数据格式的维度类型排列顺序,对所述初始数据格式的维度类型排列顺序进行移动,并将各维度类型对应的维度值进行适应性移动。
3.根据权利要求1所述的数据格式变换方法,其特征在于,在所述差异属性为维度类型排列顺序一致而相同维度类型所对应的维度值不一致时,所述通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换包括:
在所述初始数据格式中的目标维度值小于所述有效数据格式中对应维度值时,按照所述对应维度值与所述目标维度值的差值对所述目标维度值进行填充;
在所述初始数据格式中的目标维度值大于所述有效数据格式中对应维度值时,按照所述目标维度值与所述对应维度值的差值对所述目标维度值进行截断。
4.根据权利要求1所述的数据格式变换方法,其特征在于,在所述差异属性为维度类型数量不一致时,所述通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换包括:
在所述初始数据格式中的维度类型数量小于所述有效数据格式中的维度类型数量时,获取所述初始数据格式中的待拆分维度类型,并对所述待拆分维度类型进行拆分;
在所述初始数据格式中的维度类型数量大于所述有效数据格式中的维度类型数量时,获取所述初始数据格式中的所有待合并维度类型,并对所述所有待合并维度类型进行合并。
5.根据权利要求1所述的数据格式变换方法,其特征在于,在所述格式变换策略为多个格式变换子策略所组成的组合策略时,所述通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换包括:
分别获取对应于所述差异属性的所述多个格式变换子策略的变换操作优先级;
对所有的所述变换操作优先级进行排序;
按照对应于所述排序结果的格式变换子策略执行顺序,对所述初始数据格式进行变换。
6.根据权利要求1至5中任一项所述的数据格式变换方法,其特征在于,所述采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式之前,还包括:
获取所述目标数据的数据属性;
基于所述数据属性,从所述目标神经网络层的可用数据格式集合中确定有效数据格式;其中,所述可用数据格式集合中包括多个可用数据格式。
7.根据权利要求1至5中任一项所述的数据格式变换方法,其特征在于,所述采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式之前,还包括:
获取所述目标神经网络层的网络层属性;
基于所述网络层属性,从所述目标神经网络层的可用格式描述集合中确定所述标准格式描述;其中,所述可用格式描述集合中包括多个可用格式描述。
8.一种数据格式变换装置,其特征在于,包括:
描述模块,用于采用标准格式描述,分别描述传递至目标神经网络层的目标数据的初始数据格式,以及所述目标神经网络层所支持的有效数据格式;其中,所述标准格式描述包括:数据的维度类型描述、各维度类型所对应的维度值描述;
获取模块,用于在所述初始数据格式与所述有效数据格式不相符时,获取所述初始数据格式与所述有效数据格式的差异属性;
变换模块,用于通过对应于所述差异属性的格式变换策略,对所述初始数据格式进行变换。
9.一种电子装置,包括:存储器、处理器及总线,其特征在于,所述总线用于实现所述存储器、处理器之间的连接通信;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至7中任意一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010035868.0A CN111242286A (zh) | 2020-01-14 | 2020-01-14 | 一种数据格式变换方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010035868.0A CN111242286A (zh) | 2020-01-14 | 2020-01-14 | 一种数据格式变换方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111242286A true CN111242286A (zh) | 2020-06-05 |
Family
ID=70876158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010035868.0A Pending CN111242286A (zh) | 2020-01-14 | 2020-01-14 | 一种数据格式变换方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111242286A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113379038A (zh) * | 2021-06-28 | 2021-09-10 | 展讯通信(天津)有限公司 | 数据处理方法和电子设备 |
CN113656094A (zh) * | 2021-08-03 | 2021-11-16 | 北京数码大方科技股份有限公司 | 属性信息的处理方法和装置 |
WO2022161060A1 (zh) * | 2021-01-28 | 2022-08-04 | 展讯通信(上海)有限公司 | 数据处理方法及装置 |
WO2023024437A1 (zh) * | 2021-08-26 | 2023-03-02 | 上海商汤智能科技有限公司 | 节点排布方式确定方法及装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885628A (zh) * | 2019-03-20 | 2019-06-14 | 上海燧原智能科技有限公司 | 一种张量转置方法、装置、计算机及存储介质 |
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
-
2020
- 2020-01-14 CN CN202010035868.0A patent/CN111242286A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
CN109885628A (zh) * | 2019-03-20 | 2019-06-14 | 上海燧原智能科技有限公司 | 一种张量转置方法、装置、计算机及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022161060A1 (zh) * | 2021-01-28 | 2022-08-04 | 展讯通信(上海)有限公司 | 数据处理方法及装置 |
CN113379038A (zh) * | 2021-06-28 | 2021-09-10 | 展讯通信(天津)有限公司 | 数据处理方法和电子设备 |
CN113656094A (zh) * | 2021-08-03 | 2021-11-16 | 北京数码大方科技股份有限公司 | 属性信息的处理方法和装置 |
CN113656094B (zh) * | 2021-08-03 | 2023-12-12 | 北京数码大方科技股份有限公司 | 属性信息的处理方法和装置 |
WO2023024437A1 (zh) * | 2021-08-26 | 2023-03-02 | 上海商汤智能科技有限公司 | 节点排布方式确定方法及装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242286A (zh) | 一种数据格式变换方法、装置及计算机可读存储介质 | |
Peng et al. | Spatial temporal graph deconvolutional network for skeleton-based human action recognition | |
JP7007488B2 (ja) | ハードウェアベースのプーリングのシステムおよび方法 | |
CN112840356A (zh) | 运算加速器、处理方法及相关设备 | |
CN111542839B (zh) | 一种反卷积神经网络的硬件加速方法、装置和电子设备 | |
WO2021190761A1 (en) | Parallel computing scheme generation for neural networks | |
CN110489428B (zh) | 多维稀疏矩阵压缩方法、解压缩方法、装置、设备及介质 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
US20220253672A1 (en) | Sparse attention neural networks | |
CN111639699B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
WO2020003434A1 (ja) | 機械学習方法、機械学習装置、及び機械学習プログラム | |
WO2023065983A1 (zh) | 计算装置、神经网络处理设备、芯片及处理数据的方法 | |
CN114995782A (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN115022210A (zh) | 一种网络流量预测模型的构建方法、预测方法及装置 | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN111860824A (zh) | 一种数据处理方法及相关产品 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
WO2023053222A1 (ja) | データ変換装置、データ変換方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 | |
CN111860825A (zh) | 一种数据处理方法及相关产品 | |
CN113704520B (zh) | 利用cuda并行加速Anchor-based数据的处理方法、装置以及电子设备 | |
CN110956252A (zh) | 执行多个神经网络的计算的方法和计算装置 | |
CN113379046B (zh) | 卷积神经网络的加速计算方法、存储介质和计算机设备 | |
CN111143762A (zh) | 一种张量数据分解方法及系统 | |
US20220044370A1 (en) | Image processing methods |
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 |