CN110866590A - 数据处理方法及装置、电子设备、存储介质 - Google Patents
数据处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN110866590A CN110866590A CN201911006431.8A CN201911006431A CN110866590A CN 110866590 A CN110866590 A CN 110866590A CN 201911006431 A CN201911006431 A CN 201911006431A CN 110866590 A CN110866590 A CN 110866590A
- Authority
- CN
- China
- Prior art keywords
- data format
- data
- state information
- formats
- format
- 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
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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开实施例是关于一种数据处理方法及装置、电子设备、存储介质,涉及计算机技术领域,该方法包括:获取采用多个数据格式对预设网络进行网络推理的运行状态信息;将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。本公开的技术方案能够合理选择数据格式,提高处理效率和准确率。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质。
背景技术
深度学习计算过程中最耗时的就是各个算子的计算过程,因此如何优化算子的计算过程是神经网络计算框架中非常重要的部分。相关技术中,在有些情况下数据格式并不适合所有的计算框架,因此导致处理效率较低以及处理的准确率较差。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据处理方法及装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的处理效率较低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种数据处理方法,包括:获取采用多个数据格式对预设网络进行网络推理的运行状态信息;将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
根据本公开的一个方面,提供一种数据处理装置,包括:运行状态获取模块,用于获取采用多个数据格式对预设网络进行网络推理的运行状态信息;数据格式确定模块,用于将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;图像数据处理模块,用于通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据处理方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的数据处理方法。
本公开实施例中提供的数据处理方法、数据处理装置、电子设备以及计算机可读存储介质中,一方面,在采用多个数据格式进行网络推理时,将运行状态信息满足选择条件的数据格式确定为目标数据格式,而忽略不满足选择条件的数据格式,能够根据运行状态信息确定合适的目标数据格式,能够提高处理效率和计算的准确性。另一方面,由于根据数据格式的运行状态信息满足选择条件确定目标数据格式,避免了可以使用多个数据格式的计算框架在所有情况下均固定一个数据格式不变的情况,能够更准确地选择更合适的数据格式,增加了数据格式的可选性,减少了算子处理过程耗费的时间,也提高了系统性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开实施例中一种数据处理方法的示意图。
图2示意性示出本公开实施例中数据表示方式的示意图。
图3示意性示出本公开实施例中数据格式的排列方式的示意图。
图4示意性示出本公开实施例中运行结果的示意图。
图5示意性示出本公开实施例中确定目标数据格式的示意图。
图6示意性示出本公开实施例基于数据格式的灰度计算的示意图。
图7示意性示出本公开实施例中数据处理装置的框图。
图8示意性示出本公开实施例中一种电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
深度学习计算框架包括两个主要的模块,网络推理和算子实现。一个深度学习神经网络计算过程中最耗时的地方就是各个算子的计算过程,因为一个深度学习网络可能是由几十甚至几百层算子组成的,如何优化算子的处理效率是神经网络计算框架非常中要的一部分。而算子实现过程中有一个至关重要的考虑因素:数据格式。数据格式有NHWC和NCHW两种,数据格式设置为“NHWC”时,其排列顺序为[batch,height,width,channels],数据格式设置为“NCHW”时,其排列顺序为[batch,channels,height,width]。不同的数据格式,在不同的硬件环境下,存取数据所能达到的性能是不一样的。
相关技术中几乎所有的神经网络计算框架,对于有多种数据格式的算子在它们的所有计算框架中都只有一种固定的数据格式。比如所有计算框架中均使用NHWC数据格式,或者是均使用NCHW数据格式。
为了解决上述技术问题,本公开实施例中首先提供了一种数据处理方法,可以应用于计算框架中,以便于提高计算框架的处理效率。计算框架例如可以为神经网络框架或者是其他合适的机器学习框架或深度学习框架。神经网络框架可以应用于终端或者是服务器的系统中,本公开实施例中以终端系统(手机系统)为例进行说明。参考图1中所示,该数据处理方法可以包括以下步骤:
在步骤S110中,获取采用多个数据格式对预设网络进行网络推理的运行状态信息;
在步骤S120中,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;
在步骤S130中,通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
本公开实施例提供的数据处理方法中,一方面,在用于表示图像数据的格式的数据格式进行网络推理过程中,将运行状态信息满足选择条件的数据格式确定为目标数据格式,而忽略不满足选择条件的数据格式,能够根据运行状态信息确定合适的目标数据格式,能够提高处理效率和计算的准确性。另一方面,由于根据数据格式的运行状态信息满足选择条件确定目标数据格式,避免了所有计算框架下均固定一个数据格式不变,能够针对计算框架更准确地选择更合适的数据格式,增加了数据格式的可选性和准确性,减少了算子处理过程耗费的时间,也提高了系统性能。
接下来,参考附图对本公开实施例中的数据处理方法进行详细说明。
在步骤S110中,获取采用多个数据格式对预设网络进行网络推理的运行状态信息。
本公开实施例中,数据格式用于表示图像数据的排列方式,图像数据可以为输入神经网络计算框架用于进行图像识别、图像分类或者是其他操作的数据,具体可以为图像或者是视频等等。数据格式具体可以用卷积和池化的内存布局来表示。此处的数据格式可以为多个数据格式,具体可以包括第一数据格式和第二数据格式等,且第一数据格式和第二数据格式不同。具体地,第一数据格式例如可以为卷积和池化的内存布局NCHW,N是表示图像数量即n张图像,C表示Channel即颜色通道,H表示图像高度,W表示图像宽度。第二数据格式例如可以为卷积和池化的内存布局NHWC,这里是将Channel放到最后一维。第一数据格式和第二数据格式也可以互换,此处不作限定。
参考图2中所示的深度学习网络模型中数据的表示方式。其中,N代表数量,一般在推理阶段,N=1;C代表Channel数,例如黑白图像的通道数C=1,而RGB彩色图像的通道数C=3,H代表图像高度,W代表图像宽度。
参考图3中所示的数据格式的排列方式,两种数据格式排列数据时的区别如下:NCHW其实代表的是[W H C N],第一个元素是000;第二个元素是沿着w方向的,即001,这样下去002、003;再接着就是沿着H方向,即004、005、006、007...这样到09后,沿C方向;在C方向轮到了020,之后021、022...一直到319;然后再沿N方向。类似地,NHWC代表的是[C W HN],第一个元素是000;第二个沿C方向,即020、040、060..一直到300;之后沿W方向,001、021、041、061...301..到了303后,沿H方向;在H方向即004、024…304,最后到了319,变成N方向;在N方向,320、340...。
预设网络包括但不限于神经网络或深度学习网络,可以应用于机器学习计算框架或者是深度学习计算框架等等,此处以神经网络为例进行说明。网络推理指的是通过训练好的网络测试未经过训练的图像数据的过程,也可以理解为通过训练好的预设网络测试不属于预设网络的训练数据的其他图像数据的过程,以用于衡量网络的性能和准确程度。具体而言,事先训练的预设网络,在训练数据集中表现良好,但是期望它可以对以前没训练的图像进行识别。因此重新拍一张图像输入至预设网络让网络做判断,这种图像就叫做现场数据,对现场数据进行判断的过程称为网络推理。如果网络推理的区分准确率非常高,那么证明网络训练的性能较好。
运行状态信息用于描述数据格式的运行性能,具体用于表示采用某一种数据格式在对预设网络进行网络推理时的性能,例如运行速度以及运行准确率等。运行状态信息可以为用于表示采用数据格式的运行性能的各种合适的参数,例如可以包括但不限于数据格式关联的运行时间以及数据格式关联的评估分数。当然,运行状态信息还可以包括其他能够影响计算性能的参数,此处不作限定。其中,评估分数可以由多个参数共同确定,例如可以根据数据格式关联的占用内存、数据格式关联的系统功耗以及数据格式关联的运行时间来共同确定一个评估分数,以便于更准确地评价计算性能。
获取运行状态信息的条件可以为:手机系统第一次启动时,获取采用不同数据格式对预设网络进行一次网络推理操作的运行状态信息。具体而言,在手机系统安装完成并在第一次启动时,加载手机系统中存储的网络模型,并通过计算框架中的测试工具,计算采用不同数据格式进行网络推理的运行状态信息。测试工具例如可以为benchmark工具,主要用于评估计算性能,具体包括评估运行一次神经网络需要多长时间、神经网络中包括哪些算子、每个算子的时间占用总时间的比值等。
在手机系统第一次启动时,获取采用多个数据格式的运行状态信息包括:获取配置变量,根据所述配置变量确定所述数据格式,并计算所述数据格式的运行状态信息。配置变量可以为用于代表数据格式的变量或标识,具体可以根据图像数据的参数信息的排列顺序而确定,图像数据指的是用于网络推理的图像,参数信息可以包括图像数据中的图像数量、颜色通道、图像高度和图像宽度中的一种或多种。参数信息的排列顺序不同,则得到的配置变量不同,且配置变量可以与数据格式一一对应。配置变量可以用DataFormatMethod来表示,且一个数据格式可以用一个配置变量来表示。例如,配置变量为1,数据格式为卷积和池化的内存布局NCHW;配置变量为2,数据格式为卷积和池化的内存布局NHWC。配置变量也可以为其它值,只要与数据格式一一对应即可。在计算框架启动之前(即手机系统第一次启动时),配置变量是可以变化的,例如初始的配置变量为1,随后将配置变量切换为2。但是在计算框架启动之后,配置变量是固定不变的,即数据格式是固定不变的,以便于在该手机系统上通过确定的目标数据格式执行所有的网络推理过程。需要说明的是,在手机系统对应的硬件配置发生变化时,可以调整数据格式。
举例而言,首先可以根据配置变量1获得初始数据格式,并计算初始数据格式的运行状态信息,初始数据格式为所述多个数据格式其中之一,例如可以为NHWC或者是NCHW。接下来可以响应于用户对配置变量的更改操作,得到更新后的配置变量2,以便于获取配置变量2对应的当前数据格式,并计算当前数据格式的运行状态信息,当前数据格式与初始数据格式不同,例如可以为NCHW或者是NHWC。
运行状态信息包括运行时间以及评估分数中的至少一种。具体选择通过运行时间或者是评估分数可以由网络推理的参考信息而确定。网络推理的参考信息可以为网络推理的持续时长,即整个网络推理过程的总时间。可以根据持续时长所处的范围来确定通过运行时间还是通过评估分数来确定目标数据格式。举例而言,若持续时长处于第一范围,则可根据运行时间确定;若持续时长处于第二范围,则可根据评估分数确定。若持续时长处于第三范围,则可根据运行时间和评估分数共同确定。其中,第一范围小于第二范围小于第三范围。通过参考信息确定运行状态信息,能够更准确地描述计算性能。
当运行状态信息为运行时间时,获取采用多个数据格式进行网络推理的运行状态信息包括:获取多个数据格式对应的操作的计算时间,并根据操作的所述计算时间获取多个数据格式的运行时间。本公开实施例中,数据格式对应的操作可以用数据格式对应的算子来表示,算子例如可以用于表示卷积操作、激活操作、池化操作以及连接操作中的至少一种,且算子可以与预设网络对应的所有操作的数量相对应。即一种操作可以对应一个算子,例如卷积操作对应卷积算子conv2D。不同的数据格式,对应的操作的类型可能相同,但是对应的操作的具体情况可能不同(例如操作时间等等)。可以采用测试工具,对预设网络进行多次网络推理并确定所有算子的计算时间。算子的计算时间指的是在采用某一种数据格式进行多次网络推理的过程中,每个算子的平均计算时间,即运行时间的平均值(具体根据每次网络推理的计算时间以及次数而确定),参考图4中所示的某一种数据格式下各个算子的平均计算时间。需要说明的是,采用不同的数据格式得到的算子的平均计算时间可以相同,也可以不同,此处不作限定。
进一步地,在得到算子的计算时间之后,可以根据算子的计算时间来确定采用数据格式的运行时间。具体地,运行时间可以根据所有算子的计算时间来确定,也可以根据部分算子的计算时间来确定,此处以部分算子的计算时间来确定进行说明。部分算子具体可以为一个或者是多个,当为一个算子时,可以为所有算子中运行时间占用比例最大(或者是重要程度排列在第一位的操作)的算子,例如预设网络中的卷积操作对应的算子。当为多个算子时,可以根据预设网络中的所有操作的重要程度以及算子的数量阈值来确定选择哪些算子,也可以根据运行时间占用比例由大到小的顺序确定算子,进而将所有算子的运行时间进行逻辑处理得到最终的运行时间。本公开实施例中以根据一个算子确定运行时间为例进行说明。
举例而言,由于卷积操作是网络推理中最重要的操作且占用时间最长,因此可以将卷积操作对应的算子的计算时间确定为运行时间。参考图4中所示的运行结果,卷积操作对应的算子conv2D的平均计算时间为56.814毫秒,则步骤S110对应的采用某个数据格式对预设网络进行网络推理的运行时间可以为56.814毫秒。通过重要程度排列在第一位的操作确定运行时间,能够清晰地描述采用某一种数据格式的网络推理过程的计算速度和性能。
当运行状态信息为评估分数时,获取采用多个数据格式进行网络推理的运行状态信息包括:获取所述数据格式对应的算子的计算时间,并根据算子的所述计算时间获取运行时间;根据数据格式关联的占用内存、所述数据格式关联的系统功耗以及所述运行时间确定所述评估分数。数据格式关联的占用内存指的是采用某一种数据格式进行网络推理时所占用的系统内存,例如100M或者是200M等等。数据格式关联的系统功耗指的是采用某一种数据格式进行网络推理时所消耗的系统功耗,例如100W等等。在此基础上,可以联合数据格式关联的占用内存、数据格式关联的系统功耗以及运行时间共同确定一个评估分数,该评估分数用于衡量数据格式是否符合选择条件,进而准确选择一种目标数据格式。
在确定评估分数时,可以为数据格式关联的占用内存、数据格式关联的系统功耗以及运行时间分别确定不同的权重参数,例如为数据格式关联的占用内存提供权重1,为数据格式关联的系统功耗提供权重2,为运行时间提供权重3。需要说明的是,权重参数用于表示数据格式关联的占用内存、数据格式关联的系统功耗以及运行时间的重要程度。本公开实施例中,由于运行结果还是主要根据运行时间而确定,因此可以将运行时间的权重参数设置为最大的数值,但是对其他两个权重参数的大小不作限定,权重参数可以根据实际情况而具体确定。即运行时间的权重参数大于占用内存的权重参数以及系统功耗的权重参数。通过多个参数共同确定评估分数,能够更全面、更准确地确定运行状态信息。
除此之外,当运行状态信息为运行时间以及评估分数时,具体过程与上述过程相同,此处不再赘述。
在步骤S120中,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式。
本公开实施例中,选择条件用于通过运行状态信息筛选目标数据格式。运行状态信息包括运行时间以及评估分数中的至少一种,根据运行状态信息的不同,选择条件也相应不同。目标数据格式可以为数据格式中的任意一种,具体可以根据选择条件而确定。
当运行状态信息为运行时间时,由于需要提高算子优化效率,因此将所述多个数据格式中满足所述选择条件的运行状态信息的数据格式确定为目标数据格式可以包括:将多个数据格式中运行时间最小的数据格式确定为所述目标数据格式。也就是说,可以分别确定多个数据格式对应的运行时间,进一步将所有数据格式对应的运行时间进行对比以确定大小关系,从而确定出最小的运行时间,并将运行时间最小的数据格式确定为目标数据格式。举例而言,分别得到使用数据格式NHWC时的运行时间T1,使用数据格式NCHW时的运行时间T2。假设T1大于T2,则将配置变量DataFormatMethod更新为NCHW对应的值,以便于将数据格式NCHW确定为目标数据格式。通过运行时间满足选择条件时,确定目标数据格式,能够选择合适的数据格式,以提高数据处理的效率和准确性。
当运行状态信息为评估分数时,确定目标数据格式的具体步骤包括:根据采用所述数据格式的占用内存、采用所述数据格式的系统功耗以及运行时间确定评估分数;根据所述评估分数确定目标数据格式。也就是说,可以分别确定多个数据格式对应的评估分数,进一步将所有数据格式对应的评估分数进行对比,从而确定出最小的评估分数,并将评估分数最小的数据格式确定为目标数据格式。举例而言,分别得到使用数据格式NHWC时的评估分数为point1,使用数据格式NCHW时的运行时间point2。若point1小于point2,则可将配置变量DataFormatMethod更新为NHWC,以便于通过配置变量将数据格式NHWC确定为目标数据格式。通过在评估分数满足选择条件时确定目标数据格式,能够更全面、更准确地确定目标数据格式。
当运行状态信息为运行时间以及评估分数时,确定目标数据格式的具体步骤包括:根据运行时间和评估分数分别确定一个数据格式,将通过两种方式确定的数据格式进行对比,以确定二者的选择结果是否相同。若选择结果相同,则将该数据格式确定为目标数据格式。如果选择结果不同,则随机选择一个数据格式作为目标数据格式。
本公开实施例中,如果多个数据格式的运行状态信息均满足选择条件,则可以随机选择一个数据格式作为目标数据格式,即将数据格式NHWC或数据格式NCHW作为目标数据格式,此处不作限定。除此之外,还可以根据其他方式选择目标数据格式,此处不作限定。
本步骤中,在确定目标数据格式之后,可以将配置变量更新为该目标数据格式对应的值,在计算框架启动时,读取用于表示数据格式的配置变量,以将配置变量的值传递到算子实现层的入口,则在计算框架运行时,该目标数据格式就是在该芯片平台下效率最优的一种。通过结合运行状态信息以及选择条件来选择目标数据格式,能够得到合理的数据格式,进而提高数据处理的效率。
图5中示意性示出确定目标数据格式的流程图,参考图5中所示,主要包括以下步骤:
在步骤S510中,判断采用多个数据格式对预设网络进行网络推理的运行状态信息是否满足选择条件;若是,则转至步骤S520。
在步骤S520中,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式,具体包括步骤S521以及步骤S522,或者是包括步骤S523,其中:
步骤S521,确定采用多个数据格式的评估分数;
步骤S522,将所述多个数据格式中评估分数最小的数据格式确定为目标数据格式。或者;
步骤S523,将所述多个数据格式中运行时间最小的数据格式确定为目标数据格式。
图5中提供的技术方案,通过判断多个数据格式的运行状态信息是否满足选择条件,并在满足选择条件时将其确定为目标数据格式,由于可以根据选择条件来选择目标数据格式,从而为当前硬件平台指定合适的数据格式,避免了对于有多种数据格式的算子在所有的计算框架中均使用一种固定的数据格式的而导致的数据格式不合理的问题,提高了处理效率以及准确率。
接下来,继续参考图1中所示,在步骤S130中,通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
本公开实施例中,预设网络的计算框架指的是神经网络的计算框架或者是深度学习的计算框架,且与步骤S110中的预设网络保持一致,预设网络的计算框架例如可以为tensorflow、caffe、mxnet、pytorch等计算框架中的任意一种。预设网络的计算框架可以支持多种数据格式,例如同时支持NWHC和NCHW的数据格式。
在确定目标数据格式之后,可以通过预设网络的计算框架对目标数据格式的图像数据进行数据处理。对于不同的硬件平台,对应的数据格式可以不同,也可以相同,此处不作限定。在选定目标数据格式后,对于某一个硬件平台而言,其数据格式则固定为目标数据格式,而不再发生变化。后续的所有网络推理过程,均可以按照目标数据格式来执行。
在此基础上,可以通过预设网络的计算框架对目标数据格式的图像数据进行数据处理,具体而言,可以对目标数据格式的图像数据进行彩色转灰度计算等等。目标数据格式可以为数据格式NCHW或数据格式NHWC,本公开实施例中以对不同数据格式的RGB三通道图像做彩色转灰度计算为例进行说明,具体过程可以参考图6中所示。
图6中的图A示出了不同数据格式通道内像素的排列形式,具体包括:数据格式NCHW中,C排列在外层,每个通道内像素紧挨在一起,即'RRRRRRGGGGGGBBBBBB'这种形式。数据格式NHWC中,C排列在最内层,多个通道对应空间位置的像素紧挨在一起,形成'RGBRGBRGBRGBRGBRGB'这种形式。
图6中的图B示出了基于数据格式NCHW对图像进行彩色转灰度计算的过程,参考图6中的图B所示,在对图像做彩色转灰度计算时,数据格式NCHW的计算过程如下:R通道所有像素值乘以0.299,G通道所有像素值乘以0.587,B通道所有像素值乘以0.114,最后将三个通道结果相加得到灰度值。
图6中的图C示出了基于数据格式NHWC对图像进行彩色转灰度计算的过程,参考图6中的图C所示,数据格式NHWC的彩色转灰度计算过程如下:输入数据分成多个(R,G,B)像素组,每个像素组中R通道像素值乘以0.299,G通道像素值乘以0.587,B通道像素值乘以0.114,将每个像素组三个通道结果相加得到一个灰度输出像素。进一步将多个像素组形成的多组结果拼接起来得到所有灰度输出像素。
图6中的技术方案,使用两种数据格式进行RGB彩色图像转灰度计算的复杂度是相同的,区别在于访存特性。对比可以得知,数据格式NHWC的访存局部性更好(每三个输入像素即可得到一个输出像素),数据格式NCHW则必须等所有通道完成之后才能得到最终输出结果,需要占用较大的临时空间。
本公开实施例中,由于算子的不同数据格式在不同的芯片平台下(芯片结构,内存排布结构,处理器并发执行核数等等)的运行性能不同,通过在手机系统第一次启动时根据运行状态信息满足选择条件而确定合适的目标数据格式,并在计算框架启动时使用目标数据格式,能够根据所处的实际芯片平台获取不同数据格式的计算性能,提高处理效率和计算效率。
本公开实施例中提供了一种数据处理装置,参考图7中所示,该数据处理装置700可以包括:
运行状态获取模块701,用于获取采用多个数据格式对预设网络进行网络推理的运行状态信息;
数据格式确定模块702,用于将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;
图像数据处理模块703,用于通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
在本公开的一种示例性实施例中,运行状态获取模块包括:配置变量获取模块:用于获取配置变量,根据所述配置变量确定所述多个数据格式,并获取所述多个数据格式的所述运行状态信息。
在本公开的一种示例性实施例中,在获取配置变量之前,所述装置还包括:配置变量确定模块,用于根据所述图像数据对应的图像数量、颜色通道、图像高度和图像宽度的排列顺序确定所述配置变量。
在本公开的一种示例性实施例中,当运行状态信息为运行时间时,数据格式确定模块包括:第一获取模块,用于获取所述数据格式对应的操作的计算时间,并根据所述操作的所述计算时间获取所述多个数据格式的运行时间;第一确定模块,用于将所述多个数据格式中运行时间最小的数据格式确定为所述目标数据格式。
在本公开的一种示例性实施例中,当运行状态信息为评估分数时,运行状态获取模块包括:时间获取模块,用于获取所述多个数据格式对应的操作的计算时间,并根据所述操作的所述计算时间获取所述多个数据格式的运行时间;第二获取模块,用于根据所述多个数据格式关联的占用内存、所述数据格式关联的系统功耗以及所述运行时间确定所述多个数据格式的所述评估分数。
在本公开的一种示例性实施例中,数据格式确定模块包括:第二确定模块,用于将所述多个数据格式中所述评估分数最小的数据格式作为所述目标数据格式。
在本公开的一种示例性实施例中,数据格式确定模块包括:第三确定模块,用于若所述多个数据格式的所述运行状态信息均满足所述选择条件,则随机选择一个数据格式作为所述目标数据格式。
需要说明的是,上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线850。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速接口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本公开的实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取采用多个数据格式对预设网络进行网络推理的运行状态信息;
将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;
通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
2.根据权利要求1所述的数据处理方法,其特征在于,获取采用多个数据格式对预设网络进行网络推理的运行状态信息包括:
获取配置变量,根据所述配置变量确定所述多个数据格式,并获取所述多个数据格式的所述运行状态信息。
3.根据权利要求2所述的数据处理方法,其特征在于,在获取配置变量之前,所述方法还包括:
根据图像数据对应的图像数量、颜色通道、图像高度和图像宽度的排列顺序确定所述配置变量。
4.根据权利要求1所述的数据处理方法,其特征在于,当所述运行状态信息为运行时间时,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式包括:
获取所述多个数据格式对应的操作的计算时间,并根据所述操作的所述计算时间获取所述多个数据格式的所述运行时间;
将所述多个数据格式中运行时间最小的数据格式确定为所述目标数据格式。
5.根据权利要求1所述的数据处理方法,其特征在于,当所述运行状态信息为评估分数时,获取采用多个数据格式对预设网络进行网络推理的运行状态信息包括:
获取所述多个数据格式对应的操作的计算时间,并根据所述操作的所述计算时间获取所述多个数据格式的运行时间;
根据所述数据格式关联的占用内存、所述数据格式关联的系统功耗以及所述运行时间确定所述多个数据格式的所述评估分数。
6.根据权利要求5所述的数据处理方法,其特征在于,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式包括:
将所述多个数据格式中所述评估分数最小的数据格式作为所述目标数据格式。
7.根据权利要求1所述的数据处理方法,其特征在于,将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式包括:
若所述多个数据格式的所述运行状态信息均满足所述选择条件,则随机选择一个数据格式作为所述目标数据格式。
8.一种数据处理装置,其特征在于,包括:
运行状态获取模块,用于获取采用多个数据格式对预设网络进行网络推理的运行状态信息;
数据格式确定模块,用于将所述多个数据格式中满足选择条件的运行状态信息的数据格式确定为目标数据格式;
图像数据处理模块,用于通过所述预设网络的计算框架对所述目标数据格式的图像数据进行数据处理。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任意一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911006431.8A CN110866590A (zh) | 2019-10-22 | 2019-10-22 | 数据处理方法及装置、电子设备、存储介质 |
PCT/CN2020/122678 WO2021078184A1 (zh) | 2019-10-22 | 2020-10-22 | 数据处理方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911006431.8A CN110866590A (zh) | 2019-10-22 | 2019-10-22 | 数据处理方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866590A true CN110866590A (zh) | 2020-03-06 |
Family
ID=69652790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911006431.8A Pending CN110866590A (zh) | 2019-10-22 | 2019-10-22 | 数据处理方法及装置、电子设备、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110866590A (zh) |
WO (1) | WO2021078184A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078184A1 (zh) * | 2019-10-22 | 2021-04-29 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN115660049A (zh) * | 2022-11-02 | 2023-01-31 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493444B (zh) * | 2024-01-02 | 2024-04-09 | 广州海洋地质调查局三亚南海地质研究所 | 一种数据抽取与加载方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018073975A1 (en) * | 2016-10-21 | 2018-04-26 | Nec Corporation | Improved sparse convolution neural network |
CN109255438A (zh) * | 2018-09-17 | 2019-01-22 | 地平线(上海)人工智能技术有限公司 | 调整张量数据的方法和装置 |
US20190172224A1 (en) * | 2017-12-03 | 2019-06-06 | Facebook, Inc. | Optimizations for Structure Mapping and Up-sampling |
CN109886407A (zh) * | 2019-02-27 | 2019-06-14 | 上海商汤智能科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN110033079A (zh) * | 2017-11-03 | 2019-07-19 | 畅想科技有限公司 | 深度神经网络的硬件实现的端到端数据格式选择 |
CN110232665A (zh) * | 2019-06-13 | 2019-09-13 | Oppo广东移动通信有限公司 | 最大池化方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4654918B2 (ja) * | 2006-01-12 | 2011-03-23 | 株式会社日立製作所 | 情報処理装置及び情報処理システム |
GB2568083B (en) * | 2017-11-03 | 2021-06-02 | Imagination Tech Ltd | Histogram-based per-layer data format selection for hardware implementation of deep neutral network |
CN108347427B (zh) * | 2017-12-29 | 2021-04-02 | 中兴通讯股份有限公司 | 一种视频数据传输、处理方法、装置及终端、服务器 |
CN109583579B (zh) * | 2018-11-30 | 2021-04-09 | 上海寒武纪信息科技有限公司 | 计算装置及相关产品 |
CN110866590A (zh) * | 2019-10-22 | 2020-03-06 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备、存储介质 |
-
2019
- 2019-10-22 CN CN201911006431.8A patent/CN110866590A/zh active Pending
-
2020
- 2020-10-22 WO PCT/CN2020/122678 patent/WO2021078184A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018073975A1 (en) * | 2016-10-21 | 2018-04-26 | Nec Corporation | Improved sparse convolution neural network |
CN110033079A (zh) * | 2017-11-03 | 2019-07-19 | 畅想科技有限公司 | 深度神经网络的硬件实现的端到端数据格式选择 |
US20190172224A1 (en) * | 2017-12-03 | 2019-06-06 | Facebook, Inc. | Optimizations for Structure Mapping and Up-sampling |
CN109255438A (zh) * | 2018-09-17 | 2019-01-22 | 地平线(上海)人工智能技术有限公司 | 调整张量数据的方法和装置 |
CN109886407A (zh) * | 2019-02-27 | 2019-06-14 | 上海商汤智能科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN110232665A (zh) * | 2019-06-13 | 2019-09-13 | Oppo广东移动通信有限公司 | 最大池化方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
HEEHOON KIM ET AL: "Performance Analysis of CNN Frameworks for GPUs" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078184A1 (zh) * | 2019-10-22 | 2021-04-29 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN115660049A (zh) * | 2022-11-02 | 2023-01-31 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
CN115660049B (zh) * | 2022-11-02 | 2023-07-25 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021078184A1 (zh) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021078184A1 (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN110926782B (zh) | 断路器故障类型判断方法、装置、电子设备及存储介质 | |
EP4134878A2 (en) | Method and apparatus for training a model, and method and apparatus for predicting a trajectory | |
CN113837596B (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
US20230162477A1 (en) | Method for training model based on knowledge distillation, and electronic device | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN110298615A (zh) | 用于选择仓库中的货品的方法、装置、介质和计算设备 | |
CN112101543A (zh) | 神经网络模型确定方法、装置、电子设备及可读存储介质 | |
CN110348581B (zh) | 用户特征群中用户特征寻优方法、装置、介质及电子设备 | |
CN111160491B (zh) | 一种卷积神经网络中的池化方法和池化模型 | |
CN113420792A (zh) | 图像模型的训练方法、电子设备、路侧设备及云控平台 | |
CN110704614B (zh) | 对应用中的用户群类型进行预测的信息处理方法及装置 | |
CN115273148B (zh) | 行人重识别模型训练方法、装置、电子设备及存储介质 | |
CN115439449B (zh) | 全视野组织学图像的处理方法、装置、介质和电子设备 | |
EP4149111A1 (en) | Method for determining video coding test sequence, related apparatus and computer program product | |
CN114237182B (zh) | 机器人调度方法及系统 | |
CN115984084A (zh) | 一种基于动态可拆分网络的遥感分布式数据处理方法 | |
CN114998649A (zh) | 图像分类模型的训练方法、图像分类方法及装置 | |
KR102635546B1 (ko) | 기계 학습을 통한 심볼릭 실행의 탐색 공간 자동 축소 방법 | |
CN115457365A (zh) | 一种模型的解释方法、装置、电子设备及存储介质 | |
CN114445682A (zh) | 训练模型的方法、装置、电子设备、存储介质及产品 | |
CN109741250B (zh) | 图像处理方法及装置、存储介质和电子设备 | |
CN113591764B (zh) | 手势识别方法、装置、存储介质和电子设备 | |
CN115578583B (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN113361575B (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 |