网络算子处理方法、装置、电子设备及存储介质与流程

文档序号:23724113发布日期:2021-01-26 14:38阅读:60来源:国知局
网络算子处理方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及人工智能领域,特别涉及深度学习及知识图谱领域的网络算子处理方法、装置、电子设备及存储介质。


背景技术:

[0002]
深度学习框架在实际的模型训练过程中,需要尽可能的减少显存、提升运行速度,以便提升运行效率等。深度学习框架下的每个算子都需要若干个显存空间来存放该算子的输入数据以及输出数据(输出结果)。但对于某些算子而言,其输出数据可复用输入数据的空间,从而可达到节省存储空间的目的。在语音中存在大量如在线使用用户声音训练个性化模型的任务,对训练速度和显存大小要求很高。
[0003]
目前,为进行空间复用,通常采用人工查找网络中支持空间复用的算子的方式,但这种方式需要耗费比较大的人力和时间成本,而且,人工操作很容易出现错误,准确性较差等。


技术实现要素:

[0004]
本申请提供了网络算子处理方法、装置、电子设备及存储介质。
[0005]
一种网络算子处理方法,包括:
[0006]
针对网络中的任一算子,分别对所述算子进行条件分析;
[0007]
若根据分析结果确定所述算子满足空间复用条件,则将所述算子作为查找出的支持空间复用的算子。
[0008]
一种网络算子处理装置,包括:分析模块;
[0009]
所述分析模块,用于针对网络中的任一算子,分别对所述算子进行条件分析,若根据分析结果确定所述算子满足空间复用条件,则将所述算子作为查找出的支持空间复用的算子。
[0010]
一种电子设备,包括:
[0011]
至少一个处理器;以及
[0012]
与所述至少一个处理器通信连接的存储器;其中,
[0013]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
[0014]
一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如以上所述的方法。
[0015]
上述申请中的一个实施例具有如下优点或有益效果:可自动地查找出网络中支持空间复用的算子,从而节省了人力和时间成本,而且,避免了人为操作可能出现的错误,从而提升了查找结果的准确性等。
[0016]
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0017]
附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0018]
图1为本申请所述网络算子处理方法第一实施例的流程图;
[0019]
图2为本申请所述算子图的示意图;
[0020]
图3为本申请所述网络算子处理方法第二实施例的流程图;
[0021]
图4为本申请所述网络算子处理装置40实施例的组成结构示意图;
[0022]
图5为根据本申请实施例所述方法的电子设备的框图。
具体实施方式
[0023]
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0024]
另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0025]
图1为本申请所述网络算子处理方法第一实施例的流程图。如图1所示,包括以下具体实现方式。
[0026]
在步骤101中,针对网络中的任一算子,分别对该算子进行条件分析。
[0027]
在步骤102中,若根据分析结果确定该算子满足空间复用条件,则将该算子作为查找出的支持空间复用的算子。
[0028]
可以看出,上述实施例中,可自动地查找出网络中支持空间复用的算子,从而节省了人力和时间成本,而且,避免了人为操作可能出现的错误,从而提升了查找结果的准确性等。
[0029]
如步骤101中所述,针对网络中的任一算子,可分别对该算子进行条件分析。作为一种优选的实现方式,可按照预定顺序遍历网络对应的算子图中的算子,算子图中的各结点分别对应于网络中的不同算子,并根据算子间的数据传输关系将对应结点通过边相连,针对遍历到的任一算子,可分别对该算子进行条件分析。
[0030]
图2为本申请所述算子图的示意图。如图2所示,为简化附图,其中仅表示出了五个结点,即五个算子。
[0031]
按照何种顺序遍历算子图中的各算子可根据实际需要而定,本实施例中不作限制,如可采用宽度优先遍历方法等。
[0032]
针对遍历到的任一算子,可分别对其进行条件分析,以确定该算子是否满足空间复用条件,如步骤102中所述,若根据分析结果确定该算子满足空间复用条件,则可将该算子作为查找出的支持空间复用的算子。
[0033]
作为一种优选的实现方式,针对遍历到的任一算子,若确定该算子的输入对应的输入空间不与其它算子共用,且该算子的输出对应的输出空间不与其它算子共用,则可确定该算子满足空间复用条件,其它算子为该算子之外的算子。
[0034]
即针对遍历到的任一算子,可根据算子间的数据传输关系确定该算子是否满足空
间复用条件,若该算子的输入对应的输入空间不被多个算子共同读,且该算子的输出对应的输出空间不被多个算子共同写,则可确定该算子满足空间复用条件。
[0035]
通过上述方式,可准确快速地查找出满足空间复用条件的算子,即支持空间复用的算子。
[0036]
针对任一支持空间复用的算子,还可分别将该算子的输入和输出配置为指向同一空间,即输出数据可直接写到输入数据的位置上,从而实现空间复用,且不会出现计算错误等。
[0037]
另外,针对任一支持空间复用的算子,还可分别为该算子设置标志位,所述标志位用于标识该算子为支持空间复用的算子。
[0038]
通过设置标志位,可以使算子获知自己的身份,即为支持空间复用的算子。在算子执行时,可根据所述身份执行一些相应的处理,如某一算子用于执行数据搬运,即将输入空间的数据搬运到输出空间,若进行了空间复用,那么则可无需执行所述数据搬运过程,从而节省了处理时间,提升了数据处理效率等。
[0039]
基于上述介绍,图3为本申请所述网络算子处理方法第二实施例的流程图。如图3所示,包括以下具体实现方式。
[0040]
在步骤301中,按照预定顺序遍历网络对应的算子图中的算子。
[0041]
算子图中的各结点分别对应于网络中的不同算子,并根据算子间的数据传输关系将对应结点通过边相连。
[0042]
如何获取网络对应的算子图为现有技术。
[0043]
在步骤302中,针对遍历到的任一算子,分别对该算子进行条件分析。
[0044]
在步骤303中,根据分析结果确定该算子是否满足空间复用条件,若否,则执行步骤304,若是,则执行步骤305。
[0045]
比如,针对遍历到的任一算子,若确定该算子的输入对应的输入空间不与其它算子共用,且该算子的输出对应的输出空间不与其它算子共用,则可确定该算子满足空间复用条件,其它算子为该算子之外的算子。
[0046]
以图2中所示的算子c为例,在确定算子c是否满足空间复用条件时,可首先确定算子c的输入对应的输入空间是否与其它算子共同,即算子c的输入(可能有多个输入,以一个为例)是否会被除算子c外的其它算子使用,若是,则确定算子c不满足空间复用条件。
[0047]
假设算子c的输入对应的输入空间会被算子b和算子d使用,那么在实际应用中是无法保证算子b、算子c和算子d谁先被执行的,假设算子c先被执行并进行了空间复用,那么算子c对应的输入空间中的数据即会被更改(更改为算子c的输出数据),从而导致算子b和算子d的输入数据与原本的正确数据不同,即发生错误,因此,这种情况下,算子c不满足空间复用条件。
[0048]
假设算子c的输入对应的输入空间不与其它算子共同,可进一步确定算子c的输出对应的输出空间是否与其它算子共用,若是,则确定算子c不满足空间复用条件,若否,则确定算子c满足空间复用条件。
[0049]
假设算子c的输出对应的输出空间会被算子b和算子d共用,假设算子b先执行,那么输出空间中存放的则是算子b的输出数据,当算子c之后执行时,若进行了空间复用,算子c的输入数据就变成了算子b的输出数据,从而导致发生错误,因此,这种情况下,算子c也不
满足空间复用条件。
[0050]
在步骤304中,确定是否存在未被遍历到的算子,若是,则针对遍历到的下一算子,重复执行步骤302,若否,则结束流程。
[0051]
在步骤305中,将该算子的输入和输出配置为指向同一空间。
[0052]
在步骤306中,为该算子设置标志位,所述标志位用于标识该算子为支持空间复用的算子,之后执行步骤304。
[0053]
后续,如何执行算子图中的各算子为现有技术。
[0054]
需要说明的是,对于前述的各方法实施例,为了简单描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。另外,某个实施例中没有详述的部分,可以参见其它实施例中的相关说明。
[0055]
总之,采用上述方法实施例所述方案,可自动地查找出网络中支持空间复用的算子,从而节省了人力和时间成本,而且,避免了人为操作可能出现的错误,从而提升了查找结果的准确性等。
[0056]
另外,现有技术中,还需要人工在网络配置中增加是否需要进行空间复用的选项以及在选定需要空间复用的算子后修改算子的执行代码等,而本申请方法实施例所述方案中,相关处理均可自动完成,从而进一步节省人力和时间成本等。
[0057]
再有,本申请方法实施例所述方案可适用于任意网络结构,具有普遍适用性等。
[0058]
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
[0059]
图4为本申请所述网络算子处理装置40实施例的组成结构示意图。如图4所示,包括:分析模块401。
[0060]
分析模块401,用于针对网络中的任一算子,分别对该算子进行条件分析,若根据分析结果确定该算子满足空间复用条件,则将该算子作为查找出的支持空间复用的算子。
[0061]
作为一种优选的实现方式,分析模块401可遍历网络对应的算子图中的算子,算子图中的各结点分别对应于网络中的不同算子,并根据算子间的数据传输关系将对应结点通过边相连,针对遍历到的任一算子,可分别对该算子进行条件分析。
[0062]
按照何种顺序遍历算子图中的各算子可根据实际需要而定,本实施例中不作限制。
[0063]
针对遍历到的任一算子,分析模块401可分别对其进行条件分析,以确定该算子是否满足空间复用条件,若根据分析结果确定该算子满足空间复用条件,则可将该算子作为查找出的支持空间复用的算子。
[0064]
作为一种优选的实现方式,分析模块401可针对遍历到的任一算子,若确定该算子的输入对应的输入空间不与其它算子共用,且该算子的输出对应的输出空间不与其它算子共用,则可确定该算子满足空间复用条件,其它算子为该算子之外的算子。
[0065]
即针对遍历到的任一算子,可根据算子间的数据传输关系确定该算子是否满足空间复用条件,若该算子的输入对应的输入空间不被多个算子共同读,且该算子的输出对应的输出空间不被多个算子共同写,则可确定该算子满足空间复用条件。
[0066]
另外,如图4所示,所示装置中还可进一步包括:设置模块402。
[0067]
设置模块402可针对任一支持空间复用的算子,分别将该算子的输入和输出配置为指向同一空间。
[0068]
另外,设置模块402还可针对任一支持空间复用的算子,分别为该算子设置标志位,所述标志位用于标识该算子为支持空间复用的算子。
[0069]
图4所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
[0070]
总之,采用本申请装置实施例所述方案,可自动地查找出网络中支持空间复用的算子,从而节省了人力和时间成本,而且,避免了人为操作可能出现的错误,从而提升了查找结果的准确性等。
[0071]
另外,现有技术中,还需要人工在网络配置中增加是否需要进行空间复用的选项以及在选定需要空间复用的算子后修改算子的执行代码等,而本申请装置实施例所述方案中,相关处理均可自动完成,从而进一步节省人力和时间成本等。
[0072]
再有,本申请装置实施例所述方案可适用于任意网络结构,具有普遍适用性等。
[0073]
本申请所述方案可应用于人工智能领域,特别涉及深度学习及知识图谱领域。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术,人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术,人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
[0074]
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
[0075]
如图5所示,是根据本申请实施例所述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0076]
如图5所示,该电子设备包括:一个或多个处理器y01、存储器y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器y01为例。
[0077]
存储器y02即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
[0078]
存储器y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器y01通过运行存储在存储器y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0079]
存储器y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器y02可选包括相对于处理器y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及其组合。
[0080]
电子设备还可以包括:输入装置y03和输出装置y04。处理器y01、存储器y02、输入装置y03和输出装置y04可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0081]
输入装置y03可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置y04可以包括显示设备、辅助照明装置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0082]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0083]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0084]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管或者液晶显示器监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0085]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网、广域网、区块链网络和互联网。
[0086]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0087]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0088]
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1