识别图像的方法和设备
本专利申请要求于2020年3月16日在韩国知识产权局提交的第10-2020-0032233号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及用于识别图像的方法和设备,更具体地,涉及通过神经网络模型的并行处理来实现图像识别的方法和设备。
背景技术
已经使用例如由处理器实现的神经网络模型作为专用计算结构来实现图像识别处理的技术自动化,神经网络模型可在大量的训练之后提供输入模式与输出模式之间的计算上直观的映射。被训练以生成这样的映射的能力可被称为“神经网络的训练能力”。此外,由于专门的训练,这样的专用的和训练的神经网络可具有针对未被训练的输入模式生成相对准确的输出的泛化能力。为了处理与神经网络模型的训练和推断有关的操作,更快速地收敛到结果的方法可包括例如模型并行化(model parallelization)和/或数据并行化(data parallelization)。
发明内容
提供本发明内容来以简化的形式介绍在以下
具体实施方式
中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种识别图像的方法,所述方法包括:获得待识别的图像数据作为神经网络的输入数据;基于待识别的图像数据执行与神经网络的每个层有关的操作,以获得图像识别的结果;和输出图像识别的结果,其中,针对神经网络的目标层中的每个:提取目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略,并且使用目标层的输入数据基于并行化策略执行与目标层有关的操作的并行处理。
目标层是从神经网络的多个层选择的一个或多个层。
神经网络的第一层的输入数据为待识别的图像数据,神经网络的第一层之外的层的输入数据为前一层的输出数据。
在一个总体方面,一种识别图像的设备,所述设备包括:处理器;和存储器,包括能够由处理器执行的指令,其中,响应于所述指令被处理器执行,处理器被配置为:获得待识别的图像数据作为神经网络的输入数据;基于待识别的图像数据执行与神经网络的每个层有关的操作,以获得图像识别的结果;和输出图像识别的结果,其中,针对神经网络的目标层中的每个:提取目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略,并且使用目标层的输入数据基于并行化策略执行与目标层有关的操作的并行处理。
在一个总体方面,一种训练用于识别图像的神经网络的方法,所述方法包括:获取训练图像数据;基于训练图像数据对神经网络进行训练,其中,在训练中,针对神经网络的目标层中的每个:提取目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略,并且使用目标层的输入数据基于并行化策略执行与目标层有关的操作的并行处理。
目标层是从神经网络的多个层选择的一个或多个层。
神经网络的第一层的输入数据为训练图像数据,神经网络的第一层之外的层的输入数据为前一层的输出数据。
在一个总体方面,一种训练用于识别图像的神经网络的设备,所述设备包括:处理器;和存储器,包括能够由处理器执行的指令,其中,响应于所述指令被处理器执行,处理器被配置为:获取训练图像数据;基于训练图像数据对神经网络进行训练,其中,在训练中,针对神经网络的目标层中的每个:提取目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略,并且使用目标层的输入数据基于并行化策略执行与目标层有关的操作的并行处理。
在一个总体方面,一种用于基于神经网络的目标模型的并行处理方法包括:提取包括在目标模型中的目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略。
选择对应层的步骤可包括:响应于参考层之中存在具有与目标层的元数据相同的参考元数据的第一参考层,选择第一参考层作为对应层;和响应于参考层之中不存在所述第一参考层,从参考层之中选择具有与目标层的元数据最相似的参考元数据的第二参考层作为对应层。
响应于第二参考层被选择为对应层,可将与目标层的元数据对应的参考层信息添加到参考数据库(DB),在参考数据库中存储有每个参考层的参考元数据。参考层信息可包括链接信息。响应于第二参考层被选择为对应层,可将第二参考层的标识信息记录为参考层信息中的链接信息。
所述并行处理方法还可包括:响应于与目标层的元数据对应的参考层信息被添加到参考DB,生成与目标层的元数据对应的新的并行化策略。可独立于目标层的并行化策略的执行来执行新的并行化策略的生成。
可响应于新的参考层信息的量超过阈值执行新的并行化策略的生成,新的参考层信息包括与目标层的元数据对应的参考层信息并且被添加到参考DB。可使用基于神经网络的相似度测量模型来测量相似度。可响应于新的并行化策略的生成,基于新的并行化策略来重新训练相似度测量模型。
可响应于新的并行化策略的生成,将参考层信息的链接信息改变为空状态。所述并行处理方法还可包括:基于并行化策略执行与目标层有关的操作的并行处理。
在另一总体方面,一种用于基于神经网络的目标模型的并行处理设备包括:处理器;和存储器,包括能够由处理器执行的指令,其中,响应于所述指令被处理器执行,处理器被配置为:提取包括在目标模型中的目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略。
在另一总体方面,一种电子设备包括:处理器;和存储器,包括能够由处理器执行的指令,其中,响应于所述指令被处理器执行,处理器被配置为:提取包括在基于神经网络的目标模型中的目标层的元数据;通过将目标层的元数据与每个参考层的参考元数据进行比较,测量目标层与每个参考层之间的相似度;基于相似度在参考层之中选择对应层;和基于与对应层匹配的参考并行化策略,生成目标层的并行化策略。
在另一总体方面,一种处理器实现的方法包括:提取包括在基于神经网络的目标模型中的目标层的元数据;将目标层的元数据与多个参考层中的每个参考层的元数据进行比较;在目标层的元数据与所述多个参考层之中的特定参考层的元数据匹配的情况下,基于与特定参考层对应的第一并行化策略执行目标层;和在目标层的元数据与所述多个参考层之中的任何参考层的元数据不匹配的情况下,基于与所述多个参考层之中的与目标层具有最接近相似度的参考层对应的第二并行化策略执行目标层,生成目标层的新的并行化策略,和随后基于新的并行化策略执行目标层。
可独立于目标层的新的并行化策略的生成来执行基于第二并行化策略执行目标层。
生成目标层的新的并行化策略的步骤可包括:确定是否已经满足更新条件;和在已经满足更新条件之后,基于在满足更新条件之前已经添加到所述多个参考层的新的参考层信息,生成目标层的新的并行化策略。
更新条件可对应于已经过去的时间的量和已经添加的新的参考层信息的量中的一个或两者。
从下面的具体实施方式、附图以及权利要求,其他特征和方面将是清楚的。
附图说明
图1示意性地示出用于神经网络模型的并行处理过程的示例。
图2和图3示出并行处理设备的每个组件的并行处理操作的示例。
图4示出基于是否存在具有与目标层的元数据相同的元数据的参考层而采用并行化策略的示例。
图5示出与新的并行化策略的生成有关的操作的示例。
图6示出更新之前和更新之后的参考数据库(DB)的示例。
图7示出总体并行处理过程的示例。
图8示出并行处理设备的示例。
图9示出电子设备的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略本领域已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
下面的具体的结构性描述或功能性描述是示例性的,以仅描述示例,并且示例的范围不限于在本说明书中提供的描述。本领域普通技术人员可对其进行各种改变和修改。
尽管使用“第一”或“第二”的术语来解释各种组件,但是组件不被术语所限制。这些术语应仅用于将一个组件与另一组件进行区分。例如,在根据本公开的构思的权利的范围内,“第一”组件可被称为“第二”组件,或者类似地,“第二”组件可被称为“第一”组件。
如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还应理解,当术语“包含”和/或“包括”用在本说明书中时,说明存在阐述的特征、整体、步骤、操作、元件、组件或他们的组合,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或他们的组。
除非在此另有定义,否则在此使用的所有术语(包括技术术语或科学术语)具有与本领域的普通技术人员通常理解的含义相同的含义。除非在此另有定义,否则词典中通常定义的术语应被解释为具有与相关领域中的上下文含义匹配的含义,并且将不被解释为理想化或过于形式化的含义。
在下文中,将参照附图详细描述示例,并且在附图中相同的参考标号始终表示相同的元件。
图1示意性地示出用于神经网络模型的并行处理过程的示例。参照图1,并行处理设备100可基于目标模型信息生成目标模型110的并行化策略。并行处理设备100可基于生成的并行化策略来执行针对目标模型110的并行处理(例如,训练和/或推断)。例如,目标模型110可基于人工神经网络(在下文中,被称为“神经网络”),并且用于目标模型110的训练和/或推断的操作可基于并行化策略并行地执行。
通过基于深度学习映射处于非线性关系的输入数据和输出数据,神经网络可被训练为根据训练的目的执行操作(例如,对象识别操作或用户认证操作)。例如,训练图像数据可被获取,并且神经网络可基于训练图像数据来训练。例如,识别图像的设备可获得待识别的图像数据作为神经网络的输入数据;基于待识别的图像数据执行与神经网络的每个层有关的操作,以获得图像识别的结果并且输出图像识别的结果。神经网络的第一层的输入数据可以是待识别的图像数据,神经网络的第一层之外的层的输入数据可以是前一层的输出数据。深度学习可以是用于根据大数据集解决问题(诸如,图像识别或语音识别)的机器学习方案。深度学习可被理解为在基于准备的训练数据训练神经网络的同时解决优化问题以寻找能量最小化的点的处理。
通过深度学习的有监督学习或无监督学习,神经网络的结构或与模型对应的权重可被获得,输入数据和输出数据可通过权重彼此映射。例如,当神经网络的宽度和深度足够大时,神经网络可具有足够大的容量以实现任意功能。当通过适当的训练处理在足够大量的训练数据上训练神经网络时,可实现最佳性能。
在下面的描述中,神经网络或网络参数(例如,权重)可被表达为“预训练的”,其中“预”可指示在神经网络被“启动”之前的状态。“启动的”神经网络可指示神经网络可准备好进行推断。例如,神经网络的“启动”可包括将神经网络加载到存储器中,或者在将神经网络加载到存储器中之后将用于推断的输入数据输入到神经网络。
神经网络可包括多个层。在这个示例中,神经网络可被称为深度神经网络(DNN)。多个层可包括输入层、至少一个隐藏层和输出层。目标模型110可包括多个元素(例如,元素111)。例如,目标模型110的多个元素可对应于神经网络的组件(例如,多个层或多个节点)。在下面的描述中,目标模型110的每个元素对应于神经网络的层,然而,示例不限于此。例如,下面的描述可适用于目标模型110的每个元素对应于神经网络的另外的组件而非层的示例。
神经网络可包括各种类型的网络,例如,全连接网络、卷积神经网络(CNN)或循环神经网络(RNN)。例如,神经网络中的多个层的至少部分可对应于CNN,并且另外的部分可对应于全连接网络。此外,神经网络可包括基于每种类型的多个层。例如,神经网络的多个层可包括各种类型的层(例如,全连接层、卷积层或循环层)中的至少一种。
诸如模型并行化和/或数据并行化的策略可用作更快速地收敛到结果以处理与神经网络模型的训练和/或推断有关的操作的方案。并行处理和并行化策略可被理解为包括分布式处理和分布策略的构思。模型并行化是将神经网络模型进行划分并在不同的加速器中执行计算的方案,数据并行化是将作为输入给出的数据进行划分并在不同的加速器中执行计算的方案。模型并行化可广义地分为使用流水线和层间并行的方案以及层内并行方案。
层间并行是将神经网络模型中的层分配给不同的加速器并执行计算的方案,层内并行是将神经网络模型的层的内部值分配给不同的加速器并执行计算的方案。层的内部值在CNN的情况下可以是核权重和输入特征图,或者在RNN的情况下可以是形成RNN的层的单元的权重或用于计算的其他信息。
还存在节点之间的并行化方案。节点可表示通过网络连接的服务器或端点设备。节点之间的分布式处理可被执行,以分配神经网络模型的权重并执行训练和推断。为此,可主要使用参数共享方案或消息传递接口(MPI)。此外,使用参数共享方案和MPI的混合方案可被使用。
用于以上并行化方案的策略可包括异步方案和同步方案。同步训练是当工人(worker)学习权重的工作被完成并且所有数据被收集时更新神经网络模型的方案。异步训练是这样的方案:当计算终止时,无论另外的工人的动作如何,每个工人立即基于通过每个工人的计算获得的值来更新神经网络模型。
此外,可根据权重的特性是密集的还是稀疏的来不同地应用策略。密集的权重指示权重矩阵中很少存在零,稀疏的权重指示权重矩阵中存在多个零或连续的零。
这样的各种并行化方案和策略可用作并行化策略的元素。例如,并行化策略元素可包括:并行化方案(诸如,层内并行或层间并行);指示划分模型、层或数据的方向(例如,宽度方向、高度方向、通道方向或批量方向)的划分维度(partition dimension);指示将被划分的模型的数量、将被划分的层的数量或将被划分的数据的数量的划分数量;处理装置(诸如,用于执行并行处理的处理器(例如,神经网络处理器(NPU)、图形处理器(GPU)、NPU#1或NPU#2)或核(例如,NPU核#1或NPU核#5))的信息;以及关于并行化算法(诸如,异步算法、同步算法或规约算法(all-reduce algorithm))的信息。除了以上元素之外,并行化策略元素可包括通过各种论文和学术研究已知的与并行化相关的各种方法和策略。
目标模型110的并行化策略可包括各种策略元素,以执行与目标模型110的训练和/或推断有关的各种操作的并行处理。并行处理设备100可针对目标模型110的每个元素生成以上并行化策略,并且可基于并行化策略来执行目标模型110的每个元素,以用于目标模型110的训练和/或推断。
例如,并行处理设备100可提取元素111的元数据112,可将元数据112与参考数据库(DB)120的每个参考信息进行比较,可在参考DB 120的多个参考信息之中选择与元素111对应的参考信息121,并且可基于参考信息121生成元素111的并行化策略。在一个示例中,元素111也可被称为目标元素或目标层。换言之,目标层可以是从神经网络的多个层选择的一个或多个层。参考DB 120可包括多个参考信息。每个参考信息可对应于与元素111对应的单元。例如,当目标模型110的每个元素对应于神经网络的层时,参考DB 120的每个参考信息也可对应于神经网络的层。在这个示例中,每个参考信息可被称作“参考层信息”。
参考DB 120的每个参考信息可包括参考元数据或参考并行化策略。并行处理设备100可将元数据112与每个参考信息的参考元数据进行比较,并且可选择参考信息121。在参考DB 120的所有参考信息之中参考信息121可具有与元数据112最相似的参考元数据。例如,参考信息121的参考元数据可与元数据112相同,或者尽管与元数据112不相同,但是与其他参考信息的参考元数据相比参考信息121可与元数据112最相似。
并行处理设备100可基于参考信息121的参考并行化策略来生成元素111的并行化策略。参考并行化策略可包括与各种并行化策略元素相关的应用信息。例如,并行处理设备100可将参考信息121的参考并行化策略选择为元素111的并行化策略。在这个示例中,并行处理设备100可基于生成的并行化策略来执行针对元素111的并行处理(例如,训练和/或推断)。并行处理设备100可针对目标模型110的每个元素重复以上处理,以针对每个元素生成并行化策略并且针对每个元素执行并行处理,使得神经网络可更快速地收敛到结果,从而提高神经网络识别图像的处理速度或训练神经网络的速度。
为了对现有神经网络模型的并行处理进行优化,需要离线(例如,神经网络模型不被执行的时间)使用模拟器和模型剖析(model profiling)。这是因为,尽管用于训练或推断神经网络模型的应用需要向用户保证高训练速率和快的响应时间(时延),但是当在线(例如,神经网络模型被执行的时间)执行模拟和剖析时,训练速率和响应时间可能减少。
根据示例,并行处理设备100可使用参考DB 120来最小化训练速率和响应时间,因此并行化策略可在运行时被生成。例如,并行处理设备100可适用于系统(例如,被配置为实时学习或推断数据的自主车辆以及需要执行大量数据的并行处理的云计算和数据中心)。近来,随着人工智能技术的发展,神经网络模型应用正在变得大且多样化,并且需要大量的时间和努力来建立神经网络模型应用的并行化策略。根据示例,并行处理设备100可通过持续的更新来生成新的并行化策略,因此可应对以上大且多样化的应用。
图2和图3示出并行处理设备的每个组件的并行处理操作的示例。图2示出运行时引擎220、参考DB 230、策略管理器240和相似度测量器250的操作。运行时引擎220、参考DB230、策略管理器240和相似度测量器250可被实现为至少一个硬件模块、至少一个软件模块和/或他们的组合。以下将从运行时引擎220、参考DB 230、策略管理器240和相似度测量器250的角度描述与并行处理有关的操作,但是与并行处理有关的操作不需要一定由单独的组件(诸如,运行时引擎220、参考DB 230、策略管理器240和相似度测量器250)执行。例如,被描述为由一个组件执行的操作可由另一个组件执行,或者以上操作可由单个集成组件(例如,并行处理设备)执行。
运行时引擎220可执行作为输入给出的目标模型210。例如,运行时引擎220可执行目标模型210,以训练和/或推断目标模型210。运行时引擎220可基于目标模型210的每个目标层的并行化策略来执行目标模型210。例如,可将第一参考层信息231的第一参考并行化策略采用为第一目标层211的并行化策略,可将第三参考层信息233的第三参考并行化策略采用为第二目标层212的并行化策略。在这个示例中,运行时引擎220可基于第一参考并行化策略来执行第一目标层211,并且可基于第三参考并行化策略来执行第二目标层212。此外,运行时引擎220可输出目标模型210或每个目标层的执行时间。执行时间可用于评估每个并行化策略的性能。
参考DB 230可包括与各种参考层中的每个参考层相关的参考层信息。每个参考层的参考层信息可包括与每个参考层相关的参考元数据和参考并行化策略。例如,第一参考层信息231可包括与第一参考层对应的第一参考元数据和第一参考并行化策略。参考元数据可包括参考层的元数据,参考并行化策略可包括被应用于参考层的并行化策略和并行化策略的性能(例如,执行时间)。
在一个示例中,预定的神经网络的层的并行化策略可能已经在过去生成。在这个示例中,层的广泛模拟或剖析可离线执行,并且最佳并行化策略可已经被建立。层可被定义为第一参考层,层的元数据可被定义为第一参考元数据,层的并行化策略可被定义为第一并行化策略,第一参考层、第一参考元数据和第一并行化策略可被存储在参考DB 230中。
如上所述,参考DB 230可存储与离线执行的最佳并行化策略相关的数据,作为参考层信息的初始数据。初始数据可用于在更新并行化策略的处理中建立新的并行化策略。例如,当在参考层之中存在具有与第一目标层211的元数据相同的参考元数据的参考层时,可将具有与第一目标层211的元数据相同的参考元数据的参考层选择为与第一目标层211对应的层。例如,当在参考层之中不存在具有与第一目标层211的元数据相同的参考元数据的参考层时,可将具有与第一目标层211的元数据最相似的参考元数据的参考层选择为与第一目标层211对应的层。
由于选择的参考层的元数据不同于第一目标层211的元数据,因此选择的参考层的并行化策略可不被认为针对第一目标层211进行了优化。因此,即使选择的参考层的并行化策略被应用于第一目标层211,策略管理器240也可生成第一目标层211的新的并行化策略。例如,策略管理器240可通过执行与第一目标层211相关的模拟或剖析来生成第一目标层211的最佳并行化策略。
相似度测量器250可将目标模型210的每个目标层的元数据与参考DB230的每个参考层的参考元数据进行比较,并且可测量每个目标层与每个参考层之间的相似度。例如,相似度测量器250可提取第一目标层211的元数据,可将第一目标层211的元数据与第一参考层信息231的第一参考元数据、第二参考层信息232的第二参考元数据和第三参考层信息233的第三参考元数据中的每个进行比较,并且可对第一目标层211与第一参考层、第二参考层和第三参考层中的每个之间的相似度进行测量。
例如,元数据可包括输入数据、输出数据、权重的特性(例如,大小或稀疏性)以及层的类型(例如,全连接层、卷积层或循环层)。在CNN中,层的元数据可包括核大小、填充(pad)和步长(stride)。在RNN中,层的元数据可包括单元信息(cell information)、门信息(gate information)和输入嵌入。参考元数据还可包括与以上描述的项目相关的信息。相似度测量器250可通过将目标层的元数据与参考层的参考元数据之间的对应项进行比较来测量目标层与参考层之间的相似度。
策略管理器240可基于由相似度测量器250测量的相似度在参考层之中选择与目标层对应的层(在下文中,被称为“对应层”),并且可基于与对应层匹配的参考并行化策略来生成目标层的并行化策略。策略管理器240可将具有最高相似度的参考层选择为对应层。例如,当参考层之中的第一参考层具有与第一目标层211最高的相似度时,策略管理器240可将第一参考层选择为第一目标层211的对应层,并且可基于第一参考并行化策略生成第一目标层211的并行化策略。
图3示出与目标模型310相关的参考DB 320、相似度测量器330和策略管理器340的并行处理操作。参考DB 320、相似度测量器330和策略管理器340可被实现为至少一个硬件模块、至少一个软件模块和/或它们的组合。此外,如以上参照图2所述,以下将描述的操作不一定由参考DB 320、相似度测量器330和策略管理器340单独执行。例如,被描述为由一个组件执行的操作可由另一个组件执行,或者以上操作可由单个集成组件(例如,并行处理设备)执行。
相似度测量器330可提取包括在目标模型310中的目标层311的元数据312。元数据312可包括层的类型(例如,全连接层、卷积层或循环层)或层的特性(例如,输入数据、输出数据和权重的特性)。相似度测量器330可将元数据312与每个参考层的参考元数据进行比较,并且可测量目标层311与每个参考层之间的相似度。测量结果332可包括关于目标层311与每个参考层之间的相似度的信息。
相似度测量器330可包括基于神经网络的相似度测量模型331。可基于参考DB 320预训练相似度测量模型331。例如,相似度测量模型331可被预训练为响应于元数据312的输入而将元数据312与参考DB 320的每个参考元数据进行比较,并且输出目标层311与每个参考层之间的相似度。
例如,当元数据312与第一参考层的第一参考元数据非常相似并且与第二参考层的第二参考元数据相同时,在测量结果332中,目标层311与第一参考层之间的相似度以及目标层311与第二参考层之间的相似度可分别是“0.95”和“1.0”。如上所述,响应于生成新的并行化策略,可将新的参考层信息添加到参考DB 320。在这个示例中,相似度测量模型331可基于预定的条件(例如,添加的新的参考层信息的量超过阈值)来更新。
策略管理器340可基于元数据312、参考层信息321和测量结果332中的任何一个或任何组合来生成目标层311的并行化策略。例如,当参考层之中的第一参考层具有与目标层311最高的相似度时,策略管理器340可将第一参考层选择为目标层311的对应层,并且可基于第一参考并行化策略生成目标层311的并行化策略。
图4示出基于是否存在具有与目标层的元数据相同的元数据的参考层而采用并行化策略的示例。参照图4,在操作410中,并行处理设备获得相似度测量结果、参考层信息和元数据。例如,并行处理设备可从相似度测量器获得相似度测量结果,可从参考DB获得参考层信息,并且可从目标层获得元数据。
在操作420中,并行处理设备确定是否存在具有与目标层的元数据相同的元数据的参考层(在下文中,被简称为“相同参考层”)。例如,在确定目标层的并行化策略时,可基于相同参考层是否在参考DB中来执行不同的处理过程。当存在相同参考层时,在操作430中可采用相同参考层的参考并行化策略,并且可基于相同参考层的参考并行化策略来确定目标层的并行化策略。当不存在相同参考层时,在操作440中可采用与目标层最相似的参考层(在下文中,被简称为“最相似参考层”)而不是相同参考层的参考并行化策略,并且可基于最相似参考层的参考并行化策略来确定目标层的并行化策略。
不存在相同参考层可指示选择的参考并行化策略针对目标层可能不是最佳的。这是因为,由于即使每个参考层的最佳并行化策略在参考DB中,与目标层匹配的参考层也不存在,因此尽管有最相似参考层,也不能保证最相似参考层的参考并行化策略针对目标层是最佳的。因此,可另外执行寻找针对目标层最佳的并行化策略的任务。然而,由于寻找新的并行化策略的任务需要相对较长的时间段,所以可将最相似参考层的并行化策略应用于目标层,并且可在将来执行寻找新的并行化策略的任务。
当不存在相同参考层时,并行处理设备可将与目标层的元数据对应的参考层信息添加到参考DB。这是因为目标层对应于具有新类型的元数据的层,所以需要将目标层的新的策略包括在参考DB中。可将最相似参考层的参考并行化策略存储为新的参考层信息的参考并行化策略。新的参考层信息的参考并行化策略可稍后通过优化处理而被更新。
在一个示例中,参考DB的每个参考层信息可包括链接信息。当针对具有参考层信息的参考层优化了参考层信息的参考并行化策略时,可将参考层信息的链接信息表示为空(empty)。例如,可将与初始数据对应的参考层信息的链接信息表示为空。例如,当没有针对具有参考层信息的参考层来优化参考层信息的参考并行化策略时,可将参考层信息的链接信息示出为最相似参考层的标识信息。
例如,当如上所述目标层在参考DB中不具有相同参考层时,可将目标层的新的参考层信息添加到参考DB。在这个示例中,当将新的参考层信息添加到参考DB时,可将与目标层最相似的参考层的标识信息示出为新的参考层信息的链接信息。当生成目标层的新的最佳并行化策略时,可将新的参考层信息的参考并行化策略更新为新的并行化策略,并且将新的参考层信息的链接信息改变为空状态。
图5示出与新的并行化策略的生成有关的操作的示例。参照图5,在操作510中,并行处理设备确定是否满足更新条件。例如,可基于被添加到参考DB的新的参考层信息的量(例如,十项)或在先前更新之后经过的时间段(例如,一天或一周)来设置更新条件。在这个示例中,可将数值(例如,十项、一天或一周)设置为阈值。例如,更新条件可包括将十项新的参考层信息添加到参考DB。在这个示例中,当十项新的参考层信息被添加时,操作520、530和540可被执行。
在操作520中,并行处理设备针对每个新的参考层生成新的并行化策略。例如,并行处理设备可通过执行与新的参考层有关的剖析或模拟来针对新的参考层生成最佳并行化策略。在这个示例中,与现有的离线剖析和模拟处理相比,批量处理的单元可减小。由于小单元的批量处理的剖析而不是整个模型的离线剖析和模拟,所以与现有的离线剖析和模拟相比,可能需要相对少量的时间。
当生成新的并行化策略时,并行处理设备可在操作530中更新参考DB,并且可在操作540中重新训练相似度测量器(例如,相似度测量模块)。例如,并行处理设备可在参考DB的新的参考层信息中记录新的并行化策略,而不是作为参考并行化策略记录的最相似参考层的并行化策略。此外,并行处理设备可基于更新的参考DB重新训练相似度测量器。如上所述,可基于参考DB训练相似度测量模块。由于参考DB响应于新的并行化策略的生成而被更新,所以相似度测量模块可基于更新的参考DB被重新训练。当操作540完成时,操作510可被重新执行。
与新的并行化策略的生成有关的图5的操作510至540可独立于与目标层的并行处理有关的图4的操作410至440来执行。例如,当正在执行目标层的并行处理时,可在后台中执行与新的并行化策略的生成有关的操作。此外,在完成参考DB的更新或相似度测量器的重新训练之前,可从现有参考DB中选择并行化策略。通过以上一系列操作的独立性,可确保在运行时执行并行处理的速度。此外,现有数据可被使用直到更新完全终止,因此并行处理的稳定性可被保持。
图6示出更新之前和更新之后的参考DB的示例。参照图6,参考DB 610存储更新之前的第一参考层信息611至第六参考层信息616,参考DB 630存储更新之后的第一参考层信息631至第六参考层信息636。
第一参考层信息611至第六参考层信息616和第一参考层信息631至第六参考层信息636可包括参考层的标识信息ID#1至ID#6、参考元数据RMD#1至RMD#6、参考并行化策略RDP#1至RDP#6以及链接信息“空”、ID#2和ID#4。例如,第一参考层信息611和631、第二参考层信息612和632以及第三参考层信息613和633可对应于初始数据。如上所述,初始数据可包括通过处理(例如,模拟或剖析)离线建立的并行化策略。因此,第一参考层信息611和631、第二参考层信息612和632以及第三参考层信息613和633中的每个的链接信息可被表示为“空”。
此外,由于不存在相同参考层,因此第四参考层信息614和第六参考层信息616可被新添加到参考DB 610。在一个示例中,第二参考层可以是与第四参考层最相似的层。因此,第二参考层的标识信息ID#2可被指示为第四参考层信息614的链接信息,第二参考层的参考并行化策略RDP#2可被指示为第四参考层信息614的参考并行化策略。相似地,第四参考层的标识信息ID#4可被指示为第六参考层信息616的链接信息,第二参考层的参考并行化策略RDP#2可被指示为第六参考层信息616的参考并行化策略。换句话说,可确认在第四参考层信息614被添加到参考DB 610之后、参考DB 610被更新之前,第六参考层信息616被添加到参考DB 610。
如上所述,并行处理设备可响应于更新条件被满足而更新参考DB 610。例如,策略管理器620的模拟器621可生成第四参考层的新的并行化策略RDP#4以及第六参考层的新的并行化策略RDP#6,并行处理设备可基于新的并行化策略RDP#4和RDP#6来更新第四参考层信息614和第六参考层信息616。此外,并行处理设备可将第四参考层信息614和第六参考层信息616的链接信息改变为空状态。第四参考层信息634和第六参考层信息636可分别指示第四参考层信息614和第六参考层信息616被最终更新的状态。参考DB 610还在更新之前存储第五参考层信息615,参考DB 630在更新之后存储第五参考层信息635。
图7示出总体并行处理过程的示例。参照图7,并行处理设备在操作710中提取包括在目标模型中的目标层的元数据,在操作720中通过将目标层的元数据与每个参考层的参考元数据进行比较来测量目标层与每个参考层之间的相似度,在操作730中基于相似度在参考层之中选择对应层,并且在操作740中基于与对应层匹配的参考并行化策略生成目标层的并行化策略。以上图1至图6的描述也适用于并行处理过程。
图8示出并行处理设备800的示例。参照图8,并行处理设备800包括处理器810和存储器820。存储器820可连接到处理器810,并且可存储可由处理器810执行的指令、将由处理器810计算的数据或由处理器810处理的数据。存储器820可包括例如非暂时性计算机可读存储介质(例如,高速随机存取存储器(RAM))和/或非易失性计算机可读存储介质(例如,至少一个磁盘存储装置、闪存装置或其他非易失性固态存储器装置)。
处理器810可执行指令,以执行以上参照图1至图7描述的操作中的至少一个操作。例如,处理器810可提取包括在目标模型中的目标层的元数据,可将目标层的元数据与每个参考层中的参考元数据进行比较,可测量目标层与每个参考层之间的相似度,可基于相似度在参考层之中选择对应层,并且可基于与对应层匹配的参考并行化策略来生成目标层的并行化策略。
图9示出电子设备900的示例。电子设备900可在结构上和/或功能上包括图1的并行处理设备100和/或图8的并行处理设备800。
参照图9,电子设备900包括处理器910、存储器920、相机930、存储装置940、输入装置950、输出装置960以及网络接口970。处理器910、存储器920、相机930、存储装置940、输入装置950、输出装置960以及网络接口970可经由通信总线980彼此通信。例如,电子设备900可被实现为例如移动装置(诸如,移动电话、智能电话、个人数字助理(PDA)、上网本、平板计算机或膝上型计算机)、可穿戴装置(诸如,智能手表、智能手环或智能眼镜)、计算装置(诸如,台式机或服务器)、家用电器(诸如,电视(TV)、智能TV或冰箱)、安全装置(诸如,门锁)或车辆(诸如,智能车辆)的至少一部分。
处理器910可执行电子设备900中的指令和功能。例如,处理器910可处理存储在存储器920或存储装置940中的指令。处理器910可执行以上参照图1至图8描述的操作中的至少一个操作。
存储器920可包括非暂时性计算机可读存储介质或非暂时性计算机可读存储装置。存储器920可存储将由处理器910执行的指令,并且还存储当软件和/或应用正由电子设备900执行时与软件和/或应用相关的信息。
相机930可捕获照片和/或视频。例如,相机930可捕获包括用户的面部的面部图像、包括用户的眼睛的眼睛图像或包括用户的虹膜的虹膜图像。在一个示例中,相机930可提供包括与对象相关的深度信息的三维(3D)图像。
存储装置940可包括非暂时性计算机可读存储介质或非暂时性计算机可读存储装置。存储设备940可存储在并行处理过程中使用的各种数据和模块(例如,运行时引擎、参考DB、策略管理器和相似度测量器)。在一个示例中,存储装置940可在相对长的时间段内存储比存储器920的信息量更大的信息量。例如,存储装置940可包括磁性硬盘、光盘、闪存、软盘或本领域已知的其他形式的非易失性存储器。
输入装置950可通过使用键盘和鼠标的传统输入方案以及通过新的输入方案(诸如,触摸输入、语音输入和图像输入)从用户接收输入。例如,输入装置950可检测来自键盘、鼠标、触摸屏、麦克风或用户的输入,并且可包括被配置为将检测的输入传送到电子设备900的任何其他装置。
输出装置960可通过视觉通道、听觉通道或触觉通道向用户提供电子设备900的输出。输出装置960可包括例如显示器、触摸屏、扬声器、振动发生器或被配置为向用户提供输出的任何其他装置。网络接口970可经由有线网络或无线网络与外部装置通信。
在此描述的设备、单元、模块、装置和其他组件由硬件组件来实现。可用于执行本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,执行本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。处理器或计算机可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用),以执行本申请中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,该计算硬件被如上所述地实现为执行指令或软件,以执行本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制处理器或计算机以实现硬件组件并执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由处理器或计算机使用解释器执行的高级代码。本领域普通技术的编程人员可基于附图中示出的框图和流程图以及说明书中的对应描述,容易地编写指令或软件,附图中示出的框图和流程图以及说明书中的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制处理器或计算机以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(SD)或者极速数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机,使得处理器和计算机能够执行指令。
虽然本公开包括特定的示例,但是对于本领域普通技术人员来说将清楚的是,在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求和他们的等同物限定,并且在权利要求和它们的等同物的范围内的所有变化应被解释为包括在公开中。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:用于生成式神经网络的权重解调