CN111367669B - 一种确定最优运算通路的方法、装置及介质 - Google Patents

一种确定最优运算通路的方法、装置及介质 Download PDF

Info

Publication number
CN111367669B
CN111367669B CN202010135015.4A CN202010135015A CN111367669B CN 111367669 B CN111367669 B CN 111367669B CN 202010135015 A CN202010135015 A CN 202010135015A CN 111367669 B CN111367669 B CN 111367669B
Authority
CN
China
Prior art keywords
operator
node
topological graph
determining
optimal
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.)
Active
Application number
CN202010135015.4A
Other languages
English (en)
Other versions
CN111367669A (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.)
Beijing Xiaomi Pinecone Electronic Co Ltd
Original Assignee
Beijing Xiaomi Pinecone Electronic 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 Beijing Xiaomi Pinecone Electronic Co Ltd filed Critical Beijing Xiaomi Pinecone Electronic Co Ltd
Priority to CN202010135015.4A priority Critical patent/CN111367669B/zh
Publication of CN111367669A publication Critical patent/CN111367669A/zh
Priority to US16/987,032 priority patent/US20210271969A1/en
Priority to EP20191458.7A priority patent/EP3876164A1/en
Application granted granted Critical
Publication of CN111367669B publication Critical patent/CN111367669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种确定最优运算通路的方法、装置及介质,该方法包括:根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;在所述加权算子拓扑图中选择最优运算通路。本公开可以更准确的表达相邻的不同运算节点对应的算子节点之间的链路情况,使选择出的最优运算通路更加合理。

Description

一种确定最优运算通路的方法、装置及介质
技术领域
本公开涉及深度学习技术领域,尤其涉及一种确定最优运算通路的方法、装置及介质。
背景技术
随着数据处理技术的发展以及数据计算能力的大幅提升,深度学习技术不断取得突破性进展,进而大幅度推动了人工智能产业的进步,在多个领域取得了突破性的进展,应用较多的领域包括:医疗、语音处理、翻译、自动驾驶、广告推荐、行业预测等。
深度学习框架技术是深度学习技术的基础。近年来,各种深度学习框架层出不穷。另一方面,人工智能场景的不断丰富使终端智能设备成为人工智能的接入口。移动端的计算和存储能力已经可以满足很多人工智能应用的需求,相较于前几年深度学习技术在云端的落地,深度学习在设备端的部署需求日趋旺盛,并且伴随着机器学习技术和软硬件设备的不断发展,未来的需求会越来越丰富。为了加速深度学习在设备端的执行,各大公司也推出了各种设备端的深度学习推理框架。
大多数深度学习框架在构建神经网络链路时均采用贪婪算法,基于当前算子的数据类型、数据格式、计算单元对算子是否支持等条件,选择最合适的计算单元进行执行。在很多场景下,采用贪婪算法构建的神经网络链路并不是最优性能的神经网络链路。
发明内容
为克服相关技术中存在的问题,本公开提供了一种确定最优运算通路的方法、装置及介质。
根据本公开实施例的第一方面,提供一种确定最优运算通路的方法,包括:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
在另一实施方式中,所述确定每个算子节点的运算指标,包括:
确定算子节点的参考运算能力;
根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
在另一实施方式中,所述方法还包括:确定算子的参考运算能力;
所述确定算子节点的参考运算能力,包括:将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力;
所述确定算子的参考运算能力包括以下中的一种:
使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
在另一实施方式中,所述基于各算子节点的运算指标对所述算子拓扑图进行加权,包括以下中的一种:
根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标;
根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
在另一实施方式中,所述在加权后的算子拓扑图中选择最优运算通路,包括:
在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
根据所述主路子拓扑图和所述支路子拓扑图在加权后的算子拓扑图中选择最优运算通路。
在另一实施方式中,根据所述主路子拓扑图和所述支路子拓扑图在加权后的算子拓扑图中选择最优运算通路,包括以下中的一种:
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子节点,根据确定出的最优算子节点、所述头部运算节点的最优算子节点和所述尾部运算节点的最优算子节点确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路;
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子节点;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子节点;根据确定出的最优算子节点构成最优运算通路。
根据本公开实施例的第二方面,还提供一种确定最优运算通路的装置,包括:
第一确定模块,用于根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
创建模块,用于为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
构建模块,用于根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
第二确定模块,用于确定每个算子节点的运算指标;
加权模块,用于基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
第一选择模块,用于在所述加权算子拓扑图中选择最优运算通路。
在另一实施方式中,所述第二确定模块包括:
第三确定模块,用于确定算子节点的参考运算能力;
计算模块,用于根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
在另一实施方式中,所述装置还包括:第四确定模块,用于确定算子的参考运算能力;
所述第三确定模块,还用于将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力;
所述确定算子的参考运算能力包括以下中的一种:
使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
在另一实施方式中,所述加权模块,用于使用以下方法中的一种基于各算子节点的运算指标对所述算子拓扑图进行加权:
根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标;
根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
在另一实施方式中,所述第一选择模块,包括:
划分模块,用于在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
第二选择模块,用于根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路。
在另一实施方式中,所述第二选择模块,还用于使用以下方法中的一种根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路:
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子节点,根据确定出的最优算子节点、所述头部运算节点的最优算子节点和所述尾部运算节点的最优算子节点确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路;
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子节点;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子节点;根据确定出的最优算子节点构成最优运算通路。
根据本公开实施例的第三方面,还提供一种确定最优运算通路的装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
根据本公开实施例的第四方面,还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种确定最优运算通路的方法,所述方法包括:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
本公开的实施例提供的技术方案可以包括以下有益效果:为模型运算拓扑图中的每个运算节点选择与该运算节点的运算类型相同的多个算子后,构建算子拓扑图,根据算子节点的运算指标对算子拓扑图进行加权,获得的加权算子拓扑图,从而可以更准确的表达相邻的不同运算节点对应的算子节点之间的链路情况,使选择出的最优运算通路更加合理,同时,降低运算成本,提升推理计算效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种确定最优运算通路的方法的流程图;
图2是根据一示例性实施例示出的一种模型运算拓扑图的结构图;
图3是根据一示例性实施例示出的与图2所示的模型运算拓扑图对应的算子拓扑图的结构图;
图4是根据一示例性实施例示出的图1中的步骤S15的流程图;
图5是根据一示例性实施例示出的一种模型运算拓扑图的结构图;
图6是根据一示例性实施例示出的根据图5所示的模型运算拓扑图选择出的最优运算通路的结构图;
图7是根据一示例性实施例示出的一种确定最优运算通路的装置的结构图;
图8是根据一示例性实施例示出的一种确定最优运算通路的装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
深度学习框架一般包括两个框架:深度学习训练框架和深度学习推理框架。深度学习训练框架用于使用样本数据进行模型训练,深度学习推理框架用于实际应用场景中的数据处理。深度学习推理框架可以认为是一个组件,构建用于使用深度学习模型进行计算的应用程序接口(Application Programming Interface,API),上层的APP的可以通过调用此API接口来执行推理操作。
本公开实施例中提供一种确定最优运算通路的方法,此方法应用于深度学习推理框架,由深度学习推理框架执行本方法参照图1,图1是根据一示例性实施例示出的一种确定最优运算通路的方法的流程图。如图1所示,此方法包括:
步骤S11,根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点。
步骤S12,为模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点。
步骤S13,根据模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图。
步骤S14,确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图。
步骤S15,在所述加权算子拓扑图中选择最优运算通路。
其中,步骤S11中,由深度学习推理框架根据神经网络模型确定模型运算拓扑图,模型运算拓扑图中的运算节点对应于神经网络模型中的各个运算需求。同一神经网络模型中可以包括多个相同的运算需求,这些相同的运算需求位于神经网络模型中的不同位置,相应的模型运算拓扑图中包括多个相同的运算节点,这些相同的运算节点位于模型运算拓扑图中不同的位置。
运算节点的运算类型是加运算、减运算、乘运算、除运算等线性运算,或者是,卷积等非线性运算。与某一运算节点的运算类型相同的算子有多个,位于相同的运算装置或者不同运算装置上。运算装置是中央处理器(Central Processing Unit,简称CPU)、图形处理器(Graphics Processing Unit)、数字信号处理(Digital Signal Processing,简称DSP)设备、加速处理器(Accelerated Processing Unit,简称APU)、神经网络处理器(Neuralnetwork Processing Unit,简称NPU)等。
例如:运算类型为加法运算的算子有多个,包括:位于中央处理器(CentralProcessing Unit,简称CPU)的加法算子1和加法算子2,位于图形处理器(GraphicsProcessing Unit,简称GPU)的加法算子3和加法算子4等。在选择与运算节点的运算类型相同的算子时,可以选择位于同一运算装置上的算子,也可以选择位于不同运算装置上的算子。
本公开实施例中,为模型运算拓扑图中的每个运算节点选择与该运算节点的运算类型相同的多个算子后,构建算子拓扑图,根据算子节点的运算指标对算子拓扑图进行加权,获得的加权算子拓扑图,从而可以更准确的表达相邻的不同运算节点对应的算子之间的链路情况,使选择出的最优运算通路更加合理,同时,降低运算成本,提升推理计算效率。
本公开实施例中还提供一种确定最优运算通路的方法。此方法包括图1示出的方法,在图1示出的方法的基础上,步骤S13中根据模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图中,对于相邻并且存在连接链路的两个运算节点,其中一运算节点对应的每个算子节点与另一运算节点对应的所有算子节点均连接。
例如:模型运算拓扑图包括N个运算节点,第i个运算节点和第j个运算节点相邻并且两者之间存在连接的链路,其中,i和j都大于或等于1并且小于或等于N。第i个运算节点对应有Mi个算子,第j个运算节点对应有Mj个算子节点。在算子拓扑图中,Mi个算子中的每一个算子与Mj个算子都具有连接关系,Mj个算子中的每一个算子与Mi个算子都具有连接关系。Mi个算子与Mj个算子之间共存在Mi*Mj条链路。
本公开实施例中还提供一种确定最优运算通路的方法。此方法包括图1示出的方法,并且在图1示出的方法的基础上,其中的步骤S14确定每个算子节点的运算指标,包括:
步骤S141,确定所述算子节点的参考运算能力。
步骤S142,根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
本公开实施例中的方法中,在步骤S11之前还包括:确定算子的参考运算能力。其中,确定算子的参考运算能力包括以下中的一种:
一,使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
二,使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
步骤S141中,确定算子节点的参考运算能力,包括:将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力。
其中,算子的参考运算能力是指完成此算子对应的运算类型的运算后获得运算结果的能力。例如此参考运算能力是每秒浮点运算次数(FLOPS)。
运算指标是运算时长或运算速度。对于相同的待运算数据,算子节点的运算时长越小,表示运算能力越强;算子节点的运算速度越大,表示运算能力越强。
算子节点的指标计算函数与算子节点的运算类型相关,还与输入数据的形状和格式相关。
例如:算子节点的运算类型是卷积运算时,输入数据为矩阵形式,输入矩阵的数据量相同但形状不相同时,算子节点的运算指标不相同。例如:输入数据的矩阵形状分别为3行4列和2行6列时,输入矩阵的数据量相同但形状不同,算子节点的运算指标不相同。
再例如:算子节点的运算类型是softmax运算,输入数据的格式不同时,算子节点的运算指标不相同。例如:输入数据的数据量相同,格式分别是NHWC和NCHW时,输入数据的数据量相同但格式不同,算子节点的运算指标不相同。
本公开实施例中,提前获取各算子的参考运算能力,在实际推理阶段,确定算子节点对应的算子的参考运算能力,根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标,从而获得算子节点的准确运算指标。
本公开实施例中还提供一种确定最优运算通路的方法。此方法包括图1示出的方法,并且在图1示出的方法的基础上,其中的步骤S14中基于各算子节点的运算指标对所述算子拓扑图进行加权,包括以下中的一种:
一,根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标。
例如:将每个算子节点的运算指标作为此算子节点与前向相邻算子节点构成的前向边的运算指标,或者,将每个算子节点的运算指标与第一比例的乘积作为此算子节点与前向相邻算子节点构成的前向边的运算指标,此第一比例小于1或者大于1。
图2是根据一示例性实施例示出的一种示例性的模型运算拓扑图的结构图。如图2所示,此模型运算拓扑图包括三个运算节点,分别为:运算节点A、运算节点B、运算节点C。图3是根据一示例性实施例示出的与图2所示的模型运算拓扑图对应的算子拓扑图的结构图。如图3所示,运算节点A的运算类型为加法运算,对应的算子包括:加法算子A1、加法算子A2和加法算子A3。运算节点B的运算类型为减法运算,对应的算子包括:减法算子B1、减法算子B2。运算节点C的运算类型为乘法运算,对应的算子包括:乘法算子C1、乘法算子C2和乘法算子C3。
将每个算子节点的运算指标作为此算子节点与前向相邻算子节点构成的前向边的运算指标,例如:加法算子A1至减法算子B1的有向边的运算指标是减法算子B1的运算指标,减法算子B1至乘法算子C1的有向边的运算指标是乘法算子C1的运算指标。第一个运算节点的算子节点的运算指标将被忽略。
二,根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
例如:将每个算子节点的运算指标作为此算子节点与后向相邻算子节点构成的后向边的运算指标,或者,将每个算子节点的运算指标与第一比例的乘积作为此算子节点与后向相邻算子节点构成的后向边的运算指标,此第一比例小于1或者大于1。
以图2和图3为例进行说明。将每个算子节点的运算指标作为此算子节点与后向相邻算子节点构成的后向边的运算指标。例如:加法算子A1至减法算子B1的有向边的运算指标是加法算子A1的运算指标,减法算子B1至乘法算子C1的有向边的运算指标是减法算子B1的运算指标。最后一个运算节点的算子节点的运算指标将被忽略。
本公开实施例中通过支持不同方向的加权方式,提供不同形式的加权算子拓扑图。
本公开实施例中还提供一种确定最优运算通路的方法。此方法包括图1示出的方法,并且在图1示出的方法的基础上,其中的步骤S15中在加权后的算子拓扑图中选择最优运算通路时,使用动态规划(dynamic programming)算法在加权后的算子拓扑图中选择最优运算通路。
动态规划算法是求解决策过程(decision process)最优化的数学方法,在应用过程中,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,最终获得一个最优解。动态规划算法包括:弗洛伊德算法迪杰斯特拉算法、普里姆算法等。
本公开实施例中还提供一种确定最优运算通路的方法。此方法包括图1示出的方法,并且在图1示出的方法的基础上,如图4所示,其中的步骤S15中在加权后的算子拓扑图中选择最优运算通路,包括:
步骤S41,在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
步骤S42,根据所述主路子拓扑图和所述支路子拓扑图确定最优运算通路。
其中,运算通路是指从加权后的算子拓扑图的起点到终点的通路。
步骤S42中,根据所述主路子拓扑图和所述支路子拓扑图确定最优运算通路,包括以下中的一种:
方式一,确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子,根据确定出的最优算子确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子,根据确定出的最优算子、所述头部运算节点的最优算子和所述尾部运算节点的最优算子确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路。
方式二,确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子;根据确定出的最优算子构成最优运算通路。
本公开实施例中,在模型运算拓扑图因为具有多个支路而导致结构较复杂时,对模型运算拓扑图进行有效分解,分解成多个子拓扑后,根据多个子拓扑确定最优运算通路,有效防止NP问题(即能在多项式时间内验证得出一个正确解的问题),在拓扑较复杂时,仍然可以保证链路的性能。
下面通过举例具体说明上述方式一和方式二。
图5是示例中模型运算拓扑图的结构图。此模型运算拓扑图中包括7个运算节点,分别为运算节点A、运算节点B、运算节点C、运算节点D、运算节点E、运算节点F、运算节点G。此模型运算拓扑图中包括四条通路。
第一条通路依次包括:运算节点A、运算节点B、运算节点C、运算节点D、运算节点E。
第二条通路依次包括:运算节点A、运算节点F、运算节点C、运算节点D、运算节点E。
第三条通路依次包括:运算节点A、运算节点B、运算节点C、运算节点G、运算节点E。
第四通路依次包括:运算节点A、运算节点F、运算节点C、运算节点G、运算节点E。
每个运算节点对应于10个算子节点。例如:运算节点A对应于算子节点A1、A2……A10。运算节点B对应于算子节点B1、B2……B10。
将模型运算拓扑图划分成一个主路子拓扑图和两个支路子拓扑图。主路子拓扑图包括运算节点A、B、C、D、E。确定支路子拓扑时,按照支路子拓扑图的头部运算节点和尾部运算节点均属于主路子拓扑图的原则。按照此原则,确定出的第一支路子拓扑图包括:运算节点A、运算节点F、运算节点C;确定出的第二支路子拓扑图包括:运算节点C、运算节点G、运算节点E。
根据上述方式一确定最优运算通路时,针对主路子拓扑图,确定主路子拓扑图对应的主路加权算子拓扑图,确定主路加权算子拓扑图中的所有运算节点的最优算子,根据确定出的最优算子确定主路最优运算通路包括依次连接的:算子节点A1、算子节点B1、算子节点C1、算子节点D1、算子节点E1。
针对第一支路子拓扑图,确定第一支路子拓扑图对应的第一支路加权算子拓扑图,确定第一支路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定第一支路最优运算通路包括依次连接的:算子节点A1、算子节点F2、算子节点C1。
针对第二支路子拓扑图,确定第二支路最优运算通路包括依次连接的:算子节点C1、算子节点G2、算子节点E1。
将主路最优运算通路和各支路最优运算通路组合,将各支路最优运算通路中属于主路最优运算通路的算子节点与主路最优运算通路中的算子节点合并,获得最终的最优运算通路,如图6所示,此最优运算通路包括以下算子节点:A1、B1、C1、D1、E1、F2、G2。
根据上述方式二确定最优运算通路时,确定主路子拓扑图中每个运算节点的最优算子节点分别为A1、B1、C1、D1、E1。确定第一支路子拓扑图中运算节点F的最优算子节点是F2。确定第二支路子拓扑图中运算节点G的最优算子是G2。将主路最优运算通路和各支路最优运算通路组合后,获得最终的最优运算通路,如图6所示,此最优运算通路包括:算子节点A1、B1、C1、D1、E1、F2、G2。
本公开实施例中还提供一种确定最优运算通路的装置,图7是根据一示例性实施例示出的一种确定最优运算通路的装置的结构图。如图7所示,此装置包括:
第一确定模块701,用于根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
创建模块702,用于为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
构建模块703,用于根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
第二确定模块704,用于确定每个算子节点的运算指标;
加权模块705,用于基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
第一选择模块706,用于在所述加权算子拓扑图中选择最优运算通路。
本公开实施例中还提供一种确定最优运算通路的装置,此装置包括图7示出的装置中的所有模块,并且其中的第二确定模块704包括:
第三确定模块,用于确定算子节点的参考运算能力;
计算模块,用于根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
在另一实施方式中,此装置还包括:第四确定模块,用于确定算子的参考运算能力;
所述第三确定模块,还用于将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力;
所述确定算子的参考运算能力包括以下中的一种:
使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
本公开实施例中还提供一种确定最优运算通路的装置,此装置包括图7示出的装置中的所有模块,并且其中的加权模块705,用于使用以下方法中的一种基于各算子节点的运算指标对所述算子拓扑图进行加权:
根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标;
根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
本公开实施例中还提供一种确定最优运算通路的装置,此装置包括图7示出的装置中的所有模块,并且其中的第一选择模块706,包括:
划分模块,用于在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
第二选择模块,用于根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路。
在另一实施方式中,第二选择模块,还用于使用以下方法中的一种根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路:
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子节点,根据确定出的最优算子节点、所述头部运算节点的最优算子节点和所述尾部运算节点的最优算子节点确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路;
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子节点;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子节点;根据确定出的最优算子节点构成最优运算通路。
本公开实施例中还提供一种确定最优运算通路的装置,此装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
本公开实施例中还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种确定最优运算通路的方法,所述方法包括:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
图8是根据一示例性实施例示出的一种用于确定最优运算通路的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种确定最优运算通路的方法,其特征在于,包括:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点,所述运算节点位于运算装置上;所述运算装置为中央处理器、图像处理器、数字信号处理设备、加速处理器和/或神经网络处理器;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
2.如权利要求1所述的方法,其特征在于,
所述确定每个算子节点的运算指标,包括:
确定算子节点的参考运算能力;
根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
3.如权利要求2所述的方法,其特征在于,
所述方法还包括:确定算子的参考运算能力;
所述确定算子节点的参考运算能力,包括:将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力;
所述确定算子的参考运算能力包括以下中的一种:
使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
4.如权利要求1所述的方法,其特征在于,
所述基于各算子节点的运算指标对所述算子拓扑图进行加权,包括以下中的一种:
根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标;
根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
5.如权利要求1所述的方法,其特征在于,
所述在加权后的算子拓扑图中选择最优运算通路,包括:
在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
根据所述主路子拓扑图和所述支路子拓扑图在加权后的算子拓扑图中选择最优运算通路。
6.如权利要求5所述的方法,其特征在于,
根据所述主路子拓扑图和所述支路子拓扑图在加权后的算子拓扑图中选择最优运算通路,包括以下中的一种:
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子节点,根据确定出的最优算子节点、所述头部运算节点的最优算子节点和所述尾部运算节点的最优算子节点确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路;
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子节点;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子节点;根据确定出的最优算子节点构成最优运算通路。
7.一种确定最优运算通路的装置,其特征在于,包括:
第一确定模块,用于根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点,所述运算节点位于运算装置上;所述运算装置为中央处理器、图像处理器、数字信号处理设备、加速处理器和/或神经网络处理器;
创建模块,用于为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
构建模块,用于根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
第二确定模块,用于确定每个算子节点的运算指标;
加权模块,用于基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
第一选择模块,用于在所述加权算子拓扑图中选择最优运算通路。
8.如权利要求7所述的装置,其特征在于,
所述第二确定模块包括:
第三确定模块,用于确定算子节点的参考运算能力;
计算模块,用于根据所述算子节点的参考运算能力、所述算子节点对应的运算节点的输入数据块和指标计算函数,计算所述算子节点的运算指标。
9.如权利要求8所述的装置,其特征在于,
所述装置还包括:第四确定模块,用于确定算子的参考运算能力;
所述第三确定模块,还用于将所述算子节点的相应算子的参考运算能力作为所述算子节点的参考运算能力;
所述确定算子的参考运算能力包括以下中的一种:
使用设定数据量的测试数据对算子进行运算能力测试,将测试结果作为所述算子的参考运算能力;
使用不同数据量的测试数据对算子进行运算能力测试,将各测试结果的平均值作为所述算子的参考运算能力。
10.如权利要求7所述的装置,其特征在于,
所述加权模块,用于使用以下方法中的一种基于各算子节点的运算指标对所述算子拓扑图进行加权:
根据每个算子节点的运算指标确定所述算子节点与前向相邻算子节点构成的前向边的运算指标;
根据每个算子节点的运算指标确定所述算子节点与后向相邻算子节点构成的后向边的运算指标。
11.如权利要求7所述的装置,其特征在于,
所述第一选择模块,包括:
划分模块,用于在所述模型运算拓扑图中具有一个以上运算通路时,将所述模型运算拓扑图划分成多个子拓扑图;所述多个子拓扑图包括一个主路子拓扑图和至少一个支路子拓扑图;所述支路子拓扑图的头部运算节点和尾部运算节点均属于所述主路子拓扑图;
第二选择模块,用于根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路。
12.如权利要求11所述的装置,其特征在于,
所述第二选择模块,还用于使用以下方法中的一种根据所述主路子拓扑图和所述支路子拓扑图在所述加权算子拓扑图中确定最优运算通路:
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的所有运算节点的最优算子节点,根据确定出的最优算子节点确定主路最优运算通路;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的运算节点对应的最优算子节点,根据确定出的最优算子节点、所述头部运算节点的最优算子节点和所述尾部运算节点的最优算子节点确定支路最优运算通路;将所述主路最优运算通路和所述支路最优运算通路组成最优运算通路;
确定所述主路子拓扑图对应的主路加权算子拓扑图,确定所述主路加权算子拓扑图中的每个运算节点对应的最优算子节点;对于每个支路子拓扑图,确定除头部运算节点和尾部运算节点之外的每个运算节点对应的最优算子节点;根据确定出的最优算子节点构成最优运算通路。
13.一种确定最优运算通路的装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点,所述运算节点位于运算装置上;所述运算装置为中央处理器、图像处理器、数字信号处理设备、加速处理器和/或神经网络处理器;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
14.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种确定最优运算通路的方法,所述方法包括:
根据神经网络模型确定模型运算拓扑图,所述模型运算拓扑图包括多个运算节点,所述运算节点位于运算装置上;所述运算装置为中央处理器、图像处理器、数字信号处理设备、加速处理器和/或神经网络处理器;
为所述模型运算拓扑图中的每个运算节点,选择与该运算节点的运算类型相同的多个算子,为每个算子创建相应的算子节点;
根据所述模型运算拓扑图中各个运算节点之间的连接关系,基于所创建的算子节点构建算子拓扑图;
确定每个算子节点的运算指标,基于各算子节点的运算指标对所述算子拓扑图进行加权,获得加权算子拓扑图;
在所述加权算子拓扑图中选择最优运算通路。
CN202010135015.4A 2020-03-02 2020-03-02 一种确定最优运算通路的方法、装置及介质 Active CN111367669B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010135015.4A CN111367669B (zh) 2020-03-02 2020-03-02 一种确定最优运算通路的方法、装置及介质
US16/987,032 US20210271969A1 (en) 2020-03-02 2020-08-06 Method and device for determining optimal operation path, and storage medium
EP20191458.7A EP3876164A1 (en) 2020-03-02 2020-08-18 Method and device for determining optimal operation path, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010135015.4A CN111367669B (zh) 2020-03-02 2020-03-02 一种确定最优运算通路的方法、装置及介质

Publications (2)

Publication Number Publication Date
CN111367669A CN111367669A (zh) 2020-07-03
CN111367669B true CN111367669B (zh) 2023-08-15

Family

ID=71208391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010135015.4A Active CN111367669B (zh) 2020-03-02 2020-03-02 一种确定最优运算通路的方法、装置及介质

Country Status (3)

Country Link
US (1) US20210271969A1 (zh)
EP (1) EP3876164A1 (zh)
CN (1) CN111367669B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590169B (zh) * 2021-09-30 2021-12-21 武汉四通信息服务有限公司 应用部署方法、应用部署系统和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268428A (zh) * 2014-10-14 2015-01-07 国家电网公司 一种用于指标计算的可视化配置方法
CN105467997A (zh) * 2015-12-21 2016-04-06 浙江工业大学 基于线性时序逻辑理论的仓储机器人路径规划方法
WO2018219223A1 (zh) * 2017-05-31 2018-12-06 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN109242206A (zh) * 2018-10-09 2019-01-18 京东方科技集团股份有限公司 一种路径规划方法、系统及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE511098C2 (sv) * 1997-12-08 1999-08-02 Ericsson Telefon Ab L M Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem
US7308657B2 (en) * 2004-12-10 2007-12-11 International Business Machines Corporation Method for generating hints for program analysis
JP5867008B2 (ja) * 2011-11-22 2016-02-24 富士通株式会社 ノード決定プログラム、ノード決定装置およびノード決定方法
US9537754B2 (en) * 2011-12-21 2017-01-03 Verizon Patent And Licensing Inc. Method and apparatus for finding diverse physical layer paths in networks
US10402429B2 (en) * 2017-05-31 2019-09-03 International Business Machines Corporation Minimizing data transport within a storlet architecture
US11604073B1 (en) * 2018-09-24 2023-03-14 Apple Inc. Route guidance system
US11625585B1 (en) * 2019-05-21 2023-04-11 Perceive Corporation Compiler for optimizing filter sparsity for neural network implementation configuration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268428A (zh) * 2014-10-14 2015-01-07 国家电网公司 一种用于指标计算的可视化配置方法
CN105467997A (zh) * 2015-12-21 2016-04-06 浙江工业大学 基于线性时序逻辑理论的仓储机器人路径规划方法
WO2018219223A1 (zh) * 2017-05-31 2018-12-06 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN109242206A (zh) * 2018-10-09 2019-01-18 京东方科技集团股份有限公司 一种路径规划方法、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾建鑫 ; 刘广钟 ; 徐明 ; .DTN中基于动态多维度组合的拓扑图路由算法.计算机工程.2017,(01),全文. *

Also Published As

Publication number Publication date
US20210271969A1 (en) 2021-09-02
EP3876164A1 (en) 2021-09-08
CN111367669A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN110210535B (zh) 神经网络训练方法及装置以及图像处理方法及装置
EP3812969A1 (en) Neural network model compression method, corpus translation method and device
EP3809333A1 (en) Search method, device and storage medium for neural network model structure
CN110837761B (zh) 多模型知识蒸馏方法及装置、电子设备和存储介质
CN109919300B (zh) 神经网络训练方法及装置以及图像处理方法及装置
CN110909815B (zh) 神经网络训练、图像处理方法、装置及电子设备
CN109858614B (zh) 神经网络训练方法及装置、电子设备和存储介质
CN110188865B (zh) 信息处理方法及装置、电子设备和存储介质
CN110188871B (zh) 运算方法、装置及相关产品
JP2021517282A (ja) ネットワークモジュール、割り当て方法及び装置、電子機器並びに記憶媒体
EP3901827B1 (en) Image processing method and apparatus based on super network, intelligent device and computer storage medium
CN112070235A (zh) 一种深度学习框架的异常定位方法、装置及存储介质
CN112001364A (zh) 图像识别方法及装置、电子设备和存储介质
EP3734472A1 (en) Method and device for text processing
EP4287181A1 (en) Method and apparatus for training neural network, and method and apparatus for audio processing
CN110543849A (zh) 检测器的配置方法及装置、电子设备和存储介质
CN111367669B (zh) 一种确定最优运算通路的方法、装置及介质
CN110188879B (zh) 运算方法、装置及相关产品
CN115512116B (zh) 图像分割模型优化方法、装置、电子设备及可读存储介质
CN110163372B (zh) 运算方法、装置及相关产品
CN111488964A (zh) 图像处理方法及装置、神经网络训练方法及装置
CN112070221B (zh) 运算方法、装置及相关产品
CN110162337B (zh) 运算方法、装置及相关产品
CN116467153A (zh) 数据处理方法、装置、计算机设备及存储介质
CN113486978A (zh) 文本分类模型的训练方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
CB02 Change of applicant information

Address after: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing

Applicant after: Beijing Xiaomi pinecone Electronic Co.,Ltd.

Address before: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing

Applicant before: BEIJING PINECONE ELECTRONICS Co.,Ltd.

CB02 Change of applicant information
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