CN111597211A - 一种数据流图处理方法、装置、设备以及可读存储介质 - Google Patents
一种数据流图处理方法、装置、设备以及可读存储介质 Download PDFInfo
- Publication number
- CN111597211A CN111597211A CN202010407579.9A CN202010407579A CN111597211A CN 111597211 A CN111597211 A CN 111597211A CN 202010407579 A CN202010407579 A CN 202010407579A CN 111597211 A CN111597211 A CN 111597211A
- Authority
- CN
- China
- Prior art keywords
- node
- tensor
- flow graph
- nodes
- data flow
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据流图处理方法、装置、设备及可读存储介质,本申请属于计算机技术领域,方法包括:获取原始数据流图,解析原始数据流图;若解析出原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测张量形变节点在原始数据流图中的位置;若张量形变节点位于目标逐元素操作节点和待聚合操作节点之间,则根据目标逐元素操作节点在原始数据流图中的位置,更新张量形变节点在原始数据流图中的位置,得到更新数据流图;在更新数据流图中,对至少两个逐元素操作节点以及待聚合操作节点进行节点聚合优化,得到数据优化流图。采用本申请,可以提高数据流图系统资源的利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据流图处理方法、装置、设备以及可读存储介质。
背景技术
数据流图(Data Flow Diagram,DFD)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。从数据传递和加工角度来说,数据流图以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
在应用场景上,数据流图的应用可以为,用户先编写数据流图,再将编写好的数据流图提交到流计算平台上,流计算平台可以解析数据流图,然后调度到不同的物理机器上分布式执行,进而实现不同的业务场景。对于部分数据流图,可能存在具有相同操作方式的节点,由于每个节点都需要进行资源分配,所以对于具有相同操作方式的节点就可能会导致资源冗余分配,从而造成系统资源浪费。
申请内容
本发明实施例提供一种数据流图处理方法、装置、设备以及可读存储介质,可以提高数据流图系统资源的利用率。
本申请实施例一方面提供一种数据流图处理方法,包括:
获取原始数据流图,解析上述原始数据流图;
若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置;
若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,则根据上述目标逐元素操作节点在上述原始数据流图中的位置,更新上述张量形变节点在上述原始数据流图中的位置,得到更新数据流图;上述至少两个逐元素操作节点包括上述目标逐元素操作节点;上述更新数据流图中的上述目标逐元素操作节点与上述待聚合操作节点相连接;
在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
本申请实施例一方面提供一种数据流图处理装置,包括:
流图解析模块,用于获取原始数据流图,解析上述原始数据流图;
位置检测模块,用于若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置;
位置更新模块,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,则根据上述目标逐元素操作节点在上述原始数据流图中的位置,更新上述张量形变节点在上述原始数据流图中的位置,得到更新数据流图;上述至少两个逐元素操作节点包括上述目标逐元素操作节点;上述更新数据流图中的上述目标逐元素操作节点与上述待聚合操作节点相连接;
聚合优化模块,用于在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
其中,上述至少两个逐元素操作节点之间为并列关系;;
上述位置更新模块,包括:
位置变换单元,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且剩余逐元素操作节点均与上述待聚合操作节点相连接,则变换上述张量形变节点与上述目标逐元素操作节点之间的位置,得到更新数据流图;上述剩余逐元素操作节点为上述至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点。
其中,上述待聚合操作节点为合并操作节点;
上述聚合优化模块,包括:
第一节点聚合单元,用于在上述更新数据流图中,若上述目标逐元素操作节点与上述剩余逐元素操作节点的数据操作类型相同,则将上述目标逐元素操作节点以及上述剩余逐元素操作节点进行聚合,得到第一聚合逐元素操作节点;上述第一聚合逐元素操作节点的数据操作类型与上述剩余逐元素操作节点的数据操作类型一致;
第一节点位置调换单元,用于将上述第一聚合逐元素操作节点与上述合并操作节点之间的位置进行调换,得到数据优化流图;在上述数据优化流图中,上述合并操作节点的输出张量是上述第一聚合逐元素操作节点的输入张量。
其中,还包括:
第一模型配置模块,用于根据上述数据优化流图配置数据处理模型;
张量输入模块,用于获取第一待合并张量,将上述第一待合并张量输入至上述数据处理模型;
第一形状转换模块,用于通过上述数据处理模型中的上述张量形变节点,对上述第一待合并张量的形状进行转换,生成上述第一待合并张量对应的转换张量,将上述转换张量输入上述合并操作节点;
上述张量输入模块,用于获取第二待合并张量,将上述第二待合并张量输入上述合并操作节点;
张量合并模块,用于通过上述合并操作节点对上述第一待合并张量与上述第二待合并张量进行合并,生成合并张量;
目标张量生成模块,用于将上述合并张量输入上述第一聚合逐元素操作节点,通过上述第一聚合逐元素操作节点对上述合并张量进行逐元素操作处理,生成目标输出张量。
其中,上述待聚合操作节点为分裂操作节点;
上述聚合优化模块,包括:
第二节点聚合单元,用于在上述更新数据流图中,若上述目标逐元素操作节点与上述剩余逐元素操作节点的数据操作类型相同,则将上述目标逐元素操作节点以及上述剩余逐元素操作节点进行聚合,得到第二聚合逐元素操作节点;上述第二聚合逐元素操作节点的数据操作类型与上述剩余逐元素操作节点的数据操作类型一致;
第二节点位置调换单元,用于将上述第二聚合逐元素操作节点与上述分裂操作节点之间的位置进行调换,得到数据优化流图;在上述数据优化流图中,上述第二聚合逐元素操作节点的输出张量是上述分裂操作节点的输入张量。
其中,还包括:
第二模型配置模块,用于根据上述数据优化流图配置上述数据处理模型;
待分裂张量获取模块,用于获取待分裂张量,将上述待分裂张量输入至上述数据处理模型;
张量处理模块,用于通过上述数据处理模型中的上述第二聚合逐元素操作节点,对上述待分裂张量进行逐元素操作处理,将逐元素操作处理后的待分裂张量输入至上述分裂操作节点;
张量分裂模块,用于通过上述分裂操作节点对上述逐元素操作处理后的待分裂张量进行分裂,得到第一分裂张量以及第二分裂张量;
第二形状转换模块,用于将上述第一分裂张量输入至上述张量形变节点,通过上述张量形变节点对上述第一分裂张量的形状进行转换,生成上述第一分裂张量对应的转换分裂张量;
分裂张量输出模块,用于输出上述转换分裂张量以及上述第二分裂张量。
其中,上述至少两个逐元素操作节点之间为串联关系;上述待聚合操作节点与剩余逐元素操作节点之间为并列关系;上述剩余逐元素操作节点为上述至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点;
上述位置更新模块,包括:
第一位置移动单元,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输出张量是上述剩余逐元素操作节点的输入张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输出张量,是上述目标逐元素操作节点的输入张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持串联关系;上述张量形变还原节点用于对上述目标逐元素操作节点的输出张量的形状进行还原,上述张量形变还原节点的输出张量的形状与上述张量形变节点的输入张量的形状相同;
第一位置调换单元,用于在上述过渡数据流图中,将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,上述至少两个逐元素操作节点之间为串联关系;上述待聚合操作节点与剩余逐元素操作节点之间为并列关系;上述剩余逐元素操作节点为上述至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点;
上述位置更新模块,包括:
第二位置移动单元,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输入张量是上述剩余逐元素操作节点的输出张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输入张量是上述目标逐元素操作节点的输出张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持串联关系;上述张量形变还原节点用于对上述剩余逐元素操作节点的输出张量的形状进行转换,上述张量形变还原节点的输入张量的形状与上述张量形变节点的输出张量的形状相同;
第二位置调换单元,用于在上述过渡数据流图中,将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,上述待聚合操作节点、上述目标逐元素操作节点以及剩余逐元素操作节点为串联关系;上述剩余逐元素操作节点为上述至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点;
上述位置更新模块,包括:
第三位置调换单元,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点与上述剩余逐元素操作节点相连接,则将上述张量形变节点与上述目标逐元素操作节点之间的位置进行调换,得到过渡数据流图;
第四位置调换单元,用于在上述过渡数据流图中,将上述张量形变节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,上述聚合优化模块,包括:
第三节点聚合单元,用于将上述目标逐元素操作节点、上述剩余逐元素操作节点以及上述待聚合操作节点进行聚合,生成目标聚合操作节点;上述目标聚合操作节点所具备的操作功能包括上述目标逐元素操作节点所具备的操作功能、上述剩余逐元素操作节点所具备的操作功能以及上述待聚合操作节点所具备的操作功能;
优化流图确定单元,用于将包括上述目标聚合操作节点的数据流图确定为数据优化流图。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
上述存储器存储有计算机程序,上述计算机程序被上述处理器执行时,使得上述处理器执行如本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,执行如本申请实施例中的方法。
本申请实施例通过获取原始数据流图,并对该原始数据流图进行解析,得到原始数据流图中的操作节点以及数据结构,若原始数据流图中存在张量形变节点以及至少两个逐元素操作节点,且该张量形变节点位于目标逐元素操作节点与待聚合操作节点之间,则可以根据该目标逐元素操作节点在原始数据流图中的位置,更新该张量形变节点在该原始数据流图中的位置,得到更新数据流图,使得在更新数据流图中,可以对逐元素操作节点以及待聚合操作节点进行聚合优化,得到数据优化流图,且在数据优化流图中,可以保持原始数据流图的逻辑。通过对获取到的数据流图进行解析、位置更新以及聚合优化,可以维持原始数据流图的逻辑,且通过更新张量形变节点的位置,使得在更新数据流图中,将多个操作节点聚合为统一的节点,因为一个节点的分配资源会小于多个节点的分配资源,则将多个操作节点聚合为统一的节点的方式,可以提高系统资源的利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种数据流图处理方法的流程示意图;
图3a是本申请实施例提供的一种数据流图示意图;
图3b是本申请实施例提供的一种聚合优化后的数据流图示意图;
图4a是本申请实施例提供的一种原始数据流图示意图;
图4b是本申请实施例提供的一种更新数据流图示意图;
图5a是本申请实施例提供的一种数据流图示意图;
图5b是本申请实施例提供的一种聚合优化后的数据流图示意图;
图6a是本申请实施例提供的一种原始数据流图示意图;
图6b是本申请实施例提供的一种更新数据流图示意图;
图7a是本申请实施例提供的一种数据优化流图示意图;
图7b是本申请实施例提供的一种数据优化流图示意图;
图8是本申请实施例提供的一种生成更新数据流图的流程示意图;
图9a是本申请实施例提供的一种原始数据流图示意图;
图9b是本申请实施例提供的一种过渡数据流图示意图;
图9c是本申请实施例提供的一种更新数据流图示意图;
图10是本申请实施例提供的一种生成更新数据流图的流程示意图;图11a是本申请实施例提供的一种原始数据流图示意图;
图11b是本申请实施例提供的一种过渡数据流图示意图;
图11c是本申请实施例提供的一种更新数据流图示意图;
图12是本申请实施例提供的一种生成更新数据流图的流程示意图;图13a是本申请实施例提供的一种原始数据流图示意图;
图13b是本申请实施例提供的一种过渡数据流图示意图;
图13c是本申请实施例提供的一种更新数据流图示意图;
图14a是本申请实施例提供的一种原始数据流图示意图;
图14b是本申请实施例提供的一种过渡数据流图示意图;
图14c是本申请实施例提供的一种更新数据流图示意图;
图15是本申请实施例提供的一种数据优化流图应用的流程示意图;图16a-图16b是本申请实施例提供的一种场景示意图;
图17是本申请实施例提供的一种数据优化流图应用的流程示意图;
图18是本申请实施例提供的一种场景示意图;
图19是本申请实施例提供的一种数据流图处理装置的结构示意图;
图20是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的方案属于人工智能领域下属的计算机视觉技术(ComputerVision,CV)和机器学习((Machine Learning,ML)。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
请参见图1,是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括业务服务器1000以及后台服务器集群,其中,上述后台服务器集群可以包括多个后台服务器,如图1所示,具体可以包括后台服务器100a、后台服务器100b、后台服务器100c、…、后台服务器100n。如图1所示,后台服务器100a、后台服务器100b、后台服务器100c、…、后台服务器100n可以分别与上述业务服务器1000进行网络连接,以便于每个后台服务器可以通过该网络连接与业务服务器1000进行数据交互,以便于上述业务服务器1000可以接收到来自于每个后台服务器的业务数据。
如图1所示的每个后台服务器均与用户终端相对应,可以用于存储对应的用户终端的业务数据。每个用户终端均可以集成安装有目标应用,当该目标应用运行于各用户终端中时,则每个用户终端对应的后台服务器可以对应用中的业务数据进行存储,并与上述图1所示的业务服务器1000之间进行数据交互。其中,该目标应用可以包括具有显示文字、图像、音频以及视频等数据信息功能的应用。如,应用可以为图优化应用,可以用于用户上传数据流图,并得到优化后的数据流图等。本申请中的业务服务器1000可以从这些应用的后台(如上述后台服务器集群)收集到业务数据,如,该业务数据可以为用户上传的数据流图。根据收集到的业务数据,业务服务器1000可以根据这些业务数据,对业务数据进行优化,得到优化后的业务数据,并把优化后的业务数据返回至用户,以使用户可以对优化后的业务数据进行进一步处理。如业务服务器1000获取到用户上传的数据原始流图,对该数据原始流图解析后进行了优化,得到数据优化流图,业务服务器1000可以将该数据优化流图返回至用户,用户得到该数据优化流图后,可以将该数据优化流图应用于张量数据流分析优化场景中,如在优化神经网络模型的场景中,可以将该数据优化流图集成进AI平台,AI框架;还可以将数据优化流图应用于张量图优化引擎中,如深度学习中的图优化引擎,例如应用于Tensorflow(将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统)中的Grappler计算图优化引擎。
本申请实施例可以在多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、桌上型电脑等携带显示和播放数据信息功能的智能终端。例如,本申请实施例可以将图1所示的后台服务器100a对应的用户终端作为该目标用户终端,该目标用户终端中可以集成有上述目标应用,此时,该目标用户终端对应的后台服务器100a可以与业务服务器1000之间进行数据交互。如,用户在使用用户终端中的目标应用(如图优化应用)时,用户上传了数据原始流图,业务服务器1000通过该用户终端对应的后台服务器,可以检测到该数据原始流图,业务服务器1000可以对该数据原始流图进行优化,得到数据优化流图,并将该数据优化流图返回至后台服务器100a,则用户可以通过后台服务器100a对应的用户终端的显示页面,查看到数据优化流图。对于业务服务器1000对数据原始流图进行优化的具体实现方式,可以参见后续图2所对应实施例中的具体描述。
可选的,可以理解的是,上述业务服务器1000可以为流计算平台,流计算平台可以如上述神经网络模型、张量图优化引擎等。用户将数据原始流图上传至流计算平台,流计算平台可以将本方案的优化方法作为优化手段,来对数据原始流图进行优化,得到数据优化流图,并将数据优化流图部署到各个框架中进行应用。
可选的,可以理解的是,上述业务服务器1000与后台服务器集群均可以为云服务器,这些云服务器可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
可选的,可以理解的是,也可以由后台服务器直接检测收集到各自对应的用户终端上的业务数据(如用户上传的数据原始流图),并对数据原始流图进行优化,得到数据优化流图。这里的后台服务器对数据原始流图进行优化得到数据优化流图的具体实现方式可以参见上述业务服务器对数据原始流图进行优化,得到数据优化流图的描述,这里将不再进行赘述。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器。
请参见图2,是本申请实施例提供的一种数据流图处理方法的流程示意图。如图2所示,该方法可以包括:
步骤S101,获取原始数据流图,解析上述原始数据流图。
本申请中,原始数据流图可以为用户编写的流图,该原始数据流图中可以包括输入数据、数据流、数据加工节点以及输出数据。该数据加工节点可以是对数据进行处理的单元,可以用于对输入的数据进行加工处理,数据加工节点可以接收一定的数据输入,按照处理功能对数据进行处理,并产生输出。而数据流是流动中的数据,具有流向,是数据在系统内传播的路径。数据流可以用于表征数据从一个节点流向另一个节点,如,经a节点加工后的输出数据,输入至b节点中,则这一流向b节点的数据(经a节点加工处理后的输出数据)就可以作为数据流。为便于理解,请一并参见图3a,是本申请实施例提供的一种数据流图示意图。如图3a所示,该数据流图中包括了数据加工节点。其中,数据加工节点包括输入节点、逐元素操作节点、合并操作节点以及输出节点,其中输入节点包括输入节点30a与输入节点30b,用于接收还未进行任何加工处理的原始输入数据;逐元素操作节点可以包括逐元素操作节点30c以及逐元素操作节点30d,用于对输入节点(如输入节点30a与输入节点30b)输出的数据进行逐元素操作处理;合并操作节点可以包括合并操作节点30e,用于将逐元素操作30c输出的数据以及逐元素操作30d输出的数据进行合并;输出节点可以包括输出节点30f,可以用于接收合并操作30e输出的数据,并进行输出。如图3a所示,原始输入数据可以为小张量输入1与小张量输入2,输入节点30a在接收到小张量输入1后,可以将该小张量输入1输入至逐元素操作节点30c,则可以将该从输入节点30a流向至逐元素操作节点30c的小张量输入1,作为数据流;同理,逐元素操作节点30c可以对小张量输入1进行逐元素操作处理,产生小张量输出1这一个输出,该小张量输出1流向合并操作节点30e,则可以将该流向合并操作节点30e的小张量输出1作为数据流。其中,逐元素操作可以是指将接收到的数据(如小张量输入1与小张量输入2)中的每一个元素进行独立操作处理(如加减、乘除、开方等),若接收到的数据(如张量)中的各个元素可以互相不依赖,完全可以并行,比如张量的加减,就是两个张量中对应元素之间的加减,张量内的元素各自独立操作,互相没有依赖,各个元素之间的独立操作就是逐元素操作处理。
本申请中,若接收到用户的原始数据流图,可以对该原始数据流图进行解析,解析该原始数据流图中包括有哪些内容。如可以解析出原始数据流图中包括有几个数据加工节点,这几个数据加工节点分别为具体哪种加工节点。
步骤S102,若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置;
本申请中,待聚合操作节点可以是指合并操作节点、分裂操作节点以及其他数据处理节点等。该逐元素操作节点、合并操作节点、分裂操作节点以及张量形变节点均可以作为数据加工节点,这里的数据可以为张量。本申请中的张量可以是指一种数据结构,可以用来表示所有的数据,可以把一个张量想象成一个n维的数组或列表,一个张量有一个静态类型和动态类型的维数,张量可以在数据流图中的节点之间流通。其中,逐元素操作节点可以用于对接收到的张量数据进行逐元素操作处理(如将张量数据中的各个元素进行开方操作处理);合并操作节点可以用于对接收到的至少两个张量数据进行合并;分裂操作节点可以用于对接收到的张量数据进行分裂,得到至少两个分裂张量数据;张量形变节点可以用于对接收到的张量数据进行形状转换。若解析出用户发送的原始数据流图中包括有至少两个逐元素操作节点、待聚合操作节点(合并操作节点或分裂操作节点或其他数据处理节点)以及张量形变节点,那么可以再检测张量形变节点在原始数据流图中的位置,根据张量形变节点的位置来进行后续处理。
步骤S103,若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,则根据上述目标逐元素操作节点在上述原始数据流图中的位置,更新上述张量形变节点在上述原始数据流图中的位置,得到更新数据流图;上述至少两个逐元素操作节点包括上述目标逐元素操作节点;上述更新数据流图中的上述目标逐元素操作节点与上述待聚合操作节点相连接。
在上述待聚合操作节点为合并操作节点或分裂操作节点时,也就是在张量合并场景或张量分裂场景中,若上述至少两个逐元素操作为并列关系,在逐元素操作对应的数据操作类型相同时,可以将这些具有相同数据操作类型的逐元素操作进行聚合,变成一个统一的逐元素操作。其中,该数据操作类型可以包括开方、加减乘除以及指数幂等类型,在此不再一一进行举例。以图3a(合并场景)中的逐元素操作节点30c以及逐元素操作节点30d为例,该逐元素操作节点30c与逐元素操作节点30d分别位于合并操作节点30e的两条线路上,为并列关系。若逐元素操作节点30c对应的数据操作类型为Sqrt开方类型,也就是说,逐元素操作节点30c会将接收到的张量数据中的每个元素进行Sqrt开方处理;逐元素操作节点30d对应的数据操作类型也为Sqrt开方类型,也就是说,逐元素操作节点30d的也会将接收到的张量数据中的每个元素进行Sqrt开方处理;那么逐元素操作节点30c与逐元素操作节点30d对应的数据操作类型相同,则可以将逐元素操作节点30c与逐元素操作节点30d进行聚合,请参见图3b,是本申请实施例提供的一种聚合优化后的数据流图示意图。如图3b所示,将逐元素操作节点30c与逐元素操作节点30d进行聚合后,可以得到逐元素操作节点30h。这里因为需要将两个输入张量进行合并,则可以将合并操作节点30e与逐元素操作节点30h交换位置,以使得小张量输入1与小张量输入2先进行合并后,得到合并大张量,再将合并大张量输入至逐元素操作节点30h中进行Sqrt开方处理。上述的从图3a至图3b所描述的合并逐元素操作节点30c以及逐元素操作节点30d为逐元素操作节点30h,再将逐元素操作节点30h与合并操作节点30e交换位置的过程,就是在合并场景中,对原始数据流图3a进行聚合优化的过程。但原始数据流图中若存在张量形变节点,且该张量形变节点位于逐元素操作节点以及合并操作节点之间的时候,就无法再对逐元素操作节点与合并操作节点进行聚合优化。为便于理解,请一并参见图4a,是本申请实施例提供的一种原始数据流图示意图。如图4a所示,原始数据流图4a中存在张量形变节点30j,该张量形变节点30j位于逐元素操作节点30c与合并操作节点30e之间,且逐元素操作节点30c是张量形变节点30j的前一个节点,合并操作节点30e是张量形变节点30j的后一个节点。其中,逐元素操作节点30c与逐元素操作节点30d均为Sqrt开方操作,则可以将逐元素操作节点30c与逐元素操作节点30d进行聚合,若进行聚合后得到聚合逐元素操作节点。如图4a所示,若将聚合逐元素操作节点与合并操作节点30e进行位置交换,则合并操作节点30e可以先将小张量输入1与小张量输入2进行合并,生成大张量输入;该大张量输入会先输入至张量形变节点30j,因为张量形变节点30j原本是将经逐元素操作节点30c处理的小张量输入1进行形状转换,若将大张量输入这个数据输入至张量形变节点30j,那么张量形变节点会对大张量输入这个合并数据进行形状转换,这样就不符合张量形变节点30j只对小张量输入1进行形状转换的逻辑。可以看出,在合并场景中,对于原始数据流图(如图4a)中具有张量形变节点的情况,无法对逐元素操作节点(如逐元素操作节点30c与逐元素操作节点30d)以及合并操作节点(合并操作节点30e)进行聚合优化。为使得如图4a所示的原始数据流图可以进行节点的聚合优化,且聚合优化后不违背原始数据流图的逻辑,本方案对张量的合并场景提出了新的聚合优化方法,具体如下,在合并场景(待聚合操作节点为合并操作节点)中,若通过上述步骤S102中的位置检测,检测到张量形变节点位于目标逐元素操作节点和合并操作节点之间,且剩余逐元素操作节点与该合并操作节点相连接,则变换该张量形变节点与该目标逐元素操作节点之间的位置,得到更新数据流图。其中,该剩余逐元素操作节点时该至少两个逐元素操作节点中,除该目标逐元素操作节点以外的节点。如,以图4a为例,张量形变节点30j位于逐元素操作节点30c与合并操作节点30e之间,这里的逐元素操作节点30c即为目标逐元素操作节点,则图4a中的逐元素操作节点30d则可以为剩余逐元素操作节点。如图4a所示,该逐元素操作节点30c的输出(小张量输出1)是张量形变节点30j的输入张量数据,且该张量形变节点30j的输出(形状变化后的小张量输出1)是合并操作节点30e的输入,也就是说,该逐元素操作节点30c位于张量形变节点30j的前一个位置,张量形变节点30j位于合并操作节点30e的前一个位置,且在该图4a中,该逐元素操作节点30d的输出张量是该合并操作节点30e的输入张量,也就是说,该逐元素操作节点30d(剩余逐元素操作节点)与该合并操作节点30e(待聚合操作节点)相连接,则可以变换该张量形变节点30j与该目标逐元素操作节点30c之间的位置,得到更新数据流图如图4b所示。如图4b所示,通过将张量形变节点30j与逐元素操作节点30c进行位置交换,可以使得张量形变节点30j先对小张量输入1进行形状转换,不会影响后续的逐元素操作节点30c、逐元素操作节点30d以及合并操作节点30e的聚合优化。需要说明的是,这里可以将张量形变节点30j与逐元素操作节点30c进行位置交换的原因为:张量形变节点对张量的形状进行转换可以是指改变张量的行或列,可以理解为张量形变节点对张量的形状转换是改变张量的数据结构(逻辑结构),并不改变张量中的元素(如元素实际内存排列);且因为逐元素操作节点对张量进行逐元素操作处理时,是对每个元素也是独立进行操作,如张量A中存在元素2,3,4,逐元素操作节点对应的数据操作类型为Sqrt开方,则进行逐元素操作处理后,张量A中的元素为其中,元素为对元素2进行Sqrt开方得到,元素为对元素3进行Sqrt开方得到,元素是对元素4进行Sqrt开方得到。因为张量形变节点只改变张量的结构而不改变元素,而逐元素操作节点是对张量中的元素独立进行处理,不会改变张量的结构,则可以将该张量形变节点与逐元素操作节点之间的位置进行交换,交换位置后并不会影响张量的处理结果。
上述图3a至图4b均从数据流图的合并场景进行描述,同理,对于数据流图的分裂场景,也可以将数据操作类型相同的逐元素操作进行聚合,变成一个统一的逐元素操作。请参见图5a,是本申请实施例提供的一种数据流图示意图。该数据流图中包括了输入节点50a,分裂操作节点50b、逐元素操作节点50c、逐元素操作节点50d、输出节点50e以及输出节点50f。其中,逐元素操作节点50c与逐元素操作节点50d分别位于分裂操作节点50b的两条线路上,为并列关系。逐元素操作节点50c对应的数据操作类型为Sqrt开方类型,也就是说,逐元素操作节点50c会将接收到的张量数据中的每个元素进行Sqrt开方处理;逐元素操作节点50d对应的数据操作类型也为Sqrt开方类型,也就是说,逐元素操作节点50d的也会将接收到的张量数据中的每个元素进行Sqrt开方处理;那么逐元素操作节点50c逐元素操作节点50d对应的数据操作类型相同,则可以将逐元素操作节点50c与逐元素操作节点50d进行聚合,请参见图5b,是本申请实施例提供的一种聚合优化后的数据流图示意图。如图5b所示,将逐元素操作节点50c与逐元素操作节点50d进行聚合后,可以得到逐元素操作节点50h,进一步地,可以将逐元素操作节点50h与分裂操作节点50b的位置进行交换。由此可见,逐元素操作节点50h只需对大张量输入进行一次逐元素操作处理,产生大张量输出,并将该大张量输出输入至分裂操作节点50b中,通过分裂操作节点50b来将大张量进行分裂,得到小张量输出1与小张量输出2,其中,小张量输出1可通过输出节点50e进行输出,小张量输出2可通过输出节点50f进行输出,通过将两个逐元素操作节点聚合为一个统一的逐元素操作节点,一个节点的分配资源会小于两个节点的分配资源,从而可以提高系统资源的利用率。但若在分裂场景的原始数据流图中,存在张量形变节点,且该张量形变节点位于逐元素操作节点与分裂操作节点之间,就无法再对逐元素操作节点与分裂操作节点进行聚合优化。为便于理解,请参见图6a,是本申请实施例提供的一种原始数据流图示意图。如图6a所示,原始数据流图6a中存在张量形变节点50j,该张量形变节点50j位于分裂操作节点50b与逐元素操作节点50c之间,且分裂操作节点50b是张量形变节点50j的前一个节点,逐元素操作节点50c是张量形变节点50j的后一个节点。其中,逐元素操作节点50c与逐元素操作节点50d均为Sqrt开方操作,则可以将逐元素操作节点50c与逐元素操作节点50d进行聚合,若进行聚合后得到聚合逐元素操作节点。如图6a所示,若将聚合逐元素操作节点与分裂操作节点50b进行位置交换,聚合逐元素操作节点会对大张量输入逐元素操作处理,因为张量形变节点30j位于聚合逐元素操作节点之后,则张量形变节点50j会对逐元素操作处理后的大张量输入进行形状转换。因为原本张量形变节点是将经分裂操作节点50b产生的小张量输出1进行形状转换,是对一个分量进行形状转换,那么张量形变节点50j对大张量输入这个整体数据进行形状转换,就不符合张量形变节点50j只对小张量输出1进行形状转换的逻辑。可以看出,在分裂场景中,对于原始数据流图(如图6a)中具有张量形变节点的情况,无法对逐元素操作节点(如逐元素操作节点50c与逐元素操作节点50d)以及分裂操作节点(如分裂操作节点50b)进行聚合优化。为使得如图6a所示的原始数据流图可以进行节点的聚合优化,且聚合优化后不违背原始数据流图的逻辑,本方案对张量的分裂场景提出了新的聚合优化方法,具体如下,在分裂场景(待聚合操作节点为分裂操作节点)中,若通过上述步骤S102的位置检测,检测到张量形变节点位于目标逐元素操作节点和分裂操作节点之间,且剩余逐元素操作节点与给合并操作节点相连接,则可以变换该张量形变节点与该目标逐元素操作节点之间的位置,得到更新数据流图;其中,该剩余逐元素操作节点时该至少两个逐元素操作节点中,除该目标逐元素操作节点以外的节点。如,以上述图6a为例,张量形变节点50j位于逐元素操作节点分裂操作节点50b与逐元素操作节点50c之间,这里的逐元素操作节点50c即为目标逐元素操作节点。如图6a所示,该分裂操作节点50b的输出数据(小张量输入1)是张量形变节点50j的输入数据,且该张量形变节点50j的输出数据(形状变化后的小张量输入1)是逐元素操作节点50c的输入数据,也就是说,该分裂操作节点50b位于张量形变节点50j的前一个位置,该逐元素操作节点50c位于张量形变节点50j的后一个位置,且在该图4a中,该逐元素操作节点50d的输入张量是该分裂操作节点50b的输出张量,也就是说,该逐元素操作节点50d(剩余逐元素操作节点)与该分裂操作节点(待聚合操作节点)相连接,则可以变换该张量形变节点50j与逐元素操作节点50c之间的位置,得到更新数据流图如图6b所示。如图6b所示,通过将张量形变节点50j与逐元素操作节点50c进行位置交换,可以使得逐元素操作节点50c先对分裂操作节点50b产生的小张量输入1进行逐元素操作处理,得到小张量输出1,再将小张量输出1输入至张量形变节点50j,张量形变节点50j可以对小张量输出1进行形状转换。可以看出,如图6b所示的数据流图,不会影响后续逐元素操作节点50c、逐元素操作节点50d以及分裂操作节点50b的聚合优化。
步骤S104,在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
本申请中,以上述图4a所对应的原始数据流图为例,上述图4a中包括了两条相互并联的线路,包括输入节点30a至输出节点30f这条第一线路,以及输入节点30b至输出节点30f这条第二线路。其中,该逐元素操作节点30c可以为目标逐元素操作节点,该逐元素操作节点30c位于第一线路上;逐元素操作节点30b可以为剩余逐元素操作节点,该逐元素操作节点30d位于第二线路上。因为逐元素操作节点30c对应的数据操作类型为Sqrt开方,逐元素操作节点30d对应的数据操作类型也为Sqrt开方,逐元素操作节点30c与逐元素操作节点30d对应的数据操作类型相同,则在更新数据流图4b中,可以将逐元素操作节点30c与逐元素操作节点30d这两条线路上的节点,进行聚合,得到第一聚合逐元素操作节点30h;其中,该第一聚合逐元素操作节点30h的数据操作类型与上述逐元素操作节点30c或逐元素操作节点30d的数据操作类型是一致的。将该第一聚合逐元素操作节点30h与上述合并操作节点30e之间的位置进行调换后,即可得到数据优化流图。请参见图7a,是按照本方案提出的方法,对原始数据流图4a进行聚合优化后得到的数据优化流图示意图。如图7a所示,合并操作节点30e的输出(大张量输入)是该第一聚合逐元素操作节点30h的输入。结合图4a、图4b以及图7a,在具有张量形变节点的合并场景中,本方案通过对图4a中的张量形变节点与逐元素操作节点的位置进行交换,可以使得逐元素操作节点与合并操作节点在进行聚合优化(将两个逐元素操作节点进行聚合,再将聚合后的逐元素操作节点与合并操作节点交换位置)后,不会改变原始数据流图4a中的逻辑,且通过将两个逐元素操作节点聚合,可以生成统一的逐元素操作节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高资源的利用率。
同理,以上述图6a所对应的原始数据流图为例,上述图6a中包括了两条相互并联的线路,包括输入节点50a至输出节点50e这条第三线路,以及输入节点50a至输出节点50f这条第四线路。其中,该逐元素操作节点50c可以为目标逐元素操作节点,该逐元素操作节点50c位于第三线路上;逐元素操作节点50d可以为剩余逐元素操作节点,该逐元素操作节点50d位于第四线路上。因为逐元素操作节点50c对应的数据操作类型为Sqrt开方,逐元素操作节点50d对应的数据操作类型也为Sqrt开方,逐元素操作节点50c与逐元素操作节点50d对应的数据操作类型相同,则在更新数据流图6b中,可以将逐元素操作节点50c与逐元素操作节点50d这两条线路上的节点,进行聚合,得到第二聚合逐元素操作节点30h;其中,该第二聚合逐元素操作节点30h的数据操作类型与上述逐元素操作节点50c或逐元素操作节点50d的数据操作类型是一致的。将该第二聚合逐元素操作节点50h与上述分裂操作节点50b之间的位置进行调换后,即可得到数据优化流图。请参见图7b,是按照本方案提出的方法,对原始数据流图6a进行聚合优化后得到的数据优化流图示意图。如图7b所示,第二聚合逐元素操作节点50h的输出(大张量输出)是该分裂操作节点50b的输入。结合图6a、图6b以及图7b,在具有张量形变节点的分裂场景中,本方案通过对图6a中的张量形变节点与逐元素操作节点的位置进行交换,可以使得逐元素操作节点与分裂操作节点在进行聚合优化(将两个逐元素操作节点进行聚合,再将聚合后的逐元素操作节点与分裂操作节点交换位置)后,不会改变原始数据流图6a中的逻辑,且通过将两个逐元素操作节点聚合,可以生成统一的逐元素操作节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高资源的利用率。
本申请实施例通过获取原始数据流图,并对该原始数据流图进行解析,得到原始数据流图中的操作节点以及数据结构,若原始数据流图中存在张量形变节点以及至少两个逐元素操作节点,且该张量形变节点位于目标逐元素操作节点与待聚合操作节点之间,则可以根据该目标逐元素操作节点在原始数据流图中的位置,更新该张量形变节点在该原始数据流图中的位置,得到更新数据流图,使得在更新数据流图中,可以对逐元素操作节点以及待聚合操作节点进行聚合优化,得到数据优化流图,且在数据优化流图中,可以保持原始数据流图的逻辑。通过对获取到的数据流图进行解析、位置更新以及聚合优化,可以维持原始数据流图的逻辑,且通过更新张量形变节点的位置,使得在更新数据流图中,将多个操作节点聚合为统一的节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高系统资源的利用率。
进一步地,请参见图8,是本申请实施例提供的一种生成更新数据流图的流程示意图。如图8所示,该流程可以包括:
步骤S201,获取原始数据流图,解析上述原始数据流图。
步骤S202,若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置。
本申请中,对于步骤S201-步骤S202的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S102的描述,这里将不再进行赘述。
步骤S203,若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输出张量是上述剩余逐元素操作节点的输入张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输出张量,是上述目标逐元素操作节点的输入张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持串联关系;上述张量形变还原节点用于对上述目标逐元素操作节点的输出张量的形状进行还原,上述张量形变还原节点的输出张量的形状与上述张量形变节点的输入张量的形状相同。
本申请中,在张量分叉场景中,若原始数据流图中存在张量形变节点,且该张量形变节点位于逐元素操作节点以及待聚合操作节点之间的时候,本方案也可以根据目标逐元素操作节点在原始数据流图中的位置,对张量形变节点的位置进行更新。具体方法可以为,在张量分叉场景中,上述至少两个逐元素操作节点为串联关系,待聚合操作节点与剩余逐元素操作节点之间为并列关系。其中,该剩余逐元素操作节点为该至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点。在张量分叉场景的原始数据流图中,若该张量形变节点位于目标逐元素操作节点和该待聚合操作节点之间,且该目标逐元素操作节点的输出张量是该剩余逐元素操作节点的输入张量,则可以将该张量形变节点的位置进行移动变换,并在该目标逐元素操作节点与该剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;其中,该过渡数据流图中,该张量形变节点的输出张量,是该目标逐元素操作节点的输入张量,且该目标逐元素操作节点与该剩余逐元素操作节点之间保持串联关系;其中,该张量形变还原节点用于对该目标逐元素操作节点的输出张量进行还原,该张量形变还原节点的输出张量的形状与该张量形变节点的输入张量的形状相同;进一步地,在该过渡数据流图中,可以将该张量形变还原节点与该剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。为便于理解,请一并参见图9a,是本申请实施例提供的一种原始数据流图示意图。如图9a所示,原始数据流图9a中存在张量形变节点90c,该张量形变节点90c位于逐元素操作节点90b与非逐元素操作节点90d之间,这里的逐元素操作节点90b可以为目标逐元素操作节点,这里的非逐元素操作节点90d可以为待聚合操作节点。如图9a所示,该逐元素操作节点90b是张量形变节点90c的前一个节点,该非逐元素操作节点是张量形变节点90c的后一个节点;该张量形变节点90c与逐元素操作节点90f(剩余逐元素操作节点)均与目标逐元素操作节点90b相连接,该剩余逐元素操作节点90f与该张量形变节点90c分别位于目标逐元素操作节点90b的两条线路上,可以看出,该剩余逐元素操作节点90f与该张量形变节点90c为并列关系,且在图9a中,该目标逐元素操作节点90b的输出张量是该剩余逐元素操作节点90f的输入张量。对于如图9a所示的分叉场景的数据流图,本方案可以将该张量形变节点90c的位置进行移动变换,将张量形变节点90c的位置移动变换到逐元素操作节点90b之前,但若将张量形变节点90c移动至逐元素操作节点90b之前,则张量形变节点90c会将大张量输入进行形状转换,输出形状变化后的大张量输入,紧跟着逐元素操作节点90b会将形状变化的大张量输入进行逐元素操作,分叉出两个小张量输入,分别为形状变化后的小张量输入1与形状变化后的小张量输入2。对比于图9a所示的原始数据流图,在图9a中,本是对小张量输入1进行形状转换,也就是说,在逐元素操作节点90b分叉出来的两个小张量输入中,只有小张量输入1的形状会发生变化,但是移动张量形变节点的位置后,小张量输入2也会发生形状变化,则不符合原始数据流图9a的逻辑。为符合原始数据流图9a的逻辑,可以在逐元素操作节点90b与逐元素操作节点90f之间,添加一个张量形变还原节点,得到过渡数据流图如图9b所示。如图9b所示,在该逐元素操作节点90b与逐元素操作节点90f之间,添加了张量形变还原节点90h,可以看出,该张量形变还原节点90h可以对逐元素操作节点90b输出的形状变化的小张量输入2进行形状转换,可以将形状变化的小张量输入2还原至原始形状,原始形状也就是输入至张量形变节点90c前的形状。由此可见,在过渡数据流图9b中,可以只对小张量输入1的形状发生变化,同时可以使得小张量输入2的形状保持原始形状,这样符合了原始数据流图9a的逻辑。
需要说明的是,对于逐元素操作节点90b将大张量输入分叉为两个小张量输出,可以理解为,逐元素操作节点90b为除操作,若A÷B=x…y,则商x可以作为小张量输出1,余数y可以作为小张量输出2。
步骤S204,在上述过渡数据流图中,将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
本申请中,为便于后续对逐元素操作节点与待聚合操作节点的聚合优化,可以调换张量形变还原节点与剩余逐元素操作节点之间的位置。以过渡数据流图为上述图9b所示,在该过渡数据流图9b中,为便于后续的聚合优化,可以将张量形变还原节点90h与逐元素操作节点90f的位置进行调换,从而得到更新数据流图如图9c所示。如图9c所示,通过将张量形变还原节点90h与逐元素操作节点90f的位置进行调换,可以使得非逐元素操作节点90d与逐元素操作节点90f均与逐元素操作节点90b相连接,且非逐元素操作节点90d与逐元素操作节点90f均位于逐元素操作节点90b在两条线路上的后一个位置,便于后续的对逐元素操作节点90b、逐元素操作节点90f以及非逐元素操作节点90d的聚合优化。
步骤S205,在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
本申请中,对于逐元素操作节点90b、逐元素操作节点90f以及非逐元素操作节点90d的聚合优化,可以将逐元素操作节点90b、逐元素操作节点90f以及非逐元素操作节点90d聚合为一个目标聚合大节点,该目标聚合大节点中包括了逐元素操作节点90b的操作功能、逐元素操作节点90f的操作功能以及非逐元素操作节点90d的操作功能,聚合后可以得到数据优化流图。
进一步地,请参见10,是本申请实施例提供的一种生成更新数据流图的流程示意图。如图10所示,该流程可以包括:
步骤S301,获取原始数据流图,解析上述原始数据流图。
步骤S302,若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置。
本申请中,对于步骤S301-步骤S302的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S102的描述,这里将不再进行赘述。
步骤S303,若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输入张量是上述剩余逐元素操作节点的输出张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输入张量是上述目标逐元素操作节点的输出张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持串联关系;上述张量形变还原节点用于对上述剩余逐元素操作节点的输出张量的形状进行转换,上述张量形变还原节点的输入张量的形状与上述张量形变节点的输出张量的形状相同。
本申请中,在张量汇聚场景中,若原始数据流图中存在张量形变节点,且该张量形变节点位于逐元素操作节点以及待聚合操作节点之间的时候,本方案也可以根据目标逐元素操作节点在原始数据流图中的位置,对张量形变节点的位置进行更新。具体方法可以为,在张量汇聚场景中,上述至少两个逐元素操作节点为串联关系,待聚合操作节点与剩余逐元素操作节点之间为并列关系。其中,该剩余逐元素操作节点为该至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点。在张量汇聚场景的原始数据流图中,若该张量形变节点位于目标逐元素操作节点与该待聚合操作节点之间,且该目标逐元素操作节点的输入张量是该剩余逐元素操作节点的输出张量,则可以将该张量形变节点的位置进行移动变换,并在该目标逐元素操作节点与该剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;其中,该过渡数据流图中,该张量形变节点的输入张量,是该目标逐元素操作节点的输出张量,且该目标逐元素操作节点与该剩余逐元素操作节点之间保持串联关系;其中,该张量形变还原节点可以用于对剩余逐元素操作节点的输出张量进行形状转换,该张量形变还原节点的输入张量的形状与该张量形变节点的输出张量的形状相同;进一步地,在该过渡数据流图中,可以将该张量张量形变还原节点与该剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。为便于理解,请一并参见图11a,是本申请实施例提供的一种原始数据流图示意图。如图11a所示,原始数据流图11a中存在张量形变节点110c,该张量形变节点110c位于逐元素操作节点110d与非逐元素操作节点110b之间,这里的逐元素操作节点110d可以为目标逐元素操作节点,这里的非逐元素操作节点110b可以为待聚合操作节点。如图11a所示,该逐元素操作节点110d是张量形变节点110c的后一个节点,该非逐元素操作节点110b是张量形变节点110c的前一个节点;该张量形变节点110c与逐元素操作节点110g(剩余逐元素操作节点)均与逐元素操作节点110d相连接,该剩余逐元素操作节点110g与该张量形变节点110c分别位于目标逐元素操作节点110d的两条线路上,可以看出,该剩余逐元素操作节点110g与该张量形变节点110c为并列关系,且在图11a中,该目标逐元素操作节点110d的输入张量是该剩余逐元素操作节点110g的输出张量。对于如图11a所示的汇聚场景的数据流图,本方案可以将该张量形变节点110c的位置进行移动变换,若张量形变节点110c的位置移动变换到了逐元素操作节点110d的之后,张量形变节点110c成为逐元素操作节点110d的后一个节点,非逐元素操作节点110b因张量形变节点110c的移动,而变为与逐元素操作节点110d相连接。逐元素操作节点110d对小张量输出1与小张量输出2进行汇聚后,输出大张量输出,则张量形变节点110c会将逐元素操作节点110d输出的大张量输出进行形状转换。对比于图11a所示的原始数据流图,在图11a中,张量形变节点110c本是对小张量输出1(小张量输入1所对应的输出)进行形状转换,并不会对小张量输出2进行形状转换,也就是说,只有小张量输入1(小张量输出1所对应的输入)会发生形状变化,但是通过移动张量形变节点后,对小张量输出1与小张量输出2所汇聚而成的大张量输出进行了形状转换,则小张量输出2也发生了形状变化,则不符合原始数据流图11a的逻辑。为符合原始数据流图11a的逻辑,可以在逐元素操作节点110d与逐元素操作节点110g之间,添加一个张量形变还原节点,得到过渡数据流图如图11b所示。如图11c所示,在该逐元素操作节点110d与逐元素操作节点110g之间,添加了张量形变还原节点110h,可以看出,该张量形变还原节点110h可以对逐元素操作节点110g输出的小张量输出2,进行提前的形状转换,则在张量输出到达张量形变节点110d时,张量形变节点110c再一次进行形状转换,小张量输出2就会被转换为原始形状。由此可见,在过渡数据流图110b中,可以使得张量形变还原节点110h对小张量输出2进行提前的形状转换(转换的形状与张量形变节点110d转换的形状相反),这样通过张量形变节点110c可以将小张量输出2转换为原始形状,也就是说,只有小张量输出1的形状发生了变化,同时可以使小张量输出2的形状保持不变,这样符合了原始数据流图11a的逻辑。
步骤S304,在上述过渡数据流图中,将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
本申请中,为便于后续对逐元素操作节点与待聚合操作节点的聚合优化,可以调换张量形变还原节点与剩余逐元素操作节点之间的位置。以上述过渡数据流图11b为例,在该过渡数据流图11b中,为便于后续的聚合优化,可以将张量形变还原节点110h与逐元素操作节点110g的位置进行调换,从而得到更新数据流图如图11c所示。如图11c所示,通过将张量形变还原节点110h与逐元素操作节点110g的位置进行调换,可以使得逐元素操作节点110d与非逐元素操作节点110b均与逐元素操作节点110d相连接,且逐元素操作节点110d与非逐元素操作节点110b均位于逐元素操作节点110d在两条线路上的前一个位置,便于后续对逐元素操作节点110d、非逐元素操作节点110b以及逐元素操作节点110d的聚合优化。
步骤S305,在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
本申请中,对于逐元素操作节点110d、非逐元素操作节点110b以及逐元素操作节点110d的聚合优化,可以将逐元素操作节点110d、非逐元素操作节点110b以及逐元素操作节点110d聚合为一个目标聚合大节点,该目标聚合大节点中包括了逐元素操作节点110d的操作功能、非逐元素操作节点110b的操作功能以及逐元素操作节点110d的操作功能,聚合后可以得到数据优化流图。
请参见图12,是本申请实施例提供的一种生成更新数据流图的流程示意图。如图10所示,该流程可以包括:
步骤S401,获取原始数据流图,解析上述原始数据流图。
步骤S402,若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置。
本申请中,对于步骤S401-步骤S402的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S102的描述,这里将不再进行赘述。
步骤S403,若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点与上述剩余逐元素操作节点相连接,则将上述张量形变节点与上述目标逐元素操作节点之间的位置进行调换,得到过渡数据流图。
本申请中,在张量形变节点、待聚合操作节点以及上述至少两个逐元素操作节点都为串联关系的场景中,本方案也可以根据目标逐元素操作节点在原始数据流图中的位置,对张量形变节点的位置进行更新。具体方法可以为,在张量形变节点与全部逐元素操作节点都为串联关系时,若张量形变节点位于目标逐元素操作节点和待聚合操作节点之间,且该目标逐元素操作节点与剩余逐元素操作节点相连接,则将该张量形变节点与该目标逐元素操作节点之间的位置进行调换,得到过渡数据流图;在该过渡数据流图中,将该张量形变节点与该剩余逐元素操作节点之间的位置进行调换,可以得到更新数据流图。其中,该剩余逐元素操作节点为至少两个逐元素操作节点中,除目标逐元素操作节点以外的节点。为便于理解,请一并参见图13a,是本申请实施例提供的一种原始数据流图示意图。如图13a所示,原始数据流图13a中存在张量形变节点130c,该张量形变节点130c位于逐元素操作节点130d与非逐元素操作节点130b之间,这里的逐元素操作节点130d可以为目标逐元素操作节点,这里的非逐元素操作节点130b可以为待聚合操作节点。如图13a所示,该非逐元素操作节点130b、张量形变节点130c、逐元素操作节点130d以及逐元素操作节点130e(剩余逐元素操作节点)在一条线路上,为串联关系,且逐元素操作节点130d以及逐元素操作节点130e相连接,该目标逐元素操作节点130d的输出张量是该剩余逐元素操作节点130e的输入张量,两个逐元素操作节点均位于张量形变节点130c之后,则可以将如图13a所示的场景作为逐元素操作节点向后连续(在张量形变节点之后连续)的场景。对于如图13a所示的向后连续场景的数据流图,因为张量形变节点130c位于非逐元素操作节点130b与逐元素操作节点130d之间,将非逐元素操作节点130b与逐元素操作节点130d分隔开了,影响非逐元素操作节点130b与逐元素操作节点130d之间的聚合,本方案可以将该张量形变节点80c与逐元素操作节点130d(目标逐元素操作节点)之间的位置进行调换,从而可以得到过渡数据流图如图13b所示。
步骤S404,在上述过渡数据流图中,将上述张量形变节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
本申请中,为便于后续对逐元素操作节点与待聚合操作节点的聚合优化,可以调换张量形变还原节点与剩余逐元素操作节点之间的位置。以上述过渡数据流图13b为例,如图13b所示,将张量形变节点130c与逐元素操作节点130d的位置进行了调换,可以使得逐元素操作节点130d与非逐元素操作节点130b相连接,但又使得逐元素操作节点130d与逐元素操作节点130e相离,则在过渡数据流图13b中,可以将逐元素操作节点130e与张量形变节点130c之间的位置进行调换,得到更新数据流图如图13c所示。如图13c所示,通过将张量形变节点130c进行位置变换,可以使得非逐元素操作节点130b、逐元素操作节点130d以及逐元素操作节点130e依次进行连接,便于后续对非逐元素操作节点130b、逐元素操作节点130d以及逐元素操作节点130e的聚合优化。
可选的,可以理解的是,在张量形变节点、待聚合操作节点以及上述至少两个逐元素操作节点都为串联关系时,在逐元素操作节点向前连续(在张量形变节点之前连续)的场景中,也可以根据目标逐元素操作节点在原始数据流图中的位置,对张量形变节点的位置进行更新。为便于理解,请一并参见图14a,是本申请实施例提供的一种原始数据流图示意图。如图14a所示,原始数据流图14a中存在张量形变节点140d,该张量形变节点140d位于逐元素操作节点140c与非逐元素操作节点140e之间,这里的逐元素操作节点140c可以为目标逐元素操作节点,这里的非逐元素操作节点140e可以为待聚合操作节点。如图14a所示,该非逐元素操作节点140e、张量形变节点140d、逐元素操作节点140c以及逐元素操作节点140b(剩余逐元素操作节点)在一条线路上,为串联关系,且逐元素操作节点140b以及逐元素操作节点140c相连接,该目标逐元素操作节点140c的输入张量是该剩余逐元素操作节点140b的输出张量,两个逐元素操作节点均位于张量形变节点140d之前。对于如图14a所示的向前连续场景的数据流图,因为张量形变节点140d位于非逐元素操作节点140e与逐元素操作节点140c之间,将非逐元素操作节点140e与逐元素操作节点140c分隔开了,影响非逐元素操作节点140e与逐元素操作节点140c之间的聚合,本方案可以将该张量形变节点140d与逐元素操作节点140c(目标逐元素操作节点)之间的位置进行调换,从而可以得到过渡数据流图如图14b所示。如图14b所示,将张量形变节点140d与逐元素操作节点140c的位置进行了调换,可以使得逐元素操作节点140c与非逐元素操作节点140e相连接,但又使得逐元素操作节点140b与逐元素操作节点140c相离,则在过渡数据流图14b中,可以将逐元素操作节点140b与张量形变节点140d之间的位置进行调换,得到更新数据流图如图14c所示。如图14c所示,通过将张量形变节点140d进行位置变换,可以使得非逐元素操作节点140e、逐元素操作节点140c以及逐元素操作节点140b依次进行连接,便于后续对非逐元素操作节点140e、逐元素操作节点140c以及逐元素操作节点140b的聚合优化。
步骤S405,在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
本申请中,对于非逐元素操作节点140e、逐元素操作节点140c以及逐元素操作节点140b的聚合优化,可以将非逐元素操作140e、逐元素操作节点140c以及逐元素操作节点140b聚合为一个目标聚合大节点,该目标聚合大节点中包括了非逐元素操作140e的操作功能、逐元素操作节点140c的操作功能以及逐元素操作节点140b的操作功能,聚合后可以得到数据优化流图。
进一步地,请参见图15,是本申请实施例提供的一种数据优化流图应用的流程示意图。如图15所示,该流程可以包括:
步骤S501,根据上述数据优化流图配置数据处理模型。
本申请中,这里的数据优化流图可以是指待聚合节点为合并操作节点时,得到的数据优化流图。这里的数据优化流图可以如上述图7a所对应的数据优化流图所示。这里的数据处理模型可以为神经网络模型、图优化模型等,得到数据优化流图后,可以根据该数据优化流图配置数据处理模型,使得数据处理模型可以按照数据优化流图中的计算逻辑对数据进行处理计算。
步骤S502,获取第一待合并张量,将上述第一待合并张量输入至上述数据处理模型。
步骤S503,通过上述数据处理模型中的上述张量形变节点,对上述第一待合并张量的形状进行转换,生成上述第一待合并张量对应的转换张量,将上述转换张量输入上述合并操作节点。
本申请中,张量可以理解为一个n维的数组或列表,这里对张量的形状进行转换可以是指改变张量的行或列,并不改变张量中的元素。当对第一待合并张量的形状进行转换后,可以生成转换张量,这里的转换张量与第一待合并张量的元素总个数是一致的。
步骤S504,获取第二待合并张量,将上述第二待合并张量输入上述合并操作节点。
步骤S505,通过上述合并操作节点对上述第一待合并张量与上述第二待合并张量进行合并,生成合并张量。
本申请中,对于张量的合并,可以利用Python(一种计算机程序设计语言)中的stack、concatenate以及hstack等函数来对张量进行合并。以concatenate函数为例,concatenate函数对张量的合并,可以理解为是按照两个张量中的特定维度进行拼接,一般情况下,特定维度默认是第一维。如,第一待合并张量为张量A,张量A为[[[1,2,3],[2,3,4]],[[4,5,6],[7,8,9]]],其中,元素[1,2,3]表示高一1班的学生a的成绩(1为语文成绩,2为数学成绩,3为英语成绩),元素[2,3,4]表示高一1班的学生b的成绩(2为语文成绩,3为数学成绩,4为英语成绩),那么[[1,2,3],[2,3,4]]可以表示高一1班2个学生(学生a与学生b)在3个科目(语文、数学以及英语)上的成绩;元素[4,5,6]表示高一2班学生c的成绩(4为语文成绩,5为数学成绩,6为英语成绩),元素[7,8,9]表示高一2班学生d的成绩(7为语文成绩,8为数学成绩,9为英语成绩),那么[[4,5,6],[7,8,9]]可以表示高一2班2个学生(学生c与学生d)在3个科目(语文、数学以及英语)上的成绩。若高一1班与2班的学生总数均为2人,可以看出,张量A[[[1,2,3],[2,3,4]],[[4,5,6],[7,8,9]]]存储的是高一1至2班的学生在语文、数学以及英语上的成绩,张量A的形状为(2,2,3),分别代表2个班级(班级维度),2个学生(学生维度),3个科目(科目维度)。第二待合并张量为张量B,张量B为[[[3,5,7],[4,5,6]]],元素[3,5,7]可以表示高一3班学生e的成绩(3为语文成绩,5为数学成绩,7为英语成绩),元素[4,5,6]可以表示高一3班学生f的成绩(4为语文成绩,5为数学成绩,6为英语成绩),张量B[[[3,5,7],[4,5,6]]]存储的是高一3班的学生在语文、数学以及英语上的成绩,张量B的形状为(1,2,3),分别代表1个班级(班级维度),2个学生(学生维度),3个科目(科目维度)。这里可以将班级维度作为待合并维度数据,根据该待合并维度数据,将张量A与张量B进行拼接,可以得到合并张量S[[[1,2,3],[2,3,4]],[[4,5,6],[7,8,9]],[[3,5,7],[4,5,6]]],可以看出,合并张量S存储了高一1至3班的学生在3个科目上的成绩,合并张量S的形状为(3,2,3)。
本申请对于张量的合并不仅限于利用concatenate函数,对于其他进行张量合并的方式(如使用stack函数的方式),在此不再进行一一举例。
步骤S506,将上述合并张量输入上述第一聚合逐元素操作节点,通过上述第一聚合逐元素操作节点对上述合并张量进行逐元素操作处理,生成目标输出张量。
本申请中,将上述合并张量输入至第一聚合逐元素操作节点,第一聚合逐元素操作节点可以对合并张量进行逐元素操作处理(如Sqrt开方、加、减、乘、除等),可以得到目标输出张量,通过数据优化流图中的输出节点可以将该目标输出张量进行输出。
本申请实施例通过获取原始数据流图,并对该原始数据流图进行解析,得到原始数据流图中的操作节点以及数据结构,若原始数据流图中存在张量形变节点以及至少两个逐元素操作节点,且该张量形变节点位于目标逐元素操作节点与待聚合操作节点之间,则可以根据该目标逐元素操作节点在原始数据流图中的位置,更新该张量形变节点在该原始数据流图中的位置,得到更新数据流图,使得在更新数据流图中,可以对逐元素操作节点以及待聚合操作节点进行聚合优化,得到数据优化流图,且在数据优化流图中,可以保持原始数据流图的逻辑。通过对获取到的数据流图进行解析、位置更新以及聚合优化,可以维持原始数据流图的逻辑,且通过更新张量形变节点的位置,使得在更新数据流图中,将多个操作节点聚合为统一的节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高系统资源的利用率。
为便于理解,请参见图16a-图16b,是本申请实施例提供的一种场景示意图。如图16a所示,用户A通过终端A上传了一张原始数据流图(如900a),该原始数据流图(如900a)可以如上述图4a所示。业务服务器90000可以通过终端A对应的后台服务器9000a获取到该如900a的原始数据流图。业务服务器90000可以将该原始数据流图进行聚合优化,得到对应的数据优化流图(如900b),该数据优化流图可以如上述图7a所示,业务服务器90000可以将该数据优化流图返回至后台服务器9000a,用户A可以在终端A的显示界面上查看到该数据优化流图。用户A若希望将该数据优化流图应用到数据处理模型中,则可以根据该数据优化流图对数据处理模型进行配置,使得数据处理模型具备该数据优化流图(如900b)中的逻辑,可以根据数据优化流图中的节点位置顺序来对输入数据进行处理。其中,对于业务服务器90000对原始数据流图(如900a)进行聚合优化的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S104的描述,这里将不再赘述。如图16b所示,将张量a与张量b输入至具有数据优化流图(如900b)的逻辑的数据处理模型中,该数据处理模型可以根据数据优化流图中的节点位置顺序,对张量a与张量b进行合并,得到大张量并进行输出。其中,对于数据处理模型对张量a与张量b进行合并得到大张量的具体实现方式,可以参见上述图15所对应实施例中步骤S501-步骤S506中的描述,这里将不再进行赘述。
请参见图17,是本申请实施例提供的一种数据优化流图应用的流程示意图。如图17所示,该流程可以包括:
步骤S601,根据上述数据优化流图配置上述数据处理模型。
本申请中,这里的数据优化流图可以是指待聚合节点为分裂操作节点时,得到的数据优化流图。这里的数据优化流图可以如上述图7b所对应的数据优化流图所示。这里的数据处理模型可以为神经网络模型、图优化模型等,得到数据优化流图后,可以根据该数据优化流图配置数据处理模型,使得数据处理模型可以按照数据优化流图中的计算逻辑对数据进行处理计算。
步骤S602,获取待分裂张量,将上述待分裂张量输入至上述数据处理模型。
步骤S603,通过上述数据处理模型中的上述第二聚合逐元素操作节点,对上述待分裂张量进行逐元素操作处理,将逐元素操作处理后的待分裂张量输入至上述分裂操作节点。
步骤S604,通过上述分裂操作节点对上述逐元素操作处理后的待分裂张量进行分裂,得到第一分裂张量以及第二分裂张量。
本申请中,对于张量的分裂,可以利用Split函数来对张量进行分裂,Split函数可以将一个张量分裂为至少两个分裂张量。关于张量的分裂,具体方法可以为,获取到待分裂维度数据;获取分裂数量以及分裂长度;其中,该分裂数量是指将该待分裂张量进行分裂后,得到的分裂张量的总数量,该分裂长度可以是指每个分裂张量的长度;根据该待分裂维度数据、分裂数量以及分裂长度,可以将该待分裂张量进行分裂,得到待分裂张量对应的第一分裂张量以及第二分裂张量。如,待分裂张量M为[[[1,2,3],[2,3,4]],[[4,5,6],[7,8,9]],[[3,5,7],[4,5,6]]],待分裂张量M的形状为(3,2,3),存储的是3个班级(1-3班)的学生在语文、数学以及英语三个科目上的成绩。分裂的规则为(2,1),其中,2代表一个分裂张量的长度为2,1代表一个分裂张量的长度为1,可以看出,该分裂数量为2,也就是说,需要将待分裂张量M分裂为2份,其中一份的长度为2,另一份的长度为1。则将待分裂张量M进行分裂后,得到的一个分裂张量为分裂张量P[[[1,2,3],[2,3,4]],[[4,5,6],[7,8,9]]],另一个分裂张量为分裂张量Q[[[3,5,7],[4,5,6]]]。其中,分裂张量P的形状为(2,2,3),可以用于表示1-2班的学生在3个科目上的成绩,分裂张量Q的形状为(1,2,3),可以用于表示第3班的学生在3个科目上的成绩。
本申请对于张量的分裂不仅限于利用split函数,对于其他进行张量分裂的方式,这里不再进行一一举例。
步骤S605,将上述第一分裂张量输入至上述张量形变节点,通过上述张量形变节点对上述第一分裂张量的形状进行转换,生成上述第一分裂张量对应的转换分裂张量。
步骤S606,输出上述转换分裂张量以及上述第二分裂张量。
本申请中,通过输出节点可以将数据进行输出。
本申请实施例通过获取原始数据流图,并对该原始数据流图进行解析,得到原始数据流图中的操作节点以及数据结构,若原始数据流图中存在张量形变节点以及至少两个逐元素操作节点,且该张量形变节点位于目标逐元素操作节点与待聚合操作节点之间,则可以根据该目标逐元素操作节点在原始数据流图中的位置,更新该张量形变节点在该原始数据流图中的位置,得到更新数据流图,使得在更新数据流图中,可以对逐元素操作节点以及待聚合操作节点进行聚合优化,得到数据优化流图,且在数据优化流图中,可以保持原始数据流图的逻辑。通过对获取到的数据流图进行解析、位置更新以及聚合优化,可以维持原始数据流图的逻辑,且通过更新张量形变节点的位置,使得在更新数据流图中,将多个操作节点聚合为统一的节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高系统资源的利用率。
为便于理解,请参见图18,是本申请实施例提供的一种场景示意图。请一并参见图16a,用户A通过终端A上传了一张原始数据流图(如900a),该原始数据流图可以如上述图6a所示。业务服务器90000可以通过终端A对应的后台服务器9000a获取到该原始数据流图。业务服务器90000可以将该原始数据流图(如900a)进行聚合优化,得到对应的数据优化流图(如900b),该数据优化流图(如900b)可以如上述图7b所示,业务服务器90000可以将该数据优化流图返回至后台服务器9000a,用户A可以在终端A的显示界面上查看到该数据优化流图。用户A若希望将数据优化流图应用到数据处理模型中,则可以根据该数据优化流图对数据处理模型进行配置,使得数据处理模型具备该数据优化流图中的逻辑,可以根据数据优化流图中的节点位置顺序来对输入数据进行处理。其中,对于业务服务器9000对原始数据流图(如900a)进行聚合优化的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S104的描述,这里将不再赘述。如图18所示,将待分裂张量输入至具有数据优化流图(如900b)的逻辑的数据处理模型中,该数据处理模型可以根据数据优化流图中的节点位置顺序,对待分裂张量进行分裂,得到分裂张量a、分裂张量b、分裂张量c以及分裂张量d,并将分裂张量a、分裂张量b、分裂张量c以及分裂张量d进行输出。其中,对于数据处理模型对待分裂张量进行分裂,得到分裂张量a、分裂张量b、分裂张量c以及分裂张量d的具体实现方式,可以参见上述图17所对应实施例中步骤S601-步骤S606中的描述,这里将不再进行赘述。
进一步地,请参见图19,是本申请实施例提供的一种数据流图处理装置的结构示意图。上述数据流图处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据流图处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图19所示,该数据流图处理装置1可以包括:流图解析模块11、位置检测模块12、位置更新模块13以及聚合优化模块14。
流图解析模块11,用于获取原始数据流图,解析上述原始数据流图;
位置检测模块12,用于若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置;
位置更新模块13,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,则根据上述目标逐元素操作节点在上述原始数据流图中的位置,更新上述张量形变节点在上述原始数据流图中的位置,得到更新数据流图;上述至少两个逐元素操作节点包括上述目标逐元素操作节点;上述更新数据流图中的上述目标逐元素操作节点与上述待聚合操作节点相连接;
聚合优化模块14,用于在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
其中,流图解析模块11、位置检测模块12、位置更新模块13以及聚合优化模块14的具体实现方式可以参见上述图2所对应实施例中步骤S101-步骤S104中的描述,这里将不再进行赘述。
请参见图19,上述位置更新模块13,可以包括:位置变换单元131。
位置变换单元131,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且剩余逐元素操作节点均与上述待聚合操作节点相连接,则变换上述张量形变节点与上述目标逐元素操作节点之间的位置,得到更新数据流图;上述剩余逐元素操作节点为上述至少两个逐元素操作节点中,除上述目标逐元素操作节点以外的节点。
其中,位置变换单元131的具体实现方式,可以参见上述图2所对应实施例中步骤S103中的描述,这里将不再进行赘述。
请参见图19,上述聚合优化模块14,可以包括:第一节点聚合单元141以及第一节点位置调换单元142。
第一节点聚合单元141,用于在上述更新数据流图中,若上述目标逐元素操作节点与上述剩余逐元素操作节点的数据操作类型相同,则将上述目标逐元素操作节点以及上述剩余逐元素操作节点进行聚合,得到第一聚合逐元素操作节点;上述第一聚合逐元素操作节点的数据操作类型与上述剩余逐元素操作节点的数据操作类型一致;
第一节点位置调换单元142,用于将上述第一聚合逐元素操作节点与上述合并操作节点之间的位置进行调换,得到数据优化流图;在上述数据优化流图中,上述合并操作节点的输出张量是上述第一聚合逐元素操作节点的输入张量。
其中,第一节点聚合单元141以及第一节点位置调换单元142的具体实现方式,可以参见上述图2所对应实施例中步骤S104中的描述,这里将不再进行赘述。
请参见图19,该数据流图处理装置1可以包括流图解析模块11、位置检测模块12、位置变换模块13以及聚合优化模块14,还可以包括:第一模型配置模块15、张量输入模块16、第一形状转换模块17、张量合并模块18以及目标张量生成模块19。
第一模型配置模块15,用于根据上述数据优化流图配置数据处理模型;
张量输入模块16,用于获取第一待合并张量,将上述第一待合并张量输入至上述数据处理模型;
第一形状转换模块17,用于通过上述数据处理模型中的上述张量形变节点,对上述第一待合并张量的形状进行转换,生成上述第一待合并张量对应的转换张量,将上述转换张量输入上述合并操作节点;
上述张量输入模块16,用于获取第二待合并张量,将上述第二待合并张量输入上述合并操作节点;
张量合并模块18,用于通过上述合并操作节点对上述第一待合并张量与上述第二待合并张量进行合并,生成合并张量;
目标张量生成模块19,用于将上述合并张量输入上述第一聚合逐元素操作节点,通过上述第一聚合逐元素操作节点对上述合并张量进行逐元素操作处理,生成目标输出张量。
其中,第一模型配置模块15、张量输入模块16、第一形状转换模块17、张量合并模块18以及目标张量生成模块19的具体实现方式,可以参见上述图15所对应实施例中步骤S501-步骤S506的描述,这里将不再进行赘述。
请参见图19,上述聚合优化模块14,可以包括:第二节点聚合单元143以及第二节点位置调换单元144。
第二节点聚合单元143,用于在上述更新数据流图中,若上述目标逐元素操作节点与上述剩余逐元素操作节点的数据操作类型相同,则将上述目标逐元素操作节点以及上述剩余逐元素操作节点进行聚合,得到第二聚合逐元素操作节点;上述第二聚合逐元素操作节点的数据操作类型与上述剩余逐元素操作节点的数据操作类型一致;
第二节点位置调换单元144,用于将上述第二聚合逐元素操作节点与上述分裂操作节点之间的位置进行调换,得到数据优化流图;在上述数据优化流图中,上述第二聚合逐元素操作节点的输出张量是上述分裂操作节点的输入张量。
其中,第二节点聚合单元143以及第二节点位置调换单元144的具体实现方式,可以参见上述图2所对应实施例中步骤S104中的描述,这里将不再进行赘述。
请参见图19,该数据流图处理装置1可以包括流图解析模块11、位置检测模块12、位置变换模块13以及聚合优化模块14、第一模型配置模块15、张量输入模块16、第一形状转换模块17、张量合并模块18以及目标张量生成模块19,还可以包括:第二模型配置模块20、待分裂张量获取模块21、张量处理模块22、张量分裂模块23、第二形状转换模块24以及分裂张量输出模块25。
第二模型配置模块20,用于根据上述数据优化流图配置上述数据处理模型;
待分裂张量获取模块21,用于获取待分裂张量,将上述待分裂张量输入至上述数据处理模型;
张量处理模块22,用于通过上述数据处理模型中的上述第二聚合逐元素操作节点,对上述待分裂张量进行逐元素操作处理,将逐元素操作处理后的待分裂张量输入至上述分裂操作节点;
张量分裂模块23,用于通过上述分裂操作节点对上述逐元素操作处理后的待分裂张量进行分裂,得到第一分裂张量以及第二分裂张量;
第二形状转换模块24,用于将上述第一分裂张量输入至上述张量形变节点,通过上述张量形变节点对上述第一分裂张量的形状进行转换,生成上述第一分裂张量对应的转换分裂张量;
分裂张量输出模块25,用于输出上述转换分裂张量以及上述第二分裂张量。
其中,第二模型配置模块20、待分裂张量获取模块21、张量处理模块22、张量分裂模块23、第二形状转换模块24以及分裂张量输出模块25的具体实现方式,可以参见上述图17所对应实施例中步骤S601-步骤S606的描述,这里将不再进行赘述。
请参见图19,上述位置更新模块13,可以包括:第一位置移动单元132以及第一位置调换单元133。
第一位置移动单元132,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输出张量是上述剩余逐元素操作节点的输入张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输出张量,是上述目标逐元素操作节点的输入张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持串联关系;上述张量形变还原节点用于对上述目标逐元素操作节点的输出张量的形状进行还原,上述张量形变还原节点的输出张量的形状与上述张量形变节点的输入张量的形状相同;
第一位置调换单元133,用于在上述过渡数据流图中,将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,第一位置移动单元132以及第一位置调换单元133的具体实现方式,可以参见上述图8所对应实施例中步骤S203-步骤S204的描述,这里将不再进行赘述。
请参见图19,上述位置更新模块13,可以包括:第二位置移动单元134
第二位置调换单元135。
第二位置移动单元134,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点的输入张量是上述剩余逐元素操作节点的输出张量,则将上述张量形变节点的位置进行移动变换,在上述目标逐元素操作节点与上述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;上述过渡数据流图中,上述张量形变节点的输入张量是上述目标逐元素操作节点的输出张量,上述目标逐元素操作节点与上述剩余逐元素操作节点之间保持连接关系;上述张量形变还原节点用于对上述剩余逐元素操作节点的输出张量的形状进行转换,上述张量形变还原节点的输入张量的形状与上述张量形变节点的输出张量的形状相同;
第二位置调换单元135,用于将上述张量形变还原节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,第二位置移动单元134以及第二位置调换单元135的具体实现方式,可以参见上述图10所对应实施例中步骤S303-步骤S304的描述,这里将不再进行赘述。
请参见图19,上述位置更新模块13,可以包括:第三位置调换单元136以及第四位置调换单元137。
第三位置调换单元136,用于若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,且上述目标逐元素操作节点与上述剩余逐元素操作节点相连接,则将上述张量形变节点与上述目标逐元素操作节点之间的位置进行调换,得到过渡数据流图;
第四位置调换单元137,用于在上述过渡数据流图中,将上述张量形变节点与上述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
其中,第三位置调换单元138以及第四位置调换单元139的具体实现方式,可以参见上述图12所对应实施例中步骤S403-步骤S404的描述,这里将不再进行赘述。
请参见图19,上述聚合优化模块14,可以包括:第三节点聚合单元145以及优化流图确定单元146。
第三节点聚合单元145,用于将上述目标逐元素操作节点、上述剩余逐元素操作节点以及上述待聚合操作节点进行聚合,生成目标聚合操作节点;上述目标聚合操作节点所具备的操作功能包括上述目标逐元素操作节点所具备的操作功能、上述剩余逐元素操作节点所具备的操作功能以及上述待聚合操作节点所具备的操作功能;
优化流图确定单元146,用于将包括上述目标聚合操作节点的数据流图确定为数据优化流图。
其中,第三节点聚合单元145以及优化流图确定单元146的具体实现方式,可以参见上述图8所对应实施例中步骤S205,或图10所对应实施例中步骤S305,或图12所对应实施例中步骤S405中的描述,这里将不再进行赘述。
本申请实施例通过获取原始数据流图,并对该原始数据流图进行解析,得到原始数据流图中的操作节点以及数据结构,若原始数据流图中存在张量形变节点以及至少两个逐元素操作节点,且该张量形变节点位于目标逐元素操作节点与待聚合操作节点之间,则可以根据该目标逐元素操作节点在原始数据流图中的位置,更新该张量形变节点在该原始数据流图中的位置,得到更新数据流图,使得在更新数据流图中,可以对逐元素操作节点以及待聚合操作节点进行聚合优化,得到数据优化流图,且在数据优化流图中,可以保持原始数据流图的逻辑。通过对获取到的数据流图进行解析、位置更新以及聚合优化,可以维持原始数据流图的逻辑,且通过更新张量形变节点的位置,使得在更新数据流图中,将多个操作节点聚合为统一的节点,因为一个节点的分配资源会小于n(大于或等于2的整数)个节点的分配资源,从而可以提高系统资源的利用率。
进一步地,请参见图20,是本申请实施例提供的一种计算机设备的结构示意图。如图20所示,上述图19所对应实施例中的装置1可以应用于上述计算机设备1000,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图20所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图20所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取原始数据流图,解析上述原始数据流图;
若解析出上述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测上述张量形变节点在上述原始数据流图中的位置;
若上述张量形变节点位于目标逐元素操作节点和上述待聚合操作节点之间,则根据上述目标逐元素操作节点在上述原始数据流图中的位置,更新上述张量形变节点在上述原始数据流图中的位置,得到更新数据流图;上述至少两个逐元素操作节点包括上述目标逐元素操作节点;上述更新数据流图中的上述目标逐元素操作节点与上述待聚合操作节点相连接;
在上述更新数据流图中,对上述至少两个逐元素操作节点以及上述待聚合操作节点进行节点聚合优化,得到数据优化流图。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图2到图18所对应实施例中对该数据流图处理方法的描述,也可执行前文图19所对应实施例中对该数据流图处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图2到图18所对应实施例中对上述数据流图处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (13)
1.一种数据流图处理方法,其特征在于,包括:
获取原始数据流图,解析所述原始数据流图;
若解析出所述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测所述张量形变节点在所述原始数据流图中的位置;
若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图;所述至少两个逐元素操作节点包括所述目标逐元素操作节点;所述更新数据流图中的所述目标逐元素操作节点与所述待聚合操作节点相连接;
在所述更新数据流图中,对所述至少两个逐元素操作节点以及所述待聚合操作节点进行节点聚合优化,得到数据优化流图。
2.根据权利要求1所述的方法,其特征在于,所述至少两个逐元素操作节点之间为并列关系;
所述若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图,包括:
若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,且剩余逐元素操作节点均与所述待聚合操作节点相连接,则变换所述张量形变节点与所述目标逐元素操作节点之间的位置,得到更新数据流图;所述剩余逐元素操作节点为所述至少两个逐元素操作节点中,除所述目标逐元素操作节点以外的节点。
3.根据权利要求2所述的方法,其特征在于,所述待聚合操作节点为合并操作节点;
所述在所述更新数据流图中,对所述至少两个逐元素操作节点以及所述待聚合操作节点进行节点聚合优化,得到数据优化流图,包括:
在所述更新数据流图中,若所述目标逐元素操作节点与所述剩余逐元素操作节点的数据操作类型相同,则将所述目标逐元素操作节点以及所述剩余逐元素操作节点进行聚合,得到第一聚合逐元素操作节点;所述第一聚合逐元素操作节点的数据操作类型与所述剩余逐元素操作节点的数据操作类型一致;
将所述第一聚合逐元素操作节点与所述合并操作节点之间的位置进行调换,得到数据优化流图;在所述数据优化流图中,所述合并操作节点的输出张量是所述第一聚合逐元素操作节点的输入张量。
4.根据权利要求3所述的方法,其特征在于,还包括:
根据所述数据优化流图配置数据处理模型;
获取第一待合并张量,将所述第一待合并张量输入至所述数据处理模型;
通过所述数据处理模型中的所述张量形变节点,对所述第一待合并张量的形状进行转换,生成所述第一待合并张量对应的转换张量,将所述转换张量输入所述合并操作节点;
获取第二待合并张量,将所述第二待合并张量输入所述合并操作节点;
通过所述合并操作节点对所述第一待合并张量与所述第二待合并张量进行合并,生成合并张量;
将所述合并张量输入所述第一聚合逐元素操作节点,通过所述第一聚合逐元素操作节点对所述合并张量进行逐元素操作处理,生成目标输出张量。
5.根据权利要求2所述的方法,其特征在于,所述待聚合操作节点为分裂操作节点;
所述在所述更新数据流图中,对所述至少两个逐元素操作节点以及所述待聚合操作节点进行节点聚合优化,得到数据优化流图,包括:
在所述更新数据流图中,若所述目标逐元素操作节点与所述剩余逐元素操作节点的数据操作类型相同,则将所述目标逐元素操作节点以及所述剩余逐元素操作节点进行聚合,得到第二聚合逐元素操作节点;所述第二聚合逐元素操作节点的数据操作类型与所述剩余逐元素操作节点的数据操作类型一致;
将所述第二聚合逐元素操作节点与所述分裂操作节点之间的位置进行调换,得到数据优化流图;在所述数据优化流图中,所述第二聚合逐元素操作节点的输出张量是所述分裂操作节点的输入张量。
6.根据权利要求5所述的方法,其特征在于,还包括:
根据所述数据优化流图配置所述数据处理模型;
获取待分裂张量,将所述待分裂张量输入至所述数据处理模型;
通过所述数据处理模型中的所述第二聚合逐元素操作节点,对所述待分裂张量进行逐元素操作处理,将逐元素操作处理后的待分裂张量输入至所述分裂操作节点;
通过所述分裂操作节点对所述逐元素操作处理后的待分裂张量进行分裂,得到第一分裂张量以及第二分裂张量;
将所述第一分裂张量输入至所述张量形变节点,通过所述张量形变节点对所述第一分裂张量的形状进行转换,生成所述第一分裂张量对应的转换分裂张量;
输出所述转换分裂张量以及所述第二分裂张量。
7.根据权利要求1所述的方法,其特征在于,所述至少两个逐元素操作节点之间为串联关系;所述待聚合操作节点与剩余逐元素操作节点之间为并列关系;所述剩余逐元素操作节点为所述至少两个逐元素操作节点中,除所述目标逐元素操作节点以外的节点;
所述若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图,包括:
若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,且所述目标逐元素操作节点的输出张量是所述剩余逐元素操作节点的输入张量,则将所述张量形变节点的位置进行移动变换,在所述目标逐元素操作节点与所述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;所述过渡数据流图中,所述张量形变节点的输出张量,是所述目标逐元素操作节点的输入张量,所述目标逐元素操作节点与所述剩余逐元素操作节点之间保持串联关系;所述张量形变还原节点用于对所述目标逐元素操作节点的输出张量的形状进行还原,所述张量形变还原节点的输出张量的形状与所述张量形变节点的输入张量的形状相同;
在所述过渡数据流图中,将所述张量形变还原节点与所述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
8.根据权利要求1所述的方法,其特征在于,所述至少两个逐元素操作节点之间为串联关系;所述待聚合操作节点与剩余逐元素操作节点之间为并列关系;所述剩余逐元素操作节点为所述至少两个逐元素操作节点中,除所述目标逐元素操作节点以外的节点;
所述若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图,包括:
若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,且所述目标逐元素操作节点的输入张量是所述剩余逐元素操作节点的输出张量,则将所述张量形变节点的位置进行移动变换,在所述目标逐元素操作节点与所述剩余逐元素操作节点之间,添加张量形变还原节点,得到过渡数据流图;所述过渡数据流图中,所述张量形变节点的输入张量是所述目标逐元素操作节点的输出张量,所述目标逐元素操作节点与所述剩余逐元素操作节点之间保持串联关系;所述张量形变还原节点用于对所述剩余逐元素操作节点的输出张量的形状进行转换,所述张量形变还原节点的输入张量的形状与所述张量形变节点的输出张量的形状相同;
在所述过渡数据流图中,将所述张量形变还原节点与所述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
9.根据权利要求1所述的方法,其特征在于,所述待聚合操作节点、所述目标逐元素操作节点以及剩余逐元素操作节点为串联关系;所述剩余逐元素操作节点为所述至少两个逐元素操作节点中,除所述目标逐元素操作节点以外的节点;
所述若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图,包括:
若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,且所述目标逐元素操作节点与所述剩余逐元素操作节点相连接,则将所述张量形变节点与所述目标逐元素操作节点之间的位置进行调换,得到过渡数据流图;
在所述过渡数据流图中,将所述张量形变节点与所述剩余逐元素操作节点之间的位置进行调换,得到更新数据流图。
10.根据权利要求7至9任一项所述的方法,其特征在于,所述在所述更新数据流图中,对所述至少两个逐元素操作节点以及所述待聚合操作节点进行节点聚合优化,得到数据优化流图,包括:
将所述目标逐元素操作节点、所述剩余逐元素操作节点以及所述待聚合操作节点进行聚合,生成目标聚合操作节点;所述目标聚合操作节点所具备的操作功能包括所述目标逐元素操作节点所具备的操作功能、所述剩余逐元素操作节点所具备的操作功能以及所述待聚合操作节点所具备的操作功能;
将包括所述目标聚合操作节点的数据流图确定为数据优化流图。
11.一种数据流图处理装置,其特征在于,包括:
流图解析模块,用于获取原始数据流图,解析所述原始数据流图;
位置检测模块,用于若解析出所述原始数据流图包括至少两个逐元素操作节点、待聚合操作节点以及张量形变节点,则检测所述张量形变节点在所述原始数据流图中的位置;
位置变换模块,用于若所述张量形变节点位于目标逐元素操作节点和所述待聚合操作节点之间,则根据所述目标逐元素操作节点在所述原始数据流图中的位置,更新所述张量形变节点在所述原始数据流图中的位置,得到更新数据流图;所述至少两个逐元素操作节点包括所述目标逐元素操作节点;所述更新数据流图中的所述目标逐元素操作节点与所述待聚合操作节点相连接;
聚合优化模块,用于在所述更新数据流图中,对所述至少两个逐元素操作节点以及所述待聚合操作节点进行节点聚合优化,得到数据优化流图。
12.一种计算机设备,其特征在于,包括:处理器和存储器;
所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407579.9A CN111597211B (zh) | 2020-05-14 | 2020-05-14 | 一种数据流图处理方法、装置、设备以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407579.9A CN111597211B (zh) | 2020-05-14 | 2020-05-14 | 一种数据流图处理方法、装置、设备以及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111597211A true CN111597211A (zh) | 2020-08-28 |
CN111597211B CN111597211B (zh) | 2023-10-20 |
Family
ID=72192234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010407579.9A Active CN111597211B (zh) | 2020-05-14 | 2020-05-14 | 一种数据流图处理方法、装置、设备以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111597211B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504143A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种流图优化方法及其装置 |
US20180302800A1 (en) * | 2017-04-17 | 2018-10-18 | DeepSig Inc. | Placement and scheduling of radio signal processing dataflow operations |
US20190228340A1 (en) * | 2017-08-19 | 2019-07-25 | Wave Computing, Inc. | Data flow graph computation for machine learning |
US20190279038A1 (en) * | 2017-08-19 | 2019-09-12 | Wave Computing, Inc. | Data flow graph node parallel update for machine learning |
US20190279086A1 (en) * | 2017-08-19 | 2019-09-12 | Wave Computing, Inc. | Data flow graph node update for machine learning |
US20190324888A1 (en) * | 2017-08-19 | 2019-10-24 | Wave Computing, Inc. | Data flow graph computation using exceptions |
-
2020
- 2020-05-14 CN CN202010407579.9A patent/CN111597211B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504143A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种流图优化方法及其装置 |
US20180302800A1 (en) * | 2017-04-17 | 2018-10-18 | DeepSig Inc. | Placement and scheduling of radio signal processing dataflow operations |
US20190228340A1 (en) * | 2017-08-19 | 2019-07-25 | Wave Computing, Inc. | Data flow graph computation for machine learning |
US20190279038A1 (en) * | 2017-08-19 | 2019-09-12 | Wave Computing, Inc. | Data flow graph node parallel update for machine learning |
US20190279086A1 (en) * | 2017-08-19 | 2019-09-12 | Wave Computing, Inc. | Data flow graph node update for machine learning |
US20190324888A1 (en) * | 2017-08-19 | 2019-10-24 | Wave Computing, Inc. | Data flow graph computation using exceptions |
Also Published As
Publication number | Publication date |
---|---|
CN111597211B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111898696B (zh) | 伪标签及标签预测模型的生成方法、装置、介质及设备 | |
CN111324696B (zh) | 实体抽取方法、实体抽取模型的训练方法、装置及设备 | |
Agrawal et al. | Cloudcv: Large-scale distributed computer vision as a cloud service | |
US20220222925A1 (en) | Artificial intelligence-based image processing method and apparatus, device, and storage medium | |
CN109815955A (zh) | 题目辅助方法及系统 | |
JP2022177232A (ja) | 画像処理方法、テキスト認識方法及び装置 | |
CN110472002B (zh) | 一种文本相似度获取方法和装置 | |
CN110852256A (zh) | 时序动作提名的生成方法、装置、设备及存储介质 | |
CN113393544B (zh) | 一种图像处理方法、装置、设备及介质 | |
Zhang | Application of AI-based real-time gesture recognition and embedded system in the design of English major teaching | |
CN115145568A (zh) | 基于图像识别的代码生成方法以及相关设备 | |
CN112394982B (zh) | 生成语音识别系统的方法、装置、介质及电子设备 | |
CN115205546A (zh) | 模型训练方法和装置、电子设备、存储介质 | |
CN114612402A (zh) | 对象数量的确定方法、装置、设备、介质及程序产品 | |
CN113822114A (zh) | 一种图像处理方法、相关设备及计算机可读存储介质 | |
CN111447592B (zh) | 一种确定传输资源的方法、设备及存储介质 | |
CN113537267A (zh) | 对抗样本的生成方法和装置、存储介质及电子设备 | |
CN111597211B (zh) | 一种数据流图处理方法、装置、设备以及可读存储介质 | |
CN114298961A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN110517335B (zh) | 一种动态纹理视频生成方法、装置、服务器及存储介质 | |
CN114332599A (zh) | 图像识别方法、装置、计算机设备、存储介质和产品 | |
CN113569567A (zh) | 文本识别方法、装置、计算机可读介质及电子设备 | |
Fujishiro et al. | Top computational visualization R&D problems 2015: Panel | |
CN116109823B (zh) | 数据处理方法、装置、电子设备、存储介质和程序产品 | |
CN115729613A (zh) | 数据流图处理方法、装置和设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40027366 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |