CN111814948B - 神经网络的运行方法及运行设备、计算机可读存储介质 - Google Patents

神经网络的运行方法及运行设备、计算机可读存储介质 Download PDF

Info

Publication number
CN111814948B
CN111814948B CN202010561442.9A CN202010561442A CN111814948B CN 111814948 B CN111814948 B CN 111814948B CN 202010561442 A CN202010561442 A CN 202010561442A CN 111814948 B CN111814948 B CN 111814948B
Authority
CN
China
Prior art keywords
network
neural network
updating
item list
items
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
CN202010561442.9A
Other languages
English (en)
Other versions
CN111814948A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202010561442.9A priority Critical patent/CN111814948B/zh
Publication of CN111814948A publication Critical patent/CN111814948A/zh
Application granted granted Critical
Publication of CN111814948B publication Critical patent/CN111814948B/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

Abstract

本申请公开了一种神经网络的运行方法及运行设备、计算机可读存储介质。其中,所述神经网络的运行方法包括:对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新。上述方案,能够维护神经网络的稳定运行。

Description

神经网络的运行方法及运行设备、计算机可读存储介质
技术领域
本申请涉及神经网络技术领域,特别是涉及一种神经网络的运行方法及运行设备、计算机可读存储介质。
背景技术
近年来,深度学习技术广泛应用于安防、教育、医疗、制造业等领域,加快深度学习技术的落地尤为重要。神经网络模型的推理过程会占用大量的计算资源,严重阻碍了边缘计算的发展。因此,如何更高效的运行神经网络亟需解决。
例如计算框架ncnn,可以通过手动配置参数的形式来适配实际应用的需求,又例如计算框架paddle-lite,设计网络参数与算子的匹配规则,在初始化阶段完成算子选择。但是,上述两个设计都采用固定的匹配规则,当环境发生较大变化时,软件效果很可能大打折,甚至会发生奔溃。
发明内容
本申请主要解决的技术问题是提供一种神经网络的运行方法及运行设备、计算机可读存储介质,能够维护神经网络的稳定运行。
为了解决上述问题,本申请第一方面提供了一种神经网络的运行方法,所述方法包括:对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新。
为解决上述问题,本申请第二方面提供了一种神经网络的运行设备,包括:网络初始化装置,用于对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;动态算子选择装置,用于在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新。
为解决上述问题,本申请第三方面提供了一种神经网络的运行设备,包括相互耦接的存储器和处理器;所述存储器用于存储程序指令,所述处理器用于执行所述存储器中存储的程序指令,以实现上述第一方面的神经网络的运行方法。
为解决上述问题,本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现上述第一方面的神经网络的运行方法。
本发明的有益效果是:区别于现有技术的情况,本申请通过对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对运行的神经网络进行持续更新。通过上述方式,在网络初始化中完成对神经网络的静态算子选择,而在网络运行期间持续对神经网络进行动态算子选择,当网络运行环境发生变化时,能够及时对当前运行的神经网络及时作出调整,以提高神经网络的稳定性和综合性能。
附图说明
图1是本申请神经网络的运行方法一实施例的流程示意图;
图2a是图1中步骤S11一实施例的流程示意图;
图2b是一应用场景中通过网络生成器生成初始化神经网络的流程示意图;
图3是一应用场景中神经网络模型局部结构的结构示意图;
图4是图1中步骤S12一实施例的流程示意图;
图5是图4中步骤S123一实施例的流程示意图;
图6是本申请神经网络的运行设备一实施例的结构示意图;
图7是图6中的网络初始化装置600一实施例的结构示意图;
图8是图6中的动态算子选择装置602一实施例的结构示意图;
图9是图8中的动态优化器6022一实施例的结构示意图;
图10是一应用场景中通过网络状态分析器60220生成更新项列表的流程示意图;
图11是一应用场景中通过更新预测器60222生成有效更新项列表的流程示意图;
图12是图8中的引擎监控器6020一实施例的结构示意图;
图13是图6的神经网络的运行设备60实现神经网络的运行的流程示意图;
图14是本申请神经网络的运行设备另一实施例的结构示意图;
图15是本申请存储装置一实施例的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请神经网络的运行方法一实施例的流程示意图。本实施例中的神经网络的运行方法,包括以下步骤:
S11:对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络。
可以理解的是,本实施例中的待调整的神经网络模型为训练完成的神经网络模型,在将待调整的神经网络模型输入神经网络引擎之后,待调整的神经网络模型可能存在多种可选的算子或结构,因此可以对待调整的神经网络模型进行静态算子选择,选择最优的网络结构和算子组合以生成初始化神经网络,从而可以保证神经网络的整体效果。
S12:在所述初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新。
在神经网络运行期间,网络运行环境可能发生变化,因此可以根据网络运行时信息对运行的神经网络进行动态算子选择,及时调整网络结构和选择的算子,得到调整后的神经网络,实现对运行中的神经网络进行持续更新,而调整后的神经网络能更好的适应当前的网络运行环境,从而提高了神经网络的稳定性和综合性能。
具体地,请参阅图2a,图2a是图1中步骤S11一实施例的流程示意图,在一实施例中,上述步骤S11包括:
S111:通过若干个网络优化器对所述待调整的神经网络模型进行优化,得到至少两个优化后的神经网络。
网络优化器用于对输入的待调整的神经网络模型进行优化,例如进行层合并、裁剪、通道合并、量化等优化操作,然后得到至少两个优化后的神经网络,其中,所得到的每个优化后的神经网络均包括相对应的网络性能信息和网络参数。
S112:对所述至少两个优化后的神经网络进行网络性能评估,生成每个所述优化后的神经网络相对应的网络性能及结构信息。
通过对每个优化后的神经网络进行网络性能评估,例如对优化后的神经网络进行试运行统计,或者根据优化后的神经网络均相对应的网络性能信息和网络参数进行理论计算,从而可以预估优化后的神经网络的CPU(中央处理器)、内存等性能指标,并生成优化后的神经网络相对应的网络性能及结构信息。
S113:读取所有的所述优化后的神经网络相对应的网络性能及结构信息,并根据预设的初始网络生成策略和局部最优算法生成一个第一网络最优解,以作为所述初始化神经网络。
本实施例中,网络优化器的数量不限,若干个网络优化器可以串行并行自由组合,因此若干个网络优化器会生成多种优化后的神经网络,而这些不同的网络优化器生成的优化后的神经网络很可能会重叠、冲突,因此需要综合这些优化后的神经网络,并生成一个综合效果较好的神经网络。请参阅图2b,图2b是一应用场景中通过网络生成器生成初始化神经网络的流程示意图,具体可以通过网络生成器读取所有的优化后的神经网络相对应的网络性能及结构信息,并根据平台信息、网络参数、预设的初始网络生成策略和局部最优算法生成一个可执行的第一网络最优解,以作为初始化神经网络。
本实施例中,生成初始化神经网络的过程不依赖于预设的网络参数,而是对所有的算子进行在线性能评估,可以处理某类计算模式下存在多种可选算子的情况,能够自动选择最优算子,从而保证网络的整体效果。
进一步地,第一网络最优解的计算量与神经网络的深度成指数关系,当网络较深时,获得第一网络最优解将消耗大量的计算资源甚至难以计算。本实施例采用的是局部最优算法,通过局部求解的方法,以连续n层的最优解作为求解目标,n可以为任意大于1的自然数,n越大,优化效果越好,但计算复杂度也越高,具体取值需要权衡需求和运行环境的承载能力;其中,第n-1层节点的输出部分提供有限的可选解,具体选择待定,第n层节点是求解目标,它受第n-1层节点的输出的影响,而第n层节点的输出分别会影响第n+1层节点;所述局部最优算法的具体步骤包括:依次根据所述神经网络上一层节点计算本层节点的第一解列表;其中,所述上一层节点的输入已知,输出已知有限可选解;依次根据所述本层节点的下一层节点的输入特性求解所述本层节点的第二解列表;合并所述第一解列表和所述第二解列表,并以合并后列表的最优解作为所述本层节点的输入,所述本层节点的输出保留所有可选解。另外,可以理解的是,当本层节点为第一层时,则从第二解列表中的最优解作为本层节点的输入,而当本层节点为最后一层时,则从第一解列表中的最优解作为本层节点的输入。请参阅图3,图3是一应用场景中神经网络模型局部结构的结构示意图,以n等于3的为例,计算当前网络节点与所有和它相邻网络节点的最优解;如图所示,节点A1、节点A2、节点A3的输出部分提供有限的可选解,具体选择待定,节点B1、节点B2是求解目标,它受节点A1、节点A2、节点A3的输出的影响,而节点B1、节点B2的输出分别会影响节点C1、节点C2、节点C3和节点D1、节点D2、节点D3。在该模型中,节点A1、节点A2、节点A3的输入已知,输出已知有限可选解,节点B1、节点B2、节点C1、节点C2、节点C3、节点D1、节点D2、节点D3的输入和输出全部未知,求解步骤如下:根据节点A1、节点A2、节点A3计算节点B1和节点B2的解列表Y01、Y02;根据节点C1、节点C2、节点C3的输入特性求解节点B1的解列表Y11,根据节点D1、节点D2、节点D3的输入特性求解节点B2的解列表Y12;合并解列表Y01和Y11,以合并后列表中的最优解作为节点B1的输入,合并解列表Y11和Y12,以合并后列表中的最优解作为节点B2的输入,而节点B1、节点B2的输出部分则保留所有可选解。按照上述方法可以继续求解节点C1~C3、节点D1~D3的解。
另外,本申请中的预设的初始网络生成策略可以根据实际产品需求进行定制,例如可以为性能优先的高性能模式、节能模式、NPU(网络处理器)优先等等。
本申请根据预设的初始网络生成策略和局部最优算法所生成的第一网络最优解,可以保证算子的匹配结果在任意连续n层上是最优的。由于在评估某层中的算子时,同时考虑了上下几层的参数,将算子选择和网络结构优化融合一体,不再对单层网络节点做最优选择,而是从网络整体性能出发,并结合预设的初始网络生成策略,可以精确地从所有算子中搜寻出局部最优解,从而可以选择出最优的算子组合,并生成初始化神经网络。
具体地,请参阅图4,图4是图1中步骤S12一实施例的流程示意图,在一实施例中,上述步骤S12包括:
S121:对所述神经网络引擎进行实时监控,获取所述网络运行时信息。
可以理解的是,在神经网络运行期间,网络运行环境很可能发生变化,因此为了维护了网络运行的稳定性,则需要对运行中的神经网络引擎进行实时监控,获取网络运行时信息,以便及时调整网络结构和选择的算子,使之能更好的适应当前的运行环境。
进一步地,上述的网络运行时信息可以包括内存信息、程序运行状态信息以及引擎运行状态信息。通过实时监视系统内存、计算单元运行状态、引擎运行状态等,可以为在网络运行期间进行动态算子选择提供诸如内存信息、程序运行状态信息以及引擎运行状态信息等有用信息。
S122:根据所述网络运行时信息生成更新项列表。
具体地,步骤S122可以包括:对所述网络运行时信息进行分析,判断运行环境是否发生变化;若是,则生成所述更新项列表。可以理解的是,对实时监控所获得的网络运行时信息进行分析,可以判断出当前网络运行环境是否发生变化,若没有发生变化,则继续运行当前神经网络;若发生变化,则需要及时调整网络的资源分配,以适应新的网络运行环境。例如,在运行过程中,内存、CPU、GPU(图形处理器)、DSP(数字信号处理器)、NPU等硬件的使用情况可能发生变化,或者涉及到计算资源需求量与输入数据相关的网络层,如LSTM(LongShort-Term Memory,长短期记忆网络),又或者网络或引擎的配置参数发生变化、且会影响计算资源的分配;因此需要对网络进行相应的调整,而对网络的调整方案可能存在较多解,此时需要获取所有可能的更新项,然后在滤除了不符合要求的选项后,则可以生成更新项列表。
S123:对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络。
可以理解的是,更新项列表中存在多个更新项,那么具体选择哪一个更新项来更新网络,则需要对更新项列表中的所有更新项进行分析和预判,筛选出最优的更新项来更新网络,以使更新后的神经网络效果最优。
具体地,请参阅图5,图5是图4中步骤S123一实施例的流程示意图。上述步骤S123包括:
S1231:对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表。
可以理解的是,对网络参数的修改往往会牵一发而动全身,每次网络更新都需要重新生成网络,这会引入很大的资源开销,因此需要提前对更新项列表中的所有更新项进行预判,以保证后续通过选择的更新项对网络进行更新后的效果。
进一步地,上述步骤S123包括:通过更新预测器判断所述更新项列表中的每个更新项是否能够进行效果预测;若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。通过这种方式,可以从更新项列表中筛选出所有的有效更新项,并形成有效更新项列表。
S1232:对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络。
由于不同的更新项所带来的网络更新后的效果不同,因此需要在所有的有效更新项中根据实时网络生成策略选择出一个最优的更新项,其中实时网络生成策略需要根据实际产品需求进行定制,例如可以为性能优先的高性能模式、节能模式、NPU优先等等。于是,依据筛选出的第二网络最优解来更新网络,所得到的更新后的神经网络相较于更新前的神经网络来说,能够更好的适应当前的运行环境,维护了网络运行的稳定性。
在一实施例中,上述步骤S12之后还包括:对更新后的神经网络进行前向计算,输出推理结果。具体地,根据运行环境和网络参数等信息,执行网络前向计算,记录网络的动态信息,并输出推理结果。
本申请的实施例中,在网络初始化过程中完成对神经网络的静态算子选择,生成初始化神经网络,不依赖于预设的参数,而是对所有的算子进行在线性能评估,并利用局部最优算法保证算子的匹配结果在任意连续n层上是最优的;在网络运行期间持续对神经网络进行动态算子选择,通过实时分析网络的运行状态,当网络运行环境发生变化时,能够及时对当前运行的神经网络及时作出调整,以提高神经网络的稳定性和综合性能。
请参阅图6,图6是本申请神经网络的运行设备一实施例的结构示意图。本实施例中的运行设备60包括相互耦接的网络初始化装置600和动态算子选择装置602。网络初始化装置600用于对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;动态算子选择装置602用于在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新。
进一步地,请参阅图7,图7是图6中的网络初始化装置600一实施例的结构示意图。网络初始化装置600包括引擎初始化模块6000、若干个网络优化器6002、网络性能评估器6004和网络生成器6006;具体地,通过引擎初始化模块6000对神经网络引擎进行初始化后,将待调整的神经网络模型输入神经网络引擎,若干个网络优化器6002用于对输入的待调整的神经网络模型进行优化,得到至少两个优化后的神经网络,网络优化器6002生成的每个优化后的神经网络仅包含结构信息,为下一个阶段的算子选择提供较好的灵活性;网络性能评估器6004用于对所述至少两个优化后的神经网络进行网络性能评估,生成每个所述优化后的神经网络相对应的网络性能及结构信息;网络生成器6006用于读取所有的所述优化后的神经网络相对应的网络性能及结构信息,并根据预设的初始网络生成策略生成一个第一网络最优解,以作为所述初始化神经网络。
进一步地,请参阅图8和图9,图8是图6中的动态算子选择装置602一实施例的结构示意图,图9是图8中的动态优化器6022一实施例的结构示意图。动态算子选择装置602包括引擎监控器6020和动态优化器6022;引擎监控器6020用于对所述神经网络引擎进行实时监控,获取所述网络运行时信息;动态优化器6022包括网络状态分析器60220和更新预测器60222;网络状态分析器60220用于根据所述网络运行时信息生成更新项列表,结合10所示,图10是一应用场景中通过网络状态分析器60220生成更新项列表的流程示意图,具体地,网络状态分析器60220从引擎监控器6020中读取网络运行时信息后,对网络运行时信息进行分析,判断运行环境是否发生变化;若是,则需要及时调整网络的资源分配,以适应新的网络运行环境,即生成更新项。例如,在运行过程中,硬件资源出现变化,如cpu、内存的使用情况出现较大波动,或者涉及到计算资源需求量与输入数据相关的网络层,如长短期记忆网络LSTM;因此需要对网络进行相应的调整,而对网络的调整方案可能存在较多解,此时需要获取所有可能的更新项,然后在滤除了不符合要求的选项后,则可以生成更新项列表。
更新预测器60222用于对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络;进一步地,所述更新预测器执行所述对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络的步骤,具体包括:对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表;对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络。进一步地,所述更新预测器执行所述对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表的步骤,具体包括:判断所述更新项列表中的每个更新项是否能够进行效果预测;若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。
如图11所示,图11是一应用场景中通过更新预测器60222生成有效更新项列表的流程示意图。将更新项列表中的所有更新项通过更新预测器60222进行检测,判断更新项列表中的每个更新项是否能够进行效果预测;若能够进行效果预测,则获取能够进行效果预测的更新项所对应的预测结果,并进一步判断预测结果是否有效,若有效,则将对应的更新项加入有效更新项列表;若不能够进行效果预测,则根据不能够进行效果预测的更新项生成对应的新网络,将新网络的预测结果反馈给更新预测器,并将对应的新网络的结果为有效的更新项加入有效更新项列表。由于不同的更新项所带来的网络更新后的效果不同,因此需要在所有的有效更新项中根据实时网络生成策略选择出一个最优解,然后依据筛选出的最优解来更新当前网络,所得到的更新后的神经网络相较于更新前的神经网络来说,能够更好的适应当前的运行环境,维护了网络运行的稳定性。另外,本申请的更新预测器60222可采用机器学习来实现,例如它的输入为更新项的参数,并以更新后的子网络的状态作为反馈,持续训练更新预测器60222,另外也可以采用状态机或者查表来实现。
进一步地,请参阅图12,图12是图8中的引擎监控器6020一实施例的结构示意图。网络运行时信息包括内存信息、程序运行状态信息以及引擎运行状态信息;引擎监控器6020包括内存监控器60200、程序运行状态监控器60202以及引擎运行状态监控器60204,内存监控器60200用于获取所述内存信息,程序运行状态监控器60202用于获取所述程序运行状态信息,引擎运行状态监控器60204用于获取所述引擎运行状态信息。引擎监控器6020为动态算子选择提供有用信息,它需要实时监视系统内存、算子执行单元和程序执行单元运行状态、引擎运行状态等,它按照设定的监视规则记录日志,并对部分突发事件作出实时响应。算子执行单元(kernel)包含三大部分:上下文、静态属性、动态属性;上下文描述了算子的运行环境,包括硬件平台信息、软件系统信息,其中硬件平台不限于x86、ARM(AdvancedRISC Machines)、CUDA(Compute Unified Device Architecture)、OPENCL(OpenComputing Language)等,软件系统不限于linux、windows、mac、android、ios、裸机等;静态属性是指kernel的固定属性,比如算子类型、数据类型、输入数据格式、输出数据格式等;动态属性主要包括kernel的名称、ID、运行状态、资源使用情况等。程序执行单元对应于网络中的一层,它由一系列算子组成,程序执行单元除了包含一个上下文信息,还包括一个程序的调度信息,其记录程序的参数及运行状态。
进一步地,运行设备60还包括引擎执行器604,引擎执行器604由上下文状态信息、网络参数等部分组成,引擎执行器604用于对更新后的神经网络进行前向计算,记录网络的动态信息,并输出推理结果。
如图13所示,图13是图6的神经网络的运行设备60实现神经网络的运行的流程示意图。神经网络的运行设备60实现神经网络的稳定运行主要包括静态算子选择和动态算子选择两大部分,其中静态算子选择在网络初始化模块中完成,动态算子选择包含引擎监控器和动态优化器两个模块。其中,网络初始化用于生产初始网络,它从网络优化器生成的一系列备选网络中选择最优的网络结构和算子组合,引擎监控器实时监视神经网络的资源使用情况以获取网络运行时信息,动态优化器是动态算子选择的核心部分,它在引擎运行时,根据网络运行时信息持续对神经网络进行优化,引擎执行器执行神经网络前向,输出计算结果。使得神经网络存在多种可选的算子或结构时,能够自动选择最优算子,保证网络的整体效果,且当网络运行环境发生变化时,能够及时调整网络所选择的算子,维护网络的稳定运行。
另外,神经网络的运行设备60中的各功能模块还可以用于实现上述任一实施例中的神经网络的运行方法的步骤。
请参阅图14,图14是本申请神经网络的运行设备一实施例的结构示意图。本实施例中的运行设备14包括相互耦接的存储器140和处理器142;存储器140用于存储程序指令,处理器142用于执行存储器140中存储的程序指令,以实现上述任一实施例中的神经网络的运行方法的步骤。
关于本申请运行设备实现神经网络的运行方法的具体内容请参阅上述神经网络的运行方法实施例中的内容,此处不再赘述。
请参阅图15,图15是本申请计算机可读存储介质一实施例的结构示意图。本申请计算机可读存储介质15上存储有程序指令150,程序指令150被处理器执行时实现上述任一神经网络的运行方法的实施例中的步骤。
该计算机可读存储介质15具体可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等可以存储程序指令150的介质,或者也可以为存储有该程序指令150的服务器,该服务器可将存储的程序指令150发送给其他设备运行,或者也可以自运行该存储的程序指令150。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (18)

1.一种神经网络的运行方法,其特征在于,所述方法包括:
对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;
在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新;
其中,所述对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络的步骤,包括:
通过若干个网络优化器对所述待调整的神经网络模型进行优化,得到至少两个优化后的神经网络;
对所述至少两个优化后的神经网络进行网络性能评估,生成每个所述优化后的神经网络相对应的网络性能及结构信息;
读取所有的所述优化后的神经网络相对应的网络性能及结构信息,并根据预设的初始网络生成策略和局部最优算法生成一个第一网络最优解,以作为所述初始化神经网络;
所述局部最优算法的具体步骤包括:
依次根据所述神经网络上一层节点计算本层节点的第一解列表;其中,所述上一层节点的输入已知,输出已知有限可选解;
依次根据所述本层节点的下一层节点的输入特性求解所述本层节点的第二解列表;
合并所述第一解列表和所述第二解列表,并以合并后列表的最优解作为所述本层节点的输入,所述本层节点的输出保留所有可选解。
2.根据权利要求1所述的方法,其特征在于,所述在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新的步骤,包括:
对所述神经网络引擎进行实时监控,获取所述网络运行时信息;
根据所述网络运行时信息生成更新项列表;
对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络。
3.根据权利要求2所述的方法,其特征在于,所述网络运行时信息包括内存信息、程序运行状态信息以及引擎运行状态信息。
4.根据权利要求2所述的方法,其特征在于,所述根据所述网络运行时信息生成更新项列表的步骤,包括:
对所述网络运行时信息进行分析,判断运行环境是否发生变化;
若是,则生成所述更新项列表。
5.根据权利要求2所述的方法,其特征在于,所述对所述更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络的步骤,包括:
对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表;
对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络。
6.根据权利要求5所述的方法,其特征在于,所述对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表的步骤,包括:
通过更新预测器判断所述更新项列表中的每个更新项是否能够进行效果预测;
若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;
若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对更新后的神经网络进行前向计算,输出推理结果。
8.一种神经网络的运行方法,其特征在于,所述方法包括:
对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;
在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新;
其中,所述在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新的步骤,包括:
对所述神经网络引擎进行实时监控,获取所述网络运行时信息;
根据所述网络运行时信息生成更新项列表;
对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表;
对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络;
所述对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表的步骤,包括:
通过更新预测器判断所述更新项列表中的每个更新项是否能够进行效果预测;
若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;
若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。
9.一种神经网络的运行设备,其特征在于,包括:
网络初始化装置,用于对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;
动态算子选择装置,用于在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新;
其中,所述网络初始化装置包括若干个网络优化器、网络性能评估器和网络生成器;
所述若干个网络优化器用于对所述待调整的神经网络模型进行优化,得到至少两个优化后的神经网络;
所述网络性能评估器用于对所述至少两个优化后的神经网络进行网络性能评估,生成每个所述优化后的神经网络相对应的网络性能及结构信息;
所述网络生成器用于读取所有的所述优化后的神经网络相对应的网络性能及结构信息,并根据预设的初始网络生成策略和局部最优算法生成一个第一网络最优解,以作为所述初始化神经网络;
所述局部最优算法的具体步骤包括:
依次根据所述神经网络上一层节点计算本层节点的第一解列表;其中,所述上一层节点的输入已知,输出已知有限可选解;
依次根据所述本层节点的下一层节点的输入特性求解所述本层节点的第二解列表;
合并所述第一解列表和所述第二解列表,并以合并后列表的最优解作为所述本层节点的输入,所述本层节点的输出保留所有可选解。
10.根据权利要求9所述的运行设备,其特征在于,所述动态算子选择装置包括引擎监控器和动态优化器;
所述引擎监控器用于对所述神经网络引擎进行实时监控,获取所述网络运行时信息;
所述动态优化器包括网络状态分析器和更新预测器;所述网络状态分析器用于根据所述网络运行时信息生成更新项列表;所述更新预测器用于对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络。
11.根据权利要求10所述的运行设备,其特征在于,所述网络运行时信息包括内存信息、程序运行状态信息以及引擎运行状态信息;所述引擎监控器包括内存监控器、程序运行状态监控器以及引擎运行状态监控器,所述内存监控器用于获取所述内存信息,所述程序运行状态监控器用于获取所述程序运行状态信息,所述引擎运行状态监控器用于获取所述引擎运行状态信息。
12.根据权利要求10所述的运行设备,其特征在于,所述网络状态分析器执行所述根据所述网络运行时信息生成更新项列表的步骤,具体包括:
对所述网络运行时信息进行分析,判断运行环境是否发生变化;
若是,则生成所述更新项列表。
13.根据权利要求10所述的运行设备,其特征在于,所述更新预测器执行所述对所述更新项列表中的所有更新项进行分析,筛选出一个第二网络最优解,以作为更新后的神经网络的步骤,具体包括:
对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表;
对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络。
14.根据权利要求13所述的运行设备,其特征在于,所述更新预测器执行所述对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表的步骤,具体包括:
判断所述更新项列表中的每个更新项是否能够进行效果预测;
若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;
若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。
15.根据权利要求9所述的运行设备,其特征在于,还包括:
引擎执行器,所述引擎执行器用于对更新后的神经网络进行前向计算,输出推理结果。
16.一种神经网络的运行设备,其特征在于,包括:
网络初始化装置,用于对输入神经网络引擎的待调整的神经网络模型进行静态算子选择,生成初始化神经网络;
动态算子选择装置,用于在初始化神经网络运行期间,根据网络运行时信息对运行的神经网络进行动态算子选择,以对所述运行的神经网络进行持续更新;
其中,所述动态算子选择装置包括引擎监控器和动态优化器;
所述引擎监控器用于对所述神经网络引擎进行实时监控,获取所述网络运行时信息;
所述动态优化器包括网络状态分析器和更新预测器;所述网络状态分析器用于根据所述网络运行时信息生成更新项列表;所述更新预测器用于对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表,以及,对所述有效更新项列表中的所有更新项根据实时网络生成策略选择一个第二网络最优解,以作为更新后的神经网络;
所述更新预测器执行所述对所述更新项列表中的所有更新项进行效果预测,获取预测结果为有效的所有更新项并形成有效更新项列表的步骤,具体包括:
判断所述更新项列表中的每个更新项是否能够进行效果预测;
若是,则获取能够进行效果预测的更新项所对应的预测结果,并将预测结果为有效的所有更新项加入有效更新项列表;
若否,则根据不能够进行效果预测的更新项生成对应的新神经网络,并将对应的新神经网络为有效的所有更新项加入有效更新项列表。
17.一种神经网络的运行设备,其特征在于,包括相互耦接的存储器和处理器;
所述存储器用于存储程序指令,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至7或权利要求8任一项所述的神经网络的运行方法。
18.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至7或权利要求8任一项所述的神经网络的运行方法。
CN202010561442.9A 2020-06-18 2020-06-18 神经网络的运行方法及运行设备、计算机可读存储介质 Active CN111814948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010561442.9A CN111814948B (zh) 2020-06-18 2020-06-18 神经网络的运行方法及运行设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010561442.9A CN111814948B (zh) 2020-06-18 2020-06-18 神经网络的运行方法及运行设备、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111814948A CN111814948A (zh) 2020-10-23
CN111814948B true CN111814948B (zh) 2021-07-13

Family

ID=72845401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010561442.9A Active CN111814948B (zh) 2020-06-18 2020-06-18 神经网络的运行方法及运行设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111814948B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919310A (zh) * 2019-01-15 2019-06-21 中国科学院信息工程研究所 一种面向深度学习训练任务的gpu内存优化方法及系统
CN110309911A (zh) * 2019-07-05 2019-10-08 北京中科寒武纪科技有限公司 神经网络模型验证方法、装置、计算机设备和存储介质
CN111222637A (zh) * 2020-01-17 2020-06-02 上海商汤智能科技有限公司 神经网络模型部署方法及装置、电子设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706354B2 (en) * 2016-05-06 2020-07-07 International Business Machines Corporation Estimating cardinality selectivity utilizing artificial neural networks
WO2018165753A1 (en) * 2017-03-14 2018-09-20 University Of Manitoba Structure defect detection using machine learning algorithms
US20180341851A1 (en) * 2017-05-24 2018-11-29 International Business Machines Corporation Tuning of a machine learning system
CN110287941B (zh) * 2019-07-03 2022-12-27 哈尔滨工业大学 一种基于概念学习的透彻感知与动态理解方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919310A (zh) * 2019-01-15 2019-06-21 中国科学院信息工程研究所 一种面向深度学习训练任务的gpu内存优化方法及系统
CN110309911A (zh) * 2019-07-05 2019-10-08 北京中科寒武纪科技有限公司 神经网络模型验证方法、装置、计算机设备和存储介质
CN111222637A (zh) * 2020-01-17 2020-06-02 上海商汤智能科技有限公司 神经网络模型部署方法及装置、电子设备和存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Cavs: An Efficient Runtime System for Dynamic Neural Networks";G Neubig;《2018 USENIX》;20181231;第937-950页 *
"一类神经网络算子的构造与逼近";常利苹;《中国计量大学学报》;20190930;第337-342页 *
"机器学习:各种优化器Optimizer的总结与比较";SanFanCSgo;《https://blog.csdn.net/weixin_40170902/article/details/80092628》;20180425;第1-12页 *
"深度学习与计算机视觉系列(8)_神经网络训练与注意点";寒小阳;《http://blog.csdn.net/han_xiaoyang/article/details/50521064》;20160115;第1-8页 *
寒小阳."深度学习与计算机视觉系列(8)_神经网络训练与注意点".《http://blog.csdn.net/han_xiaoyang/article/details/50521064》.2016, *

Also Published As

Publication number Publication date
CN111814948A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
US20220414426A1 (en) Neural Architecture Search Method and Apparatus, Device, and Medium
CN112148570A (zh) 改进在异构系统上执行的软件的运行时性能的方法和设备
US20210288887A1 (en) Systems and methods for contextual transformation of analytical model of iot edge devices
US20200034750A1 (en) Generating artificial training data for machine-learning
CN111178486B (zh) 一种基于种群演化的超参数异步并行搜索方法
CN107908536B (zh) Cpu-gpu异构环境中对gpu应用的性能评估方法及系统
DE102020108374A1 (de) Verfahren und vorrichtung zur laufzeitmehrfachplanung von software, die in einem heterogenen system ausgeführt wird
EP4290351A1 (en) Environment modeling method and apparatus based on decision flow graph, and electronic device
Vu et al. Distributed adaptive model rules for mining big data streams
CN110825522A (zh) Spark参数自适应优化方法及系统
Fanjiang et al. Search based approach to forecasting QoS attributes of web services using genetic programming
Anwar et al. A hybrid-adaptive neuro-fuzzy inference system for multi-objective regression test suites optimization
CN115543626A (zh) 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法
US11063841B2 (en) Systems and methods for managing network performance based on defining rewards for a reinforcement learning model
Aksar et al. Proctor: A semi-supervised performance anomaly diagnosis framework for production hpc systems
Ding et al. Coin: a container workload prediction model focusing on common and individual changes in workloads
CN111814948B (zh) 神经网络的运行方法及运行设备、计算机可读存储介质
US20230222385A1 (en) Evaluation method, evaluation apparatus, and non-transitory computer-readable recording medium storing evaluation program
Márquez et al. A load balancing schema for agent-based spmd applications
Paduraru et al. RiverFuzzRL-an open-source tool to experiment with reinforcement learning for fuzzing
Kinneer et al. Building reusable repertoires for stochastic self-* planners
Nguyen et al. SLUBM: An Extended LUBM Benchmark for Stream Reasoning.
Gulenko et al. Bitflow: An in situ stream processing framework
US20220197901A1 (en) Ai model optimization method and apparatus
Jaeger et al. From statistical model checking to run-time monitoring using a bayesian network approach

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