CN111753978A - 一种前向耗时的确定方法、装置及设备 - Google Patents

一种前向耗时的确定方法、装置及设备 Download PDF

Info

Publication number
CN111753978A
CN111753978A CN202010062755.XA CN202010062755A CN111753978A CN 111753978 A CN111753978 A CN 111753978A CN 202010062755 A CN202010062755 A CN 202010062755A CN 111753978 A CN111753978 A CN 111753978A
Authority
CN
China
Prior art keywords
operation node
nodes
target
time consumption
network
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.)
Granted
Application number
CN202010062755.XA
Other languages
English (en)
Other versions
CN111753978B (zh
Inventor
张如意
李哲暘
杨子伟
谭文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010062755.XA priority Critical patent/CN111753978B/zh
Publication of CN111753978A publication Critical patent/CN111753978A/zh
Application granted granted Critical
Publication of CN111753978B publication Critical patent/CN111753978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

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)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本申请提供一种前向耗时的确定方法、装置及设备,该方法包括:将待测神经网络划分为多个操作节点;从所述多个操作节点中选取至少一个操作节点作为目标操作节点;针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;根据所述操作节点集合的信息获取所述目标操作节点的耗时;根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。通过本申请的技术方案,能够有效预测待测神经网络的前向耗时。

Description

一种前向耗时的确定方法、装置及设备
技术领域
本申请涉及机器学习领域,尤其是一种前向耗时的确定方法、装置及设备。
背景技术
机器学习是实现人工智能的一种途径,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习更加注重算法设计,使计算机能够自动地从数据中学习规律,并利用规律对未知数据进行预测。
机器学习已经有了十分广泛的应用,如深度学习、数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用等等。
神经网络是以人脑为模型的机器学习,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法模型,神经网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
神经网络的前向耗时,是网络结构搜索任务和网络裁剪任务的重要依据,因此,需要有效预测神经网络的前向耗时。但是,应该如何有效预测神经网络的前向耗时,在相关技术中并没有给出合理的解决方案。
发明内容
有鉴于此,本申请提供一种前向耗时的确定方法,所述方法包括:
将待测神经网络划分为多个操作节点;
从所述多个操作节点中选取至少一个操作节点作为目标操作节点;
针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
根据所述操作节点集合的信息获取所述目标操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
本申请提供一种前向耗时的确定方法,所述方法包括:
将待测神经网络划分为多个操作节点;
将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
根据每个操作节点集合的信息获取所述操作节点集合的耗时;
根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
本申请提供一种前向耗时的确定装置,所述装置包括:操作节点集合获取模块,用于将待测神经网络划分为多个操作节点;从所述多个操作节点中选取至少一个操作节点作为目标操作节点;针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;操作节点耗时获取模块,用于根据所述操作节点集合的信息获取所述目标操作节点的耗时;耗时输出模块,用于根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
本申请提供一种前向耗时的确定装置,所述装置包括:操作节点集合获取模块,用于将待测神经网络划分为多个操作节点;将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;操作节点耗时获取模块,用于根据每个操作节点集合的信息获取所述操作节点集合的耗时;耗时输出模块,用于根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
本申请提供一种前向耗时的确定设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
将待测神经网络划分为多个操作节点;
从所述多个操作节点中选取至少一个操作节点作为目标操作节点;
针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
根据所述操作节点集合的信息获取所述目标操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
本申请提供一种前向耗时的确定设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
将待测神经网络划分为多个操作节点;
将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
根据每个操作节点集合的信息获取所述操作节点集合的耗时;
根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
由以上技术方案可见,本申请实施例中,根据操作节点集合的信息获取目标操作节点的耗时,而操作节点集合包括目标操作节点和关联操作节点,即基于目标操作节点和关联操作节点的信息获取目标操作节点的耗时,而不是采用目标操作节点的信息获取目标操作节点的耗时,从而提高目标操作节点的耗时的准确性。根据目标操作节点的耗时确定待测神经网络的前向耗时,由于目标操作节点的耗时估计比较准确,因此,能够有效预测待测神经网络的前向耗时。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的前向耗时的确定方法的流程图;
图2A-图2I是本申请一种实施方式中的操作节点集合划分示意图;
图3A-图3C是本申请一种实施方式中的耗时预测示意图;
图4是本申请另一种实施方式中的前向耗时的确定方法的流程图;
图5是本申请另一种实施方式中的前向耗时的确定方法的流程图;
图6是本申请另一种实施方式中的前向耗时的确定方法的流程图;
图7A是本申请一种实施方式中的前向耗时的确定装置的结构图;
图7B是本申请一种实施方式中的前向耗时的确定装置的结构图;
图7C是本申请一种实施方式中的前向耗时的确定设备的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
机器学习是实现人工智能的一种途径,用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。进一步的,神经网络是以人脑为模型的机器学习,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法模型。
示例性的,神经网络可以包括但不限于:卷积神经网络(简称CNN)、循环神经网络(简称RNN)、全连接网络等。神经网络的结构单元可以包括但不限于:卷积层(Conv)、池化层(Pool)、激励层、全连接层(FC)等,对此不做限制。
在卷积层中,通过使用卷积核对数据进行卷积运算,使数据特征增强,卷积层在空间范围内使用卷积核进行卷积运算,该卷积核可以是m*n大小的矩阵,卷积层的输入与卷积核进行卷积,可以得到卷积层的输出。卷积运算实际是一个滤波过程,在卷积运算中,是将数据上点(x,y)的值f(x,y)与卷积核w(x,y)进行卷积。例如,提供4*4的卷积核,该4*4的卷积核包含16个数值,这16个数值的大小可以根据需要配置。按照4*4的大小在数据上依次滑动,得到多个4*4的滑动窗口,将该4*4的卷积核与每个滑动窗口进行卷积,得到多个卷积特征,这些卷积特征就是卷积层的输出,且被提供给下一层。
在池化层中,实际上就是一个降采样的过程,通过对多个特征(如卷积层输出的特征)进行取最大值、取最小值、取平均值等操作,从而可以减少计算量,并保持特征不变性。在池化层中,可以利用数据局部相关性的原理,对数据进行子抽样,从而可以减少数据处理量,并保留数据中的有用信息。
在激励层中,可以使用激活函数(如非线性函数)对特征(如池化层输出的特征)进行映射,从而引入非线性因素,使得神经网络通过非线性的组合而增强表达能力。其中,激励层的激活函数可以包括但不限于ReLU(Rectified Linear Units,整流线性单元)函数,以ReLU函数为例,则该ReLU函数可以将池化层输出的所有特征中,小于0的特征置0,而大于0的特征保持不变。
在全连接层中,该全连接层用于将输入给本全连接层的所有特征进行全连接处理,从而得到一个特征向量,且该特征向量中可以包括多个特征。进一步的,全连接层还可以采用1*1的卷积层,从而可以构成全卷积的网络。
在实际应用中,可以根据不同需求,将一个或多个卷积层、一个或多个池化层、一个或多个激励层和一个或多个全连接层进行组合构建神经网络。
当然,上述只是神经网络的示例,对此神经网络的结构不做限制,除了卷积层、池化层、激励层和全连接层,神经网络还可以包括其它类型的层。
为了使用神经网络进行业务处理(例如人脸检测、人体检测、车辆检测等,对此业务处理不做限制),涉及神经网络的训练过程、神经网络的使用过程。
在神经网络的训练过程中,可以利用训练数据训练神经网络内的各神经网络参数,如卷积层参数(如卷积核参数)、池化层参数、激励层参数、全连接层参数等,对此不做限制,可以训练神经网络内的所有神经网络参数。通过训练神经网络内各神经网络参数,可以使神经网络拟合出输入和输出的映射关系。
在神经网络的使用过程中,可以将输入数据提供给神经网络,由神经网络对输入数据进行处理,如利用所有神经网络参数对输入数据进行处理,得到输出数据,且输入数据与输出数据满足神经网络拟合出的输入和输出的映射关系。最终,利用神经网络实现业务处理,如人脸检测、人体检测、车辆检测等。
在神经网络的使用过程中,从将输入数据提供给神经网络开始,一直到神经网络得到输出数据为止,这个过程所消耗的时间称为神经网络的前向耗时(即从输入到输出的时间),神经网络的前向耗时是网络结构搜索任务和网络裁剪任务的重要依据,因此,需要有效预测神经网络的前向耗时。但是,应该如何有效预测神经网络的前向耗时,在相关技术中并没有给出合理的解决方案。
针对上述发现,本申请实施例提出一种前向耗时的确定方法,能够有效预测待测神经网络的前向耗时。以下结合具体实施例,对本申请进行说明。
实施例1:参见图1所示,为前向耗时的确定方法的流程示意图,包括:
步骤101,将待测神经网络划分为多个操作节点。示例性的,操作节点是待测神经网络中不能再拆分的单一操作,比如,卷积操作,池化操作等。
示例性的,当需要确定某个神经网络的前向耗时时,可以将该神经网络作为待测神经网络,并将该待测神经网络划分为多个操作节点。
例如,待测神经网络可以包括多个操作节点,针对待测神经网络的每个操作节点,可以为待测神经网络的某一层,如卷积层、池化层、激励层和全连接层等,例如,待测神经网络包括4个卷积层、3个池化层、2个激励层和1个全连接层时,则待测神经网络可以包括10个操作节点,4个卷积层对应4个操作节点,3个池化层对应3个操作节点,2个激励层对应2个操作节点,1个全连接层对应1个操作节点。因此,可以将待测神经网络划分为多个操作节点。
示例性的,待测神经网络的多个操作节点是具有顺序关系的,例如,待测神经网络依次的顺序为操作节点1、操作节点2、操作节点3、操作节点4。
步骤102,从多个操作节点中选取至少一个操作节点作为目标操作节点。
在一种可能的实施方式中,可以将多个操作节点中的部分操作节点选取为目标操作节点。例如,基于多个操作节点的顺序关系,将多个操作节点中的第一个操作节点选取为目标操作节点。或者,将多个操作节点中的第二个操作节点选取为目标操作节点。或者,将多个操作节点中的第一个操作节点和第二个操作节点选取为目标操作节点。或者,将多个操作节点中的最后一个操作节点选取为目标操作节点。或者,将多个操作节点中的倒数第二个操作节点和最后一个操作节点选取为目标操作节点。当然,上述只是几个示例,对此不做限制,可以将多个操作节点中的任意操作节点选取为目标操作节点。
在另一种可能的实施方式中,可以将多个操作节点中的全部操作节点选取为目标操作节点。例如,假设待测神经网络包括操作节点1、操作节点2和操作节点3,则将操作节点1、操作节点2和操作节点3均选取为目标操作节点。
步骤103,针对每个目标操作节点,确定与该目标操作节点对应的操作节点集合。该操作节点集合包括该目标操作节点和该目标操作节点的关联操作节点,该关联操作节点为多个操作节点中除该目标操作节点之外的操作节点。
示例性的,多个操作节点中除该目标操作节点之外的操作节点,可以是除该目标操作节点之外的所有操作节点,或除该目标操作节点之外的部分操作节点。多个操作节点中除该目标操作节点之外的操作节点,可以是1个操作节点,或2个操作节点,还可以为3个或3个以上的操作节点,对此不做限制。
示例性的,针对每个目标操作节点来说,该目标操作节点的关联操作节点可以为1个,也可以为2个,还可以为3个或3个以上,对此不做限制。例如,假设待测神经网络包括操作节点1、操作节点2和操作节点3,若操作节点1为目标操作节点,则操作节点1的关联操作节点可以为操作节点2,或操作节点3,或操作节点2和操作节点3,对此关联操作节点不做限制。
在一种可能的实施方式中,基于多个操作节点的顺序关系,目标操作节点的关联操作节点可以包括但不限于:目标操作节点相邻的前M1个操作节点;或者,目标操作节点相邻的后M2个操作节点;或者,目标操作节点相邻的前M3个操作节点和相邻的后M4个操作节点。M1,M2,M3和M4均可以为正整数。
例如,针对关联操作节点为目标操作节点相邻的前M1个操作节点的情况,假设M1为1,待测神经网络包括操作节点1、操作节点2和操作节点3。若操作节点1为目标操作节点,由于操作节点1没有相邻的前1个操作节点,因此,操作节点1没有关联操作节点。若操作节点2为目标操作节点,由于操作节点2相邻的前1个操作节点是操作节点1,因此,操作节点2的关联操作节点为操作节点1。若操作节点3为目标操作节点,由于操作节点3相邻的前1个操作节点是操作节点2,因此,操作节点3的关联操作节点为操作节点2。
假设M1为2,若操作节点1为目标操作节点,则操作节点1没有关联操作节点。若操作节点2为目标操作节点,由于操作节点2只有相邻的前1个操作节点1,因此,操作节点2的关联操作节点为操作节点1。若操作节点3为目标操作节点,则操作节点3的关联操作节点为操作节点1和操作节点2。
针对M1为3、4等其它情况,在此不再重复赘述。
又例如,针对关联操作节点为目标操作节点相邻的后M2个操作节点的情况,假设M2为1,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点3。若操作节点3为目标操作节点,则操作节点3没有关联操作节点。
假设M2为2,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2和操作节点3。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点3。若操作节点3为目标操作节点,则操作节点3没有关联操作节点。针对M2为3、4等其它情况,在此不再赘述。
又例如,针对关联操作节点为目标操作节点相邻的前M3个操作节点和相邻的后M4个操作节点的情况,假设M3为1,M4为1,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点1和操作节点3。若操作节点3为目标操作节点,则操作节点3的关联操作节点为操作节点2。
针对M3为1且M4为2,M3为2且M4为1,M3为2且M4为2,M3为1且M4为3,M3为2且M4为3等情况,在此不再赘述。
当然,上述过程只是给出了几个示例,对此不做限制。
在另一种可能的实施方式中,目标操作节点的关联操作节点可以为目标操作节点相邻的前一个操作节点(即M1的取值为1);或者,目标操作节点相邻的后一个操作节点(即M2的取值为1);或者,目标操作节点相邻的前一个操作节点(即M3的取值为1)和相邻的后一个操作节点(即M4的取值为1)。
在另一种可能的实施方式中,基于多个操作节点的顺序关系,目标操作节点的关联操作节点可以包括:情况一、若目标操作节点存在相邻的前一个操作节点,则关联操作节点可以为目标操作节点相邻的前一个操作节点,若目标操作节点不存在相邻的前一个操作节点,则关联操作节点可以为目标操作节点相邻的后一个操作节点。情况二、若目标操作节点存在相邻的后一个操作节点,则关联操作节点可以为目标操作节点相邻的后一个操作节点,若目标操作节点不存在相邻的后一个操作节点,则关联操作节点可以为目标操作节点相邻的前一个操作节点。情况三、若目标操作节点存在相邻的前一个操作节点且存在相邻的后一个操作节点,则关联操作节点可以为目标操作节点相邻的前一个操作节点和相邻的后一个操作节点;若目标操作节点存在相邻的前一个操作节点且不存在相邻的后一个操作节点,则关联操作节点可以为目标操作节点相邻的前一个操作节点;若目标操作节点存在相邻的后一个操作节点且不存在相邻的前一个操作节点,则关联操作节点可以为目标操作节点相邻的后一个操作节点。
针对情况一,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点1。若操作节点3为目标操作节点,则操作节点3的关联操作节点为操作节点2。针对情况二,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点3。若操作节点3为目标操作节点,则操作节点3的关联操作节点为操作节点2。针对情况三,若操作节点1为目标操作节点,则操作节点1的关联操作节点为操作节点2。若操作节点2为目标操作节点,则操作节点2的关联操作节点为操作节点1和操作节点3。若操作节点3为目标操作节点,则操作节点3的关联操作节点为操作节点2。当然,上述只是示例,对此不做限制。
在上述实施例中,示出了目标操作节点对应的关联操作节点,在此基础上,操作节点集合可以包括目标操作节点和关联操作节点。或者,操作节点集合可以包括目标操作节点,关联操作节点,以及目标操作节点与关联操作节点组成的整体网络。例如,假设操作节点1的关联操作节点为操作节点2,针对操作节点1对应的操作节点集合1,该操作节点集合1包括操作节点1和操作节点2。或者,操作节点集合1包括操作节点1,操作节点2,操作节点1与操作节点2组成的整体网络(该整体网络由操作节点1和操作节点2组成)。
以下结合几个具体应用场景,对上述操作节点集合的内容进行说明。
应用场景1:参见图2A所示,将待测神经网络划分为操作节点1,操作节点2,操作节点3,操作节点4,操作节点5,操作节点6,操作节点7,当然,操作节点的数量可以更多或更少,对此数量不做限制。将所有操作节点均选取为目标操作节点。针对操作节点1对应的操作节点集合1,操作节点集合1包括操作节点1和操作节点2;针对操作节点2对应的操作节点集合2,操作节点集合2包括操作节点2和操作节点3;针对操作节点3对应的操作节点集合3,操作节点集合3包括操作节点3和操作节点4;针对操作节点4对应的操作节点集合4,操作节点集合4包括操作节点4和操作节点5;针对操作节点5对应的操作节点集合5,操作节点集合5包括操作节点5和操作节点6;针对操作节点6对应的操作节点集合6,操作节点集合6包括操作节点6和操作节点7;针对操作节点7对应的操作节点集合7,操作节点集合7包括操作节点7和操作节点6。
综上所述,相邻的两个操作节点集合存在共有的操作节点,例如,操作节点集合1和操作节点集合2存在共有的操作节点2,操作节点集合2和操作节点集合3存在共有的操作节点3,以此类推。
应用场景2:参见图2B所示,可以将待测神经网络划分为操作节点1-操作节点7,将所有操作节点均选取为目标操作节点。操作节点集合1可以包括操作节点1和操作节点2;操作节点集合2可以包括操作节点1,操作节点2和操作节点3;操作节点集合3可以包括操作节点2,操作节点3和操作节点4;操作节点集合4可以包括操作节点3,操作节点4和操作节点5;操作节点集合5可以包括操作节点4,操作节点5和操作节点6;操作节点集合6可以包括操作节点5,操作节点6和操作节点7;操作节点集合7包括操作节点7和操作节点6。
综上所述,相邻的两个操作节点集合之间可以存在共有的操作节点,例如,操作节点集合1和操作节点集合2存在共有的操作节点1和操作节点2,操作节点集合2和操作节点集合3存在共有的操作节点2和操作节点3,以此类推。
应用场景3:参见图2C所示,可以将待测神经网络划分为操作节点1-操作节点7,将所有操作节点均选取为目标操作节点。操作节点集合1可以包括操作节点1和操作节点2;操作节点集合2可以包括操作节点2和操作节点3;操作节点集合3可以包括操作节点3和操作节点4;操作节点集合4可以包括操作节点2,操作节点3,操作节点4和操作节点5;操作节点集合5可以包括操作节点4,操作节点5;操作节点集合6可以包括操作节点5,操作节点6和操作节点7;操作节点集合7包括操作节点5,操作节点6和操作节点7。
综上所述,相邻的两个操作节点集合之间可以存在共有的操作节点,例如,操作节点集合1和操作节点集合2存在共有的操作节点2,操作节点集合2和操作节点集合3存在共有的操作节点3,以此类推。
在应用场景1和应用场景2中,操作节点集合是规则划分方式,例如,在应用场景1中,每个操作节点集合均包括两个操作节点,操作节点集合之间相差固定个数的操作节点,如操作节点集合2比操作节点集合1多了操作节点3,少了操作节点1,操作节点集合3比操作节点集合2多了操作节点4,少了操作节点2,以此类推。在应用场景2中,除了第一个操作节点集合和最后一个操作节点集合,其它操作节点集合均包括三个操作节点,操作节点集合之间相差固定个数的操作节点,如操作节点集合2比操作节点集合1多了操作节点3,操作节点集合3比操作节点集合2多了操作节点4,少了操作节点1,以此类推。
在应用场景3中,操作节点集合是不规则划分方式,例如,每个操作节点集合中的操作节点数量可以相同或不同,如操作节点集合1-操作节点集合3均包括2个操作节点,操作节点集合4包括4个操作节点,操作节点集合6包括3个操作节点。操作节点集合之间相差的操作节点个数不固定,如操作节点集合3比操作节点集合2多了操作节点4,少了操作节点2,但是,操作节点集合4比操作节点集合3多了操作节点2和操作节点5。
应用场景4:参见图2D所示,待测神经网络包括操作节点1-操作节点8,操作节点集合1包括操作节点1、操作节点2和操作节点3;操作节点集合2包括操作节点3-操作节点7。从图2D可以看出,操作节点集合1和操作节点集合2存在重叠的操作节点3,即,操作节点3是重叠的部分。
应用场景5:参见图2E所示,待测神经网络包括操作节点1-操作节点8,操作节点集合1可以包括操作节点1-操作节点3;操作节点集合2可以包括操作节点1-操作节点4。从图2E可以看出,操作节点集合1和操作节点集合2存在重叠的操作节点1、操作节点2以及操作节点3。
应用场景6:参见图2F所示,待测神经网络包括操作节点1-操作节点8,操作节点集合1可以包括操作节点1-操作节点4;操作节点集合2可以包括操作节点3-操作节点7。从图2F可以看出,操作节点集合1和操作节点集合2存在重叠的操作节点3和操作节点4。
应用场景7:参见图2G所示,待测神经网络包括操作节点1-操作节点8,操作节点集合1包括操作节点1,操作节点3和操作节点4;操作节点集合2包括操作节点1-操作节点7。从图2G看出,操作节点集合1和操作节点集合2存在重叠的操作节点1,操作节点3和操作节点4。
应用场景8:参见图2H所示,将待测神经网络划分为操作节点1-操作节点7,将部分操作节点选取为目标操作节点,例如,可以将操作节点1和操作节点2选取为目标操作节点。针对操作节点1对应的操作节点集合1,包括操作节点1和操作节点2;针对操作节点2对应的操作节点集合2,包括操作节点2和操作节点3。综上所述,操作节点集合1和操作节点集合2存在共有的操作节点2。
应用场景9:参见图2I所示,可以将待测神经网络划分为操作节点1-操作节点7,将部分操作节点选取为目标操作节点,如将操作节点1,操作节点2和操作节点3选取为目标操作节点。操作节点集合1包括操作节点1和操作节点2;操作节点集合2包括操作节点1,操作节点2和操作节点3;操作节点集合3包括操作节点2,操作节点3和操作节点4。综上所述,操作节点集合1和操作节点集合2存在共有的操作节点1和操作节点2,此外,操作节点集合2和操作节点集合3存在共有的操作节点2和操作节点3。
应用场景10:在应用场景1的基础上,每个操作节点集合包括目标操作节点与关联操作节点组成的整体网络。例如,针对操作节点1对应的操作节点集合1,操作节点集合1包括操作节点1,操作节点2,操作节点1与操作节点2组成的整体网络。针对操作节点2对应的操作节点集合2,操作节点集合2包括操作节点2,操作节点3,操作节点2与操作节点3组成的整体网络,以此类推。
应用场景11:在应用场景2的基础上,每个操作节点集合均包括目标操作节点与关联操作节点组成的整体网络。例如,针对操作节点2对应的操作节点集合2,操作节点集合2包括操作节点1;操作节点2;操作节点3;操作节点1、操作节点2以及操作节点3组成的整体网络,以此类推。
应用场景12:在应用场景3的基础上,每个操作节点集合包括目标操作节点与关联操作节点组成的整体网络。例如,针对操作节点2对应的操作节点集合2,包括操作节点2,操作节点3,操作节点2与操作节点3组成的整体网络。
应用场景13:在应用场景8/9的基础上,每个操作节点集合包括目标操作节点与关联操作节点组成的整体网络。如针对操作节点1对应的操作节点集合1,包括操作节点1,操作节点2,操作节点1与操作节点2组成的整体网络。
当然,上述应用场景1-应用场景13只是几个示例,对此不做限制。
步骤104,根据操作节点集合的信息获取目标操作节点的耗时。
为了获取目标操作节点的耗时,并不是根据目标操作节点的信息获取目标操作节点的耗时,而是根据操作节点集合的信息获取目标操作节点的耗时。例如,根据操作节点1对应的操作节点集合1的信息获取操作节点1的耗时。
示例性的,可以将目标操作节点对应的操作节点集合的信息输入到估计耗时映射T(.)中,得到该目标操作节点的耗时。显然,输入到估计耗时映射T(.)的是操作节点集合的信息,而不是目标操作节点的信息。若操作节点集合包括目标操作节点和关联操作节点,则在预测目标操作节点的耗时时,可以考虑目标操作节点与关联操作节点之间的连接结构,估计出更精确的耗时。若操作节点集合包括目标操作节点、关联操作节点、由该目标操作节点和该关联操作节点组成的整体网络,则在预测目标操作节点的耗时时,可以考虑目标操作节点与关联操作节点之间的连接结构,且考虑目标操作节点与关联操作节点的整体特性,并且操作节点集合的网络特征更多,基于估计耗时映射T(.)的特性,网络特征越多则估计耗时映射T(.)的训练结果越准确,从而能够估计出更精确的耗时。
示例性的,映射是指:假设A和B是两个非空集合,如果按照某一个确定关系,使对于集合A中的任意一个元素x,在集合B中都有唯一确定的元素y与元素x对应,那么,就称对应的函数关系f为从集合A到集合B的映射。
在上述实施例中,估计耗时映射T(.)包括操作节点集合的信息与该操作节点集合对应的目标操作节点的耗时之间的对应关系,因此,在将操作节点集合的信息输入到估计耗时映射T(.)后,可以得到目标操作节点的耗时。
例如,估计耗时映射T(.)包括操作节点集合1的信息与操作节点1的耗时之间的对应关系,操作节点集合2的信息与操作节点2的耗时之间的对应关系。将操作节点集合1的信息输入到估计耗时映射T(.)后,得到操作节点1的耗时。
在一种可能的实施方式中,操作节点集合的信息可以为操作节点集合的网络标识,估计耗时映射T(.)可以为映射关系表,且该映射关系表可以包括操作节点集合的网络标识与该操作节点集合对应的目标操作节点的耗时之间的对应关系。基于此,针对每个操作节点集合,可以通过该操作节点集合的网络标识查询该映射关系表,从而得到与该网络标识对应的目标操作节点的耗时。
例如,参见表1所示,为映射关系表的一个示例,当然,映射关系表还可以包括其它内容,对此不做限制。网络标识aa1表示操作节点集合1的网络标识,耗时T1表示操作节点1的耗时,而不是操作节点集合1的耗时,以此类推。
表1
操作节点集合的网络标识 目标操作节点的耗时
网络标识aa1 耗时T1
网络标识aa2 耗时T2
网络标识aa3 耗时T3
示例性的,为了得到操作节点1的耗时,可以通过操作节点集合1的网络标识aa1查询表1,得到操作节点1的耗时为耗时T1,以此类推。
示例性的,为了维护表1所示的映射关系表,可以采用如下方式:获取操作节点集合,该操作节点集合包括目标操作节点和关联操作节点;将测试数据输入到操作节点集合,由操作节点集合中的目标操作节点和关联操作节点对测试数据进行处理。根据测试数据的处理结果确定目标操作节点的耗时。然后,将该操作节点集合的网络标识与目标操作节点的耗时记录到映射关系表。
在一种可能的实施方式中,在获取到操作节点集合后,可以将操作节点集合中的目标操作节点和关联操作节点部署到硬件平台。然后,将测试数据输入到操作节点集合,由操作节点集合中的目标操作节点和关联操作节点对测试数据进行处理,从而在硬件平台测试目标操作节点的耗时。基于测试结果,将操作节点集合的网络标识与目标操作节点的耗时记录到映射关系表中。
参见图2B所示,操作节点集合2包括操作节点1,操作节点2和操作节点3,将操作节点1,操作节点2和操作节点3部署到硬件平台,测试操作节点2(即目标操作节点)的耗时。比如说,为了测试操作节点2的耗时,可以将测试数据A1提供给操作节点1,操作节点1处理完成后,得到输出数据A2,将输出数据A2提供给操作节点2,操作节点2处理完成后,得到输出数据A3,将输出数据A3提供给操作节点3,操作节点3处理完成后,得到输出数据A4。
从将输出数据A2提供给操作节点2开始,到操作节点2得到输出数据A3为止,这个过程所消耗的时间为操作节点2的耗时。然后,将操作节点集合2的网络标识与操作节点2的耗时记录到映射关系表中。
同理,可以将操作节点集合1部署到硬件平台,测试操作节点1的耗时,并将操作节点集合1的网络标识与操作节点1的耗时记录到映射关系表中,将操作节点集合3部署到硬件平台,测试操作节点3的耗时,并将操作节点集合3的网络标识与操作节点3的耗时记录到映射关系表中,以此类推。
示例性的,硬件平台可以是待测神经网络最终部署的平台(软件运行的环境),如GPU(Graphics Processing Unit,图形处理器)平台等,对此不做限制。
在另一种可能的实施方式中,操作节点集合的信息可以为操作节点集合的网络特征,估计耗时映射T(.)可以为函数映射模型,且函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。基于此,针对每个操作节点集合,基于函数映射模型,确定该操作节点集合的每个网络特征的耗时。然后,根据操作节点集合的每个网络特征的耗时,获取该操作节点集合对应的目标操作节点的耗时;或者,从该操作节点集合的所有网络特征中选取目标操作节点的网络特征,根据目标操作节点的网络特征的耗时,获取该目标操作节点的耗时。
示例性的,针对函数映射模型,可以是可学习上下文关系的函数映射模型,可以提取时序相关性或者结构相关的特征。由于函数映射模型具有上下文相关性,使得可以学习到网络结构之间的关系,进而学习到硬件平台的优化策略。
示例性的,函数映射是指:设A、B是两个非空的数集,如果按某一个确定函数f,使对于集合A中的任意一个元素x,在集合B中都有唯一确定的元素y与之对应,那么就称对应f为从集合A到集合B的一个函数映射。
以下结合具体应用场景,对目标操作节点的耗时的确定过程进行说明。
应用场景1:在函数映射模型的训练过程中,可以采集训练样本集合,该训练样本集合包括大量训练样本,并将训练样本集合输入给预设网络,以通过预设网络训练出函数映射模型,即得到基于该预设网络的函数映射模型。
针对训练样本集合中的每个训练样本,可以包括操作节点集合的每个网络特征与操作节点集合的耗时,例如,操作节点集合1包括网络特征1和网络特征2,则训练样本1包括网络特征1和网络特征2,以及操作节点集合1的耗时,操作节点集合2包括网络特征3和网络特征4,则训练样本2包括网络特征3和网络特征4,以及操作节点集合2的耗时。关于每个操作节点集合的耗时的确定方式,可以是用户指定的,也可以是通过硬件平台测试的,对此不做限制。
基于训练样本集合中的大量训练样本,对预设网络的网络参数进行训练,训练目标是:获得每个网络特征的耗时,基于操作节点集合的所有网络特征的耗时之和,与操作节点集合的耗时,确定预设网络的网络参数已满足优化目标。
例如,若操作节点集合的所有网络特征的耗时之和,与该操作节点集合的耗时相同或者近似相同(如二者的差值小于预设阈值,预设阈值可以根据经验任意配置,如0.01、0.02等),则确定预设网络的网络参数已满足优化目标。
例如,通过预设网络得到每个网络特征的耗时,对此过程不做限制。若每个操作节点集合的所有网络特征的耗时之和,与该操作节点集合的耗时相同或者近似相同,如操作节点集合1的所有网络特征的耗时之和,与操作节点集合1的耗时相同或者近似相同,操作节点集合2的所有网络特征的耗时之和,与操作节点集合2的耗时相同或者近似相同,以此类推,则可以确定预设网络的网络参数已满足优化目标,将当前的预设网络(即预设网络的网络参数已训练完成)作为函数映射模型,且基于该函数映射模型得到每个网络特征的耗时。至此,函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。
若操作节点集合的所有网络特征的耗时之和,与该操作节点集合的耗时不同(即二者的差值比较大),如操作节点集合1的所有网络特征的耗时之和,与操作节点集合1的耗时不同,则可以确定预设网络的网络参数不满足优化目标,并对预设网络的网络参数进行调整,得到调整后的预设网络。基于调整后的预设网络,重新得到每个网络特征的耗时,以此类推,一直到预设网络的网络参数已满足优化目标,并将当前的预设网络作为函数映射模型。
综上所述,在函数映射模型的训练过程中,可以得到函数映射模型,且函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。
在函数映射模型的使用过程中,在确定与目标操作节点对应的操作节点集合后,确定操作节点集合的网络特征(操作节点集合包括目标操作节点和关联操作节点时,确定目标操作节点的网络特征和关联操作节点的网络特征;或,操作节点集合包括目标操作节点,关联操作节点和整体网络时,确定目标操作节点的网络特征,关联操作节点的网络特征和整体网络的网络特征)。
基于上述函数映射模型,确定该操作节点集合的每个网络特征的耗时。然后,从该操作节点集合的所有网络特征中选取目标操作节点的网络特征,根据目标操作节点的网络特征的耗时,获取该目标操作节点的耗时。
例如,假设操作节点集合1包括网络特征1,网络特征2和网络特征3,操作节点1(即目标操作节点)包括网络特征1和网络特征2,则:基于上述函数映射模型,确定网络特征1的耗时,网络特征2的耗时和网络特征3的耗时。然后,根据网络特征1的耗时和网络特征2的耗时确定操作节点1的耗时,如操作节点1的耗时为网络特征1的耗时与网络特征2的耗时之和。
应用场景2:在函数映射模型的训练过程中,可以采集训练样本集合,该训练样本集合包括大量训练样本,并将训练样本集合输入给预设网络,以通过预设网络训练出函数映射模型,即得到基于该预设网络的函数映射模型。
示例性的,针对训练样本集合中的每个训练样本,可以包括操作节点集合的每个网络特征与目标操作节点的耗时,例如,操作节点集合1包括网络特征1和网络特征2,则训练样本1包括网络特征1和网络特征2,以及操作节点1的耗时,操作节点集合2包括网络特征3和网络特征4,则训练样本2包括网络特征3和网络特征4,以及操作节点2的耗时。关于每个操作节点的耗时的确定方式,可以是用户指定的,也可以是通过硬件平台测试的,对此不做限制。
基于训练样本集合中的大量训练样本对预设网络的网络参数进行训练,训练目标是:获得每个网络特征的耗时,且基于操作节点集合的所有网络特征的耗时之和,与目标操作节点的耗时,确定预设网络的网络参数已满足优化目标。
例如,若操作节点集合的所有网络特征的耗时之和,与该操作节点集合对应的目标操作节点的耗时相同或者近似相同,则确定预设网络的网络参数已满足优化目标。例如,通过预设网络得到每个网络特征的耗时。若每个操作节点集合的所有网络特征的耗时之和,与目标操作节点的耗时相同或近似相同,如操作节点集合1的所有网络特征的耗时之和,与操作节点1的耗时相同或者近似相同,操作节点集合2的所有网络特征的耗时之和,与操作节点2的耗时相同或者近似相同,以此类推,则确定预设网络的网络参数已满足优化目标,将当前的预设网络作为函数映射模型,基于该函数映射模型得到每个网络特征的耗时。至此,函数映射模型包括网络特征与该网络特征的耗时之间的对应关系。
若操作节点集合的所有网络特征的耗时之和,与目标操作节点的耗时不同,如操作节点集合1的所有网络特征的耗时之和,与操作节点1的耗时不同,则确定预设网络的网络参数不满足优化目标,对预设网络的网络参数进行调整,得到调整后的预设网络。基于调整后的预设网络,重新得到每个网络特征的耗时,以此类推,直到预设网络的网络参数已满足优化目标,得到函数映射模型。
综上所述,在函数映射模型的训练过程中,可以得到函数映射模型,且函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。
在函数映射模型的使用过程中,在确定与目标操作节点对应的操作节点集合后,确定操作节点集合的网络特征。基于上述函数映射模型,确定该操作节点集合的每个网络特征的耗时,并根据该操作节点集合的每个网络特征的耗时获取该目标操作节点的耗时。例如,假设操作节点集合1包括网络特征1,网络特征2和网络特征3,则基于上述函数映射模型,确定网络特征1的耗时,网络特征2的耗时和网络特征3的耗时。然后,根据网络特征1的耗时,网络特征2的耗时和网络特征3的耗时确定操作节点1的耗时,例如,操作节点1的耗时可以为网络特征1的耗时,网络特征2的耗时,以及网络特征3的耗时之和。
在应用场景1和应用场景2中,需要确定操作节点集合的网络特征,为了得到操作节点集合的网络特征,在一种可能的实施方式中,可以采用如下方式:获取操作节点集合的属性数据,并采用预设编码方式(可以根据经验进行配置)对该操作节点集合的属性数据进行编码,得到该操作节点集合的网络特征。
示例性的,操作节点集合的属性数据可以包括操作节点集合的每个操作节点的属性数据。例如,操作节点集合1包括操作节点1和操作节点2,则操作节点集合1的属性数据包括操作节点1的属性数据,以及操作节点2的属性数据。
又例如,操作节点集合1包括操作节点1,操作节点2和整体网络(即由操作节点1和操作节点2组成的整体网络),则操作节点集合1的属性数据包括操作节点1的属性数据,操作节点2的属性数据,以及,整体网络的属性数据。
示例性的,操作节点的属性数据可以包括但不限于:操作节点的类型(如卷积层、池化层、激励层、全连接层等),输入通道的数量,输出通道的数量,分辨率,参数数量,步长等等,对此操作节点的属性数据不做限制。
示例性的,预设编码方式可以包括树形编码方式,即采用树形编码方式对操作节点集合的属性数据进行编码,得到操作节点集合的网络特征,对此树形编码方式不做限制。或者,预设编码方式可以包括图论编码方式,即采用图论编码方式对操作节点集合的属性数据进行编码,得到操作节点集合的网络特征,对此图论编码方式不做限制。或者,预设编码方式可以包括哈希编码方式,即采用哈希编码方式对操作节点集合的属性数据进行编码,得到操作节点集合的网络特征,对此哈希编码方式不做限制。
当然,上述树形编码方式、图论编码方式和哈希编码方式只是示例,对此不做限制,预设编码方式可以根据经验进行配置,只要对操作节点集合的属性数据进行编码,能够得到网络特征即可。例如,网络特征可以为N*1维的矩阵,或者,1*M维的矩阵,或者,N*M维的矩阵,N和M均为正整数。
示例性的,针对树形编码方式和图论编码方式来说,是带有连接特征和属性特征的编码形式。针对哈希编码方式来说,是针对操作节点集合构建哈希函数,基于该哈希函数获得操作节点集合的哈希值,该哈希值作为网络特征。
在应用场景1和应用场景2中,可以得到基于预设网络的函数映射模型,针对该函数映射模型,可以是可学习上下文关系的函数映射模型,可以提取时序相关性或者结构相关的特征。由于函数映射模型具有上下文相关性,使得可以学习到网络结构之间的关系,进而学习到硬件平台的优化策略。
该预设网络可以为循环神经网络,或者,该预设网络可以为长短期记忆网络,或者,该预设网络可以为图论神经网络,或者,该预设网络可以为条件概率网络。当然,上述只是预设网络的几个示例,对此预设网络不做限制。
例如,当预设网络为循环神经网络(Recurrent Neural Network,RNN)时,则函数映射模型可以是基于循环神经网络的模型,参见图3A所示,为函数映射模型的一个示意图。f1,f2,f3,…,fx是操作节点集合(如操作节点集合1)的网络特征。基于该函数映射模型,可以得到网络特征f1的耗时t1,网络特征f2的耗时t2,网络特征f3的耗时t3,…,网络特征fx的耗时tx。进一步的,假设函数映射模型是采用上述应用场景2训练得到的,则可以将耗时t1,耗时t2,耗时t3,…,耗时tx的和,作为操作节点集合1对应的操作节点1的耗时。
当预设网络为长短期记忆网络(Long Short Term Memory,LSTM或者tree-LSTM等)时,则函数映射模型可以是基于长短期记忆网络的模型,参见图3B所示,为函数映射模型的示意图。p1,p2,p3,…,px是操作节点集合(如操作节点集合1)的网络特征。基于该函数映射模型,得到网络特征p1的耗时t1,网络特征p2的耗时t2,网络特征p3的耗时t3,…,网络特征px的耗时tx。假设函数映射模型是采用上述应用场景2训练得到的,则将耗时t1,耗时t2,耗时t3,…,耗时tx的和,作为操作节点集合1对应的操作节点1的耗时。
当预设网络为图论神经网络(Graph Neural Network,GNN)时,则函数映射模型可以是基于图论神经网络的模型,参见图3C所示,为基于图论神经网络的函数映射模型的示意图。g1,g2,g3,…,gx可以是操作节点集合(如操作节点集合1)的网络特征。基于该函数映射模型,可以得到网络特征g1的耗时t1,网络特征g2的耗时t2,网络特征g3的耗时t3,…,网络特征gx的耗时tx。假设函数映射模型是采用上述应用场景2训练得到的,则可以将耗时t1,耗时t2,耗时t3,…,耗时tx的和,作为操作节点集合1对应的操作节点1的耗时。
当预设网络为条件概率网络时,函数映射模型可以是基于条件概率网络(如马尔科夫模型的条件概率网络)的模型。q1,q2,q3,…,qx是操作节点集合(如操作节点集合1)的网络特征,基于函数映射模型,得到网络特征q1的耗时t1,网络特征q2的耗时t2,网络特征q3的耗时t3,…,网络特征qx的耗时tx。假设函数映射模型是采用上述应用场景2训练得到,则将耗时t1,耗时t2,耗时t3,…,耗时tx的和,作为操作节点集合1对应的操作节点1的耗时。
在基于条件概率网络的函数映射模型中,可以将操作节点集合1对应的操作节点1的耗时看成事件集合E1x,…,Enx,通过求Max(P(E1x)…P(Enx))的概率来决定操作节点的耗时,由于条件概率P(Enx|E1,E2..Ex-1)的存在,使得基于条件概率网络的函数映射模型,具有学习到不同操作节点间优化的能力。
步骤105,根据每个目标操作节点的耗时确定待测神经网络的前向耗时。
例如,若将待测神经网络的所有操作节点选取为目标操作节点,则根据每个目标操作节点的耗时确定待测神经网络的前向耗时,如待测神经网络的前向耗时为所有目标操作节点的耗时之和。若将待测神经网络的部分操作节点选取为目标操作节点,则针对待测神经网络的除目标操作节点之外的每个剩余操作节点,根据剩余操作节点的信息获取剩余操作节点的耗时。根据每个目标操作节点的耗时以及每个剩余操作节点的耗时,确定待测神经网络的前向耗时。如待测神经网络的前向耗时为所有目标操作节点的耗时与所有剩余操作节点的耗时之和。例如,操作节点1和操作节点2为目标操作节点,操作节点3为剩余操作节点,根据操作节点3的信息获取操作节点3的耗时。将操作节点1的耗时,操作节点2的耗时,操作节点3的耗时之和作为待测神经网络的前向耗时。
综上所述,可以确定待测神经网络的每个操作节点(如目标操作节点和剩余操作节点)的耗时,并根据所有操作节点的耗时确定待测神经网络的前向耗时,例如,将所有操作节点的耗时之和,确定为待测神经网络的前向耗时。
由以上技术方案可见,本申请实施例中,根据操作节点集合的信息获取目标操作节点的耗时,而操作节点集合包括目标操作节点和关联操作节点,即基于目标操作节点和关联操作节点的信息获取目标操作节点的耗时,而不是采用目标操作节点的信息获取目标操作节点的耗时,从而提高目标操作节点的耗时的准确性。根据目标操作节点的耗时确定待测神经网络的前向耗时,由于目标操作节点的耗时估计比较准确,因此,能够有效预测待测神经网络的前向耗时,操作节点集合之间存在重叠的特性,使得可以学习操作节点之间的优化关系。上述方式可以有效预测待测神经网络在硬件平台上的前向耗时,针对某硬件平台,不需要知道该硬件平台的参数信息且无论硬件平台是否存在前向优化策略,都可以有效预测待测神经网络在硬件平台上的前向耗时。通过学习操作节点到耗时的映射关系并得到总体耗时,可以在有效扩大待测神经网络的空间范围。
实施例2:参见图4所示,为前向耗时的确定方法的另一个流程示意图。
步骤401,将待测神经网络划分为多个操作节点。
步骤402,将多个操作节点均选取为目标操作节点。
步骤403,针对每个目标操作节点,确定与该目标操作节点对应的操作节点集合。示例性的,该操作节点集合可以包括目标操作节点和该目标操作节点的关联操作节点。或者,操作节点集合可以包括目标操作节点,该目标操作节点的关联操作节点,以及,该目标操作节点与该关联操作节点组成的整体网络。
步骤404,针对每个目标操作节点,根据该目标操作节点对应的操作节点集合的信息获取该目标操作节点的耗时,从而得到每个目标操作节点的耗时。
步骤405,根据每个目标操作节点的耗时确定待测神经网络的前向耗时。
实施例3:参见图5所示,为前向耗时的确定方法的另一个流程示意图。
步骤501,将待测神经网络划分为多个操作节点。
步骤502,将多个操作节点中的部分操作节点选取为目标操作节点,针对多个操作节点中除目标操作节点之外的操作节点,均作为剩余操作节点。
步骤503,针对每个目标操作节点,确定与目标操作节点对应的操作节点集合,根据目标操作节点对应的操作节点集合的信息获取该目标操作节点的耗时。
步骤504,根据每个剩余操作节点的信息获取该剩余操作节点的耗时。
示例性的,估计耗时映射T(.)包括剩余操作节点的信息与该剩余操作节点的耗时之间的对应关系,因此将剩余操作节点的信息输入到估计耗时映射T(.)中,得到该剩余操作节点的耗时。输入到估计耗时映射T(.)的是剩余操作节点的信息。
在一种可能的实施方式中,剩余操作节点的信息可以为剩余操作节点的网络标识,估计耗时映射T(.)可以为映射关系表,且该映射关系表包括剩余操作节点的网络标识与剩余操作节点的耗时之间的对应关系。基于此,通过剩余操作节点的网络标识查询该映射关系表,得到与该网络标识对应的剩余操作节点的耗时。通过映射关系表获取剩余操作节点的耗时的方式,与采用映射关系表获取目标操作节点的耗时的方式类似,只是网络标识为剩余操作节点的网络标识,耗时替换为剩余操作节点的网络标识,在此不再重复赘述。
在另一种可能的实施方式中,剩余操作节点的信息可以为剩余操作节点的网络特征,估计耗时映射T(.)可以为函数映射模型,且函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。基于此,基于函数映射模型,确定剩余操作节点的每个网络特征的耗时。根据剩余操作节点的每个网络特征的耗时,获取该剩余操作节点的耗时,如每个网络特征的耗时之和为剩余操作节点的耗时。通过函数映射模型获取剩余操作节点的耗时的方式,与采用函数映射模型获取目标操作节点的耗时的方式类似,只是网络特征为剩余操作节点的网络特征,耗时为剩余操作节点的网络标识,在此不再重复赘述。
步骤505,根据每个目标操作节点的耗时以及每个剩余操作节点的耗时,确定待测神经网络的前向耗时。例如,待测神经网络的前向耗时可以为所有目标操作节点的耗时与所有剩余操作节点的耗时之和。
实施例4:参见图6所示,为前向耗时的确定方法的流程示意图,包括:
步骤601,将待测神经网络划分为多个操作节点。
示例性的,步骤601可以参见步骤101,在此不再赘述。
步骤602,将多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,该目标操作节点集合可以包括至少两个操作节点。此外,针对所述至少一个操作节点集合中除目标操作节点集合之外的剩余操作节点集合,该剩余操作节点集合可以只包括一个操作节点。
在一种可能的实施方式中,可以将多个操作节点划分到同一个操作节点集合,即只存在一个操作节点集合,例如,待测神经网络包括操作节点1-操作节点4,可以将操作节点1-操作节点4划分到同一个操作节点集合。
在另一种可能的实施方式中,可以将多个操作节点划分到至少两个操作节点集合,即存在至少两个操作节点集合,在将多个操作节点划分到至少两个操作节点集合时,不同的操作节点集合中的操作节点不重叠(操作节点不重叠是指:针对每个操作节点来说,该操作节点只能位于一个操作节点集合,不能同时位于不同的操作节点集合)。示例性的,在至少两个操作节点集合中存在目标操作节点集合,且目标操作节点集合包括至少两个操作节点。
例如,所有操作节点集合均为目标操作节点集合;或者,只有一个操作节点集合为目标操作节点集合,针对目标操作节点集合之外的剩余操作节点集合,可以只包括一个操作节点;或者,有两个操作节点集合为目标操作节点集合,以此类推,对此不做限制,只要存在至少一个目标操作节点集合即可。
例如,待测神经网络包括操作节点1-操作节点4,可以将操作节点1和操作节点2划分到操作节点集合1,并将操作节点3和操作节点4划分到操作节点集合2。在该情况下,操作节点集合1和操作节点集合2均为目标操作节点集合。或者,可以将操作节点1、操作节点2和操作节点3划分到操作节点集合1,并将操作节点4划分到操作节点集合2。在该情况下,操作节点集合1为目标操作节点集合,而操作节点集合2不是目标操作节点集合。或者,可以将操作节点1和操作节点2划分到操作节点集合1,将操作节点3划分到操作节点集合2,并将操作节点4划分到操作节点集合3。在该情况下,操作节点集合1为目标操作节点集合,而操作节点集合2和操作节点集合3不是目标操作节点集合。
当然,上述只是几个示例,对此不做限制。
示例性的,针对目标操作节点集合来说,该目标操作节点集合还可以包括由至少两个操作节点组成的整体网络。例如,将操作节点1和操作节点2划分到操作节点集合1时,该操作节点集合1包括操作节点1和操作节点2。或者,该操作节点集合1包括操作节点1,操作节点2,操作节点1与操作节点2组成的整体网络(该整体网络由操作节点1和操作节点2组成)。
步骤603,根据每个操作节点集合的信息获取该操作节点集合的耗时。
示例性的,估计耗时映射T(.)可以包括操作节点集合的信息与该操作节点集合的耗时之间的对应关系,因此,可以将操作节点集合的信息输入到估计耗时映射T(.)中,得到该操作节点集合的耗时。例如,估计耗时映射T(.)包括操作节点集合1的信息与操作节点集合1的耗时之间的对应关系,操作节点集合2的信息与操作节点集合2的耗时之间的对应关系。基于此,在将操作节点集合1的信息输入到估计耗时映射T(.)后,可以得到操作节点集合1的耗时。
在一种可能的实施方式中,操作节点集合的信息可以为操作节点集合的网络标识,估计耗时映射T(.)可以为映射关系表,且该映射关系表可以包括操作节点集合的网络标识与该操作节点集合的耗时之间的对应关系。基于此,针对每个操作节点集合,可以通过该操作节点集合的网络标识查询该映射关系表,从而得到与该网络标识对应的耗时,该耗时即为该操作节点集合的耗时。
示例性的,通过映射关系表获取操作节点集合的耗时的方式,与采用映射关系表获取目标操作节点的耗时的方式(参见实施例1)类似,只是耗时替换为操作节点集合的耗时,而不是目标操作节点的耗时,在此不再重复赘述。
在另一种可能的实施方式中,操作节点集合的信息可以为操作节点集合的网络特征,估计耗时映射T(.)可以为函数映射模型,且函数映射模型可以包括网络特征与该网络特征的耗时之间的对应关系。基于此,针对每个操作节点集合,基于函数映射模型,确定该操作节点集合的每个网络特征的耗时。然后,根据操作节点集合的每个网络特征的耗时,获取该操作节点集合的耗时。例如,操作节点集合的每个网络特征的耗时之和,为该操作节点集合的耗时。
示例性的,针对函数映射模型,可以是可学习上下文关系的函数映射模型,可以提取时序相关性或者结构相关的特征。由于函数映射模型具有上下文相关性,使得可以学习到网络结构之间的关系,进而学习到硬件平台的优化策略。
示例性的,函数映射模型可以是基于循环神经网络的模型;或者,函数映射模型可以是基于长短期记忆网络的模型;或者,函数映射模型可以是基于图论神经网络的模型;或者,函数映射模型可以是基于条件概率网络的模型。当然,上述只是函数映射模型的几个示例,对此函数映射模型不做限制。
示例性的,基于函数映射模型,确定操作节点集合的每个网络特征的耗时之前,还可以获取操作节点集合的属性数据,并采用预设编码方式对操作节点集合的属性数据进行编码,得到该操作节点集合的网络特征。
示例性的,通过函数映射模型获取操作节点集合的耗时的方式,与采用函数映射模型获取目标操作节点的耗时的方式(参见实施例1的步骤104的应用场景1)类似,只是将目标操作节点的耗时替换为操作节点集合的耗时。
步骤604,根据每个操作节点集合的耗时确定待测神经网络的前向耗时。例如,待测神经网络的前向耗时为所有操作节点集合的耗时之和。
由以上技术方案可见,本申请实施例中,根据操作节点集合的信息获取操作节点集合的耗时,即基于至少两个操作节点的信息获取操作节点集合的耗时,从而能够有效预测待测神经网络的前向耗时,通过学习操作节点到耗时的映射关系并得到总体耗时,可以在有效扩大待测神经网络的空间范围。
实施例5:基于与上述方法同样的申请构思,本申请实施例中还提出一种前向耗时的确定装置,如图7A所示,为所述装置的结构图,所述装置包括:操作节点集合获取模块711,用于将待测神经网络划分为多个操作节点;从所述多个操作节点中选取至少一个操作节点作为目标操作节点;针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;操作节点耗时获取模块712,用于根据所述操作节点集合的信息获取所述目标操作节点的耗时;耗时输出模块713,用于根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
示例性的,基于所述多个操作节点的顺序关系,所述关联操作节点为:所述目标操作节点相邻的前M1个操作节点;或者,所述目标操作节点相邻的后M2个操作节点;或者,所述目标操作节点相邻的前M3个操作节点和相邻的后M4个操作节点;其中,M1,M2,M3和M4均为正整数。
所述操作节点集合还包括目标操作节点与关联操作节点组成的整体网络。
所述操作节点集合的信息为所述操作节点集合的网络特征,所述操作节点耗时获取模块712具体用于:基于函数映射模型,确定所述操作节点集合的每个网络特征的耗时;其中,所述函数映射模型包括网络特征与该网络特征的耗时之间的对应关系;根据所述操作节点集合的每个网络特征的耗时,获取目标操作节点的耗时;或者,从所述操作节点集合的所有网络特征中选取所述目标操作节点的网络特征,根据所述目标操作节点的网络特征的耗时,获取目标操作节点的耗时。
示例性的,所述装置还包括(在图中未视出):操作节点表示模块,用于获取所述操作节点集合的属性数据,采用预设编码方式对所述操作节点集合的属性数据进行编码,得到所述操作节点集合的网络特征。
实施例6:基于与上述方法同样的申请构思,本申请实施例中还提出一种前向耗时的确定装置,如图7B所示,为所述装置的结构图,所述装置包括:
操作节点集合获取模块721,用于将待测神经网络划分为多个操作节点;将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
操作节点耗时获取模块722,用于根据每个操作节点集合的信息获取所述操作节点集合的耗时;耗时输出模块723,用于根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
目标操作节点集合还包括由所述至少两个操作节点组成的整体网络。
示例性的,在将所述多个操作节点划分到至少两个操作节点集合时,不同操作节点集合中的操作节点不重叠。
所述操作节点集合的信息为操作节点集合的网络特征,所述操作节点耗时获取模块722具体用于:基于函数映射模型,确定操作节点集合的每个网络特征的耗时;所述函数映射模型包括网络特征与该网络特征的耗时之间的对应关系;根据操作节点集合的每个网络特征的耗时,获取所述操作节点集合的耗时。
示例性的,所述装置还包括(在图中未视出):操作节点表示模块,用于获取所述操作节点集合的属性数据,采用预设编码方式对所述操作节点集合的属性数据进行编码,得到所述操作节点集合的网络特征。
基于与上述方法同样的申请构思,本申请实施例中还提出一种前向耗时的确定设备,从硬件层面而言,该设备硬件架构示意图可以参见图7C所示。该设备可以包括:处理器731和机器可读存储介质732,所述机器可读存储介质732存储有能够被所述处理器731执行的机器可执行指令;所述处理器731用于执行机器可执行指令,以实现本申请上述示例公开的方法。
例如,处理器731用于执行机器可执行指令,以实现如下步骤:
将待测神经网络划分为多个操作节点;
从所述多个操作节点中选取至少一个操作节点作为目标操作节点;
针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
根据所述操作节点集合的信息获取所述目标操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
在另一种可能的实施方式中,处理器731用于执行机器可执行指令,以实现如下步骤:将待测神经网络划分为多个操作节点;
将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
根据每个操作节点集合的信息获取所述操作节点集合的耗时;
根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,其中,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种前向耗时的确定方法,其特征在于,所述方法包括:
将待测神经网络划分为多个操作节点;
从所述多个操作节点中选取至少一个操作节点作为目标操作节点;
针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
根据所述操作节点集合的信息获取所述目标操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
2.根据权利要求1所述的方法,其特征在于,
基于所述多个操作节点的顺序关系,所述关联操作节点为:
所述目标操作节点相邻的前M1个操作节点;或者,
所述目标操作节点相邻的后M2个操作节点;或者,
所述目标操作节点相邻的前M3个操作节点和相邻的后M4个操作节点;
其中,M1,M2,M3和M4均为正整数。
3.根据权利要求1或2所述的方法,其特征在于,所述操作节点集合还包括所述目标操作节点与所述关联操作节点组成的整体网络。
4.根据权利要求1或2所述的方法,其特征在于,
所述操作节点集合的信息为所述操作节点集合的网络特征,所述根据所述操作节点集合的信息获取所述目标操作节点的耗时,包括:
基于函数映射模型,确定所述操作节点集合的每个网络特征的耗时;其中,所述函数映射模型包括网络特征与该网络特征的耗时之间的对应关系;
根据所述操作节点集合的每个网络特征的耗时,获取目标操作节点的耗时;或者,从所述操作节点集合的所有网络特征中选取所述目标操作节点的网络特征,根据所述目标操作节点的网络特征的耗时,获取目标操作节点的耗时。
5.根据权利要求4所述的方法,其特征在于,所述基于函数映射模型,确定所述操作节点集合的每个网络特征的耗时之前,所述方法还包括:
获取所述操作节点集合的属性数据,采用预设编码方式对所述操作节点集合的属性数据进行编码,得到所述操作节点集合的网络特征。
6.根据权利要求1或2所述的方法,其特征在于,
从所述多个操作节点中选取至少一个操作节点作为目标操作节点,包括:
将所述多个操作节点中的部分操作节点选取为目标操作节点;或者,
将所述多个操作节点中的全部操作节点选取为目标操作节点。
7.根据权利要求6所述的方法,其特征在于,若将所述多个操作节点中的部分操作节点选取为目标操作节点,所述方法还包括:
针对所述多个操作节点中除目标操作节点之外的每个剩余操作节点,根据所述剩余操作节点的信息获取所述剩余操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时,包括:
根据每个目标操作节点的耗时以及每个剩余操作节点的耗时,确定所述待测神经网络的前向耗时。
8.一种前向耗时的确定方法,其特征在于,所述方法包括:
将待测神经网络划分为多个操作节点;
将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
根据每个操作节点集合的信息获取所述操作节点集合的耗时;
根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
9.根据权利要求8所述的方法,其特征在于,
所述目标操作节点集合还包括由所述至少两个操作节点组成的整体网络。
10.根据权利要求8所述的方法,其特征在于,在将所述多个操作节点划分到至少两个操作节点集合时,不同操作节点集合中的操作节点不重叠。
11.根据权利要求8-10任一项所述的方法,其特征在于,
所述操作节点集合的信息为所述操作节点集合的网络特征,所述根据每个操作节点集合的信息获取所述操作节点集合的耗时,包括:
基于函数映射模型,确定操作节点集合的每个网络特征的耗时;其中,所述函数映射模型包括网络特征与该网络特征的耗时之间的对应关系;
根据操作节点集合的每个网络特征的耗时,获取所述操作节点集合的耗时。
12.根据权利要求11所述的方法,其特征在于,所述基于函数映射模型,确定操作节点集合的每个网络特征的耗时之前,所述方法还包括:
获取所述操作节点集合的属性数据,采用预设编码方式对所述操作节点集合的属性数据进行编码,得到所述操作节点集合的网络特征。
13.一种前向耗时的确定装置,其特征在于,所述装置包括:
操作节点集合获取模块,用于将待测神经网络划分为多个操作节点;从所述多个操作节点中选取至少一个操作节点作为目标操作节点;针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
操作节点耗时获取模块,用于根据所述操作节点集合的信息获取所述目标操作节点的耗时;
耗时输出模块,用于根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
14.一种前向耗时的确定装置,其特征在于,所述装置包括:
操作节点集合获取模块,用于将待测神经网络划分为多个操作节点;将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
操作节点耗时获取模块,用于根据每个操作节点集合的信息获取所述操作节点集合的耗时;
耗时输出模块,用于根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
15.一种前向耗时的确定设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
将待测神经网络划分为多个操作节点;
从所述多个操作节点中选取至少一个操作节点作为目标操作节点;
针对每个目标操作节点,确定与所述目标操作节点对应的操作节点集合,所述操作节点集合包括所述目标操作节点和所述目标操作节点的关联操作节点,所述关联操作节点为所述多个操作节点中除所述目标操作节点之外的操作节点;
根据所述操作节点集合的信息获取所述目标操作节点的耗时;
根据每个目标操作节点的耗时确定所述待测神经网络的前向耗时。
16.一种前向耗时的确定设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
将待测神经网络划分为多个操作节点;
将所述多个操作节点划分到至少一个操作节点集合,所述至少一个操作节点集合中存在目标操作节点集合,目标操作节点集合包括至少两个操作节点;
根据每个操作节点集合的信息获取所述操作节点集合的耗时;
根据每个操作节点集合的耗时确定所述待测神经网络的前向耗时。
CN202010062755.XA 2020-01-19 2020-01-19 一种前向耗时的确定方法、装置及设备 Active CN111753978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010062755.XA CN111753978B (zh) 2020-01-19 2020-01-19 一种前向耗时的确定方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010062755.XA CN111753978B (zh) 2020-01-19 2020-01-19 一种前向耗时的确定方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111753978A true CN111753978A (zh) 2020-10-09
CN111753978B CN111753978B (zh) 2024-03-01

Family

ID=72673000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010062755.XA Active CN111753978B (zh) 2020-01-19 2020-01-19 一种前向耗时的确定方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111753978B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112990433A (zh) * 2021-03-08 2021-06-18 Oppo广东移动通信有限公司 模型耗时预测方法、装置、电子设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280007A (ja) * 2006-04-06 2007-10-25 Sony Corp データ処理装置、データ処理方法、およびプログラム
EP3035250A2 (en) * 2014-12-19 2016-06-22 Google, Inc. Large-scale classification in neural networks using hashing
WO2017201511A1 (en) * 2016-05-20 2017-11-23 Google Llc Training machine learning models
CN109347697A (zh) * 2018-10-10 2019-02-15 南昌航空大学 机会网络链路预测方法、装置及可读存储介质
CN110187965A (zh) * 2019-05-08 2019-08-30 深圳大学 神经网络的运行优化及数据处理方法、设备及存储介质
CN110443321A (zh) * 2019-08-14 2019-11-12 北京百度网讯科技有限公司 模型结构调整方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280007A (ja) * 2006-04-06 2007-10-25 Sony Corp データ処理装置、データ処理方法、およびプログラム
EP3035250A2 (en) * 2014-12-19 2016-06-22 Google, Inc. Large-scale classification in neural networks using hashing
WO2017201511A1 (en) * 2016-05-20 2017-11-23 Google Llc Training machine learning models
CN109347697A (zh) * 2018-10-10 2019-02-15 南昌航空大学 机会网络链路预测方法、装置及可读存储介质
CN110187965A (zh) * 2019-05-08 2019-08-30 深圳大学 神经网络的运行优化及数据处理方法、设备及存储介质
CN110443321A (zh) * 2019-08-14 2019-11-12 北京百度网讯科技有限公司 模型结构调整方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHUOCHAO YAO等: "FastDeepIoT: Towards Understanding and Optimizing Neural Network Execution Time on Mobile and Embedded Devices", PROCEEDINGS OF THE 16TH ACM CONFERENCE ON EMBEDDED NETWORKED SENSOR SYSTEMS, pages 278 *
杨博;王亚东;苏小红;唐降龙;: "基于Agent和数据切片的分布式神经网络协同学习研究", 计算机研究与发展, no. 12, pages 66 - 73 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112990433A (zh) * 2021-03-08 2021-06-18 Oppo广东移动通信有限公司 模型耗时预测方法、装置、电子设备以及存储介质
CN112990433B (zh) * 2021-03-08 2024-06-04 Oppo广东移动通信有限公司 模型耗时预测方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN111753978B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
CN111291841B (zh) 图像识别模型训练方法、装置、计算机设备和存储介质
EP3853764A1 (en) Training neural networks for vehicle re-identification
CN112560886A (zh) 训练类条件生成对抗序列网络
CN109840531A (zh) 训练多标签分类模型的方法和装置
CN105447498A (zh) 配置有神经网络的客户端设备、系统和服务器系统
Chatzis et al. A conditional random field-based model for joint sequence segmentation and classification
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
CN111783997A (zh) 一种数据处理方法、装置及设备
CN115496144A (zh) 配电网运行场景确定方法、装置、计算机设备和存储介质
CN111753978B (zh) 一种前向耗时的确定方法、装置及设备
CN111753950B (zh) 一种前向耗时的确定方法、装置及设备
CN114091597A (zh) 基于自适应组样本扰动约束的对抗训练方法、装置及设备
CN112529078A (zh) 一种业务处理方法、装置及设备
CN108830377A (zh) 一种神经网络电路及其自循环多级迭代方法
CN113221935A (zh) 基于环境感知深度卷积神经网络的图像识别方法及系统
US20220164654A1 (en) Energy- and memory-efficient training of neural networks
CN112686300B (zh) 一种数据处理方法、装置及设备
CN114298173A (zh) 一种数据处理方法、装置及设备
CN112906728A (zh) 一种特征比对方法、装置及设备
CN113780027A (zh) 一种基于增广图卷积的多标签物体识别方法、装置及设备
CN112884158A (zh) 一种机器学习程序的训练方法、装置及设备
Sharifi et al. Prunedcaps: A case for primary capsules discrimination
CN111488893B (zh) 一种图像分类方法及装置
CN115187845A (zh) 一种图像处理方法、装置及设备
CN113762520B (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
GR01 Patent grant
GR01 Patent grant