CN114283099A - 一种图处理的方法,系统以及装置 - Google Patents

一种图处理的方法,系统以及装置 Download PDF

Info

Publication number
CN114283099A
CN114283099A CN202010998184.0A CN202010998184A CN114283099A CN 114283099 A CN114283099 A CN 114283099A CN 202010998184 A CN202010998184 A CN 202010998184A CN 114283099 A CN114283099 A CN 114283099A
Authority
CN
China
Prior art keywords
graph
node
edges
subgraphs
port
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.)
Pending
Application number
CN202010998184.0A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010998184.0A priority Critical patent/CN114283099A/zh
Priority to PCT/CN2021/096023 priority patent/WO2022057303A1/zh
Publication of CN114283099A publication Critical patent/CN114283099A/zh
Priority to US18/186,267 priority patent/US20230229704A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种图处理的方法,系统以及装置,用于数据可视化领域。本申请实施例方法中,首先获取第一图的至少两个子图,每个子图包括第一图中的多个节点和节点之间的边,然后计算至少两个子图中每个子图包括的节点和边计算至少两个子图各自的标识,将至少两个子图中标识相同的子图进行合并,以生成第二图,然后输出合并后生成的第二图。本申请实施例中图处理的方法在不影响图的结构和表达的计算逻辑的前提下,提升图中数据流向的清晰度以及完整度。

Description

一种图处理的方法,系统以及装置
技术领域
本申请实施例涉及数据可视化领域,尤其涉及一种图处理的方法,装置以及设备。
背景技术
深度学习技术目前广泛应用于复杂数据的特征提取,推理及预测,包括图、文本、语音等数据类型。具体到实现层面,用户一般会使用深度学习框架编写代码,来进行数据预处理、模型构建、模型训练、模型评估和部署等环节。进一步地,请参阅图1,图1为本申请实施例的计算图的实施例示意图,如图所示,深度学习框架可以采用计算图的形式指示机器进行模型的训练和推理。然而深度学习框架和模型本身的复杂性为用户使用带来了较高的门槛,特别是难以方便快速的定位问题和调试。
目前,通过将深度学习框架生成的计算图可视化,有助于用户检查自己编写的代码是否符合心目中的模型结构、在模型训练过程中定位问题的出现。
然而,图通常包括层级聚合以及数据量庞大的节点以及边,因此图中节点以及边的布局杂乱,由此会降低图处理的效率,从而降低终端设备展示图中数据流向的清晰度以及完整度。
发明内容
本申请实施例提供了一种图处理的方法,系统以及装置,用于不影响图的结构和表达的计算逻辑的前提下,提升图中数据流向的清晰度以及完整度。
本申请实施例的第一方面提供了一种图处理的方法,包括:由于复杂深度学习模型所生成的第一图通常包含有频繁子图,频繁子图即在同一个图结构中重复出现的子图结构,若将包括频繁子图的第一图展示于终端设备,会降低终端设备对第一图的处理效率,其次,也不利于用户快速地找到关键子区域。因此,图处理装置从第一图中确定出度大于第二阈值的节点为起始节点,然后通过起始节点的数据流向所经过的路径,确定对应的终止节点,通过起始节点以及终止节点确定在两个节点之间的所有子图,每个子图包括边以及节点,且边用于表示不同节点之间数据的流向。其中,第二阈值用于指示节点数据流向的出度,即大于第二阈值说明该节点的出度已经超出预设出度,从而导致该节点的数据流向较多,因此图中所展示的边也较多,其次,第二阈值的具体取值可以为2、5或者8等,第二阈值的具体数据需要根据第一图的实际情况预先确定,此处不做限定。然后图处理装置基于至少两个子图中,每个子图包括的节点和边计算至少两个子图各自的标识,所述标识用于指示子图的特征,或者所述标识为子图的哈希值,具体此处不做限定。进一步地,由于子图的标识相同,即说明子图之间有着相似的特征,因此图处理装置合并至少两个子图中标识相同的子图,以生成第二图,并且输出第二图。示例性地,当本申请实施例的方法应用于终端设备时,终端设备可以从终端设备内存中读取深度学习框架保存的第一图,或者接收从服务器所发送的第一图,然后直接展示通过前述方式生成的第二图。其次,当本申请实施例的方法应用于服务器时,服务器可以从服务器内存中读取存储的第一图,通过前述方式生成第二图后,向终端设备发送第二图,终端设备即可展示接收到第二图。
在该实施方式中,根据所获取的第一图确定具有对应标识的子图,将标识相同的至少两个子图进行合并,以生成第二图,因此降低第二图包括的节点数量以及边数量,由此提升图处理的效率,由于标识相同的子图是相似的,因此合并不影响图的结构和表达的计算逻辑,因此还可以提升图中数据流向的清晰度以及完整度。
本申请实施例的一种实现方式中,标识为哈希值,本实施例以应用于深度学习框架对应的计算图作为示例,基于深度学习计算图的特点,由于节点对应的哈希值可以指示节点的特征,而边对应的哈希值可以指示边的特征,通过哈希值可以区别特征不同的节点以及边,因此可以对至少两个子图中的每个子图,基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,因此计算每个子图对应的哈希值,所得到的子图对应的哈希值也可以区别特征不同的子图。
在该实施方式中,基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,计算得到的子图对应的哈希值能够准确反映子图的特征,保证后续合并哈希值相同子图的准确性,由此进一步地提升了图处理的准确度。
本申请实施例的一种实现方式中,标识为哈希值,因此在每个子图中,一个节点对应的哈希值与节点的属性有关,即节点对应的哈希值是对每个子图中节点的属性进行计算得到的,具体地,子图中的节点对应有多种节点属性,节点对应的节点属性包括但不限于变量类型、参数类型、所属聚合等,节点属性可以反映节点的特征,因此对节点的属性进行计算得到节点对应的哈希值可以指示节点的特征。其次,在每个子图中,一条边对应的哈希值与每个子图中边指示的连接关系有关,即每个子图中边对应的哈希值是对每个子图中边所指示的节点与节点之间的连接关系进行计算得到的,且节点与节点之间的连接关系是有方向的。具体地,边表示一个节点向另一个节点的数据流向,例如,对于一条边i而言,数据输出的节点为节点A,数据输入的节点为节点B,因此可以将节点A以及节点B编码成字符串“[source type]->[target type]”,其中[source type]用于指示边的节点A的类型,而[target type]用于指示边的节点B的类型,该字符串用于指示边i的数据流向为从节点A至节点B,以确保数据有序性,因此对该字符串计算哈希值,即可以指示边的特征。
在该实施方式中,由于节点属性可以反映节点的特征,因此对节点的属性进行计算得到节点对应的哈希值,能够提升所得到的节点对应的哈希值的准确性。其次,通过边指示的连接关系是有方向的,能够使得计算得到的哈希值更准确,因此能够提升子图对应的哈希值的准确性,由此进一步地提升了图处理的准确度。
本申请实施例的一种实现方式中,标识为哈希值,本实施例以应用于深度学习框架对应的计算图作为示例,基于深度学习计算图的特点,因此可以合并至少两个子图中哈希值相同的子图,以降低计算图包括的节点数量以及边数量,以及确定第一图中出度或入度大于第一阈值的节点为第一节点,然后为第一节点分配一个第一端口以及第二端口,其中,第一端口为数据输入每个第一节点的边经过每个第一节点的端口,而第二端口为数据输出每个第一节点的边经过每个第一节点的端口,根据合并后所生成图中包括的所有边,合并经过同一第一端口的多条边,合并经过同一第二端口的多条边,以生成第二图。其中,第一阈值可以指示节点数据流向的出度,还可以指示节点数据流入的入度,即大于第一阈值说明该节点的出度已经超出预设出度,或者该节点的入度已经超出预设入度,均会导致该节点的数据流向较多,因此图中所展示的边也较多,其次,第一阈值的具体取值可以为3、5或者4等,第一阈值的具体数据需要根据计算图的实际情况预先确定,此处不做限定。
在该实施方式中,由于第一节点为出度或入度大于第一阈值的节点,因此从第一节点输出或输入的数据流向较多,为第一节点分配第一端口以及第二端口,将数据输入经过第一端口的边,且数据输出经过第二端口的边进行合并,生成第二图,进一步地提升终端设备展示图中数据流向的清晰度。
本申请实施例的一种实现方式中,标识为哈希值,第二图是以正交边路由的方式布局的。具体地,先采用端口约束(port constraint)优化布局算法基于第一端口以及第二端口,以整体的正交边路由布局为目标,对第一端口以及第二端口的位置以及排序进行约束优化,计算得出第一端口以及第二端口的位置坐标,由此完成正交边路由的布局,以生成第二图。其中,正交布局具体为节点周边的连线夹角为90度,而边路由为图中具体连线的排布以及走向。
在该实施方式中,采用正交边路由的方式布局能够对第一端口以及第二端口的位置以及排序进行约束优化,使得从左到右整体的数据流向完整且清晰,进一步地提升终端设备展示图中数据流向的清晰度。
本申请实施例的一种实现方式中,标识为哈希值,本实施例以应用于深度学习框架对应的计算图作为示例,基于深度学习计算图的特点,因此可以合并至少两个子图中哈希值相同的子图,以降低计算图包括的节点数量以及边数量,当所得到的图中包括聚合时,由于一个聚合通过一组节点和边的组合指示一种计算功能,因此可以将指示一个聚合的输入的边确定为第一边,而指示一个聚合的输出的边确定为第二边,然后再在多条第一边和多条第二边上添加端口,将多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口确定为第三端口,并且合并多个第三端口。其次,将多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口确定为第四端口,并且合并多个第四端口,基于合并后的端口,以正交边路由的方式布局生成第二图。具体正交边路由的方式与前述申请实施例中描述的类似,在此不再赘述。
在该实施方式中,首先将哈希值相同的至少两个子图进行合并,降低第二图包括的节点数量以及边数量,由此提升图处理的效率,由于哈希值相同的子图是相似的,因此合并不影响图中的数据流向,因此还可以提升终端设备展示图中数据流向的清晰度以及完整度,其次,通过合并同一聚合,且指示输入来自相同的节点的边上的端口,以及合并同一聚合且指示输出向同一个节点的边上的端口,合并后的端口能够将聚合外部与聚合内部分割,由于每个聚合之间会有交错复杂的边,因此通过合并后的端口分别对聚合外部与聚合内部进行布局,能够进一步地提升展示图中数据流向的清晰度。
本申请实施例的一种实现方式中,标识为哈希值,本实施例以应用于深度学习框架对应的计算图作为示例,基于深度学习计算图的特点,因此可以合并至少两个子图中哈希值相同的子图,以降低计算图包括的节点数量以及边数量,以及确定第一图中出度或入度大于第一阈值的节点为第一节点,然后为第一节点分配一个第一端口以及第二端口,其中,第一端口为数据输入每个第一节点的边经过每个第一节点的端口,而第二端口为数据输出每个第一节点的边经过每个第一节点的端口,根据合并后所生成图中包括的所有边,合并经过同一第一端口的多条边,合并经过同一第二端口的多条边,以生成第二图。其中,第一阈值可以指示节点数据流向的出度,还可以指示节点数据流入的如度,即大于第一阈值说明该节点的出度已经超出预设出度,或者该节点的入度已经超出预设入度,均会导致该节点的数据流向较多,因此图中所展示的边也较多,其次,第一阈值的具体取值可以为3、5或者4等,第一阈值的具体数据需要根据计算图的实际情况预先确定,此处不做限定。进一步地,当所得到的图中包括聚合时,由于一个聚合通过一组节点和边的组合指示一种计算功能,因此可以将指示一个聚合的输入的边确定为第一边,而指示一个聚合的输出的边确定为第二边,然后再在多条第一边和多条第二边上添加端口,将在多条第一边对应同一聚合,且指示输入来自相同的节点的边上的端口确定为第三端口,并且将合并多个第三端口,其次,将多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口确定为第四端口,并且合并多个第四端口,基于合并后的端口,以正交边路由的方式布局生成第二图。具体正交边路由的方式与前述申请实施例中描述的类似,在此不再赘述。
在该实施方式中,首先将哈希值相同的至少两个子图进行合并,降低第二图包括的节点数量以及边数量,由此提升图处理的效率,由于哈希值相同的子图是相似的,因此合并不影响图的结构和表达的计算逻辑,图中数据流向的清晰度以及完整度。其次,由于第一节点为出度或入度大于第一阈值的节点,因此从第一节点输出或输入的数据流向较多,为第一节点分配第一端口以及第二端口,将数据输入经过第一端口的边,且数据输出经过第二端口的边进行合并,进一步地提升终端设备展示图中数据流向的清晰度。再次,通过合并同一聚合,且指示输入来自相同的节点的边上的端口,以及合并同一聚合且指示输出向同一个节点的边上的端口,合并后的端口能够将聚合外部与聚合内部分割,由于每个聚合之间会有交错复杂的边,因此通过合并后的端口分别对聚合外部与聚合内部进行布局,能够进一步地提升展示图中数据流向的清晰度。
本申请实施例的第二方面提供了一种图处理装置,该图处理装置包括:获取模块,用于获取第一图的至少两个子图,其中,每个子图包括第一图中的多个节点和节点之间的边;计算模块,用于基于至少两个子图中,每个子图包括的节点和边计算至少两个子图各自的标识;合并模块,用于合并至少两个子图中标识相同的子图;输出模块,用于输出合并后生成的第二图。
本申请实施例的一种实现方式中,标识为哈希值,每个子图的数据指示每个子图中的节点和边;计算模块,具体用于对于至少两个子图中的每个子图,基于每个子图中的多个节点各自对应的哈希值和每个子图中的多条边对应的哈希值,计算每个子图对应的哈希值。
本申请实施例的一种实现方式中,每个子图中,一个节点对应的哈希值与节点的属性有关;每个子图中,一条边对应的哈希值与每个子图中边指示的连接关系有关。
本申请实施例的一种实现方式中,标识为哈希值;合并模块,具体用于合并至少两个子图中哈希值相同的子图;以及添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,每个第一节点为第一图中出度或入度大于第一阈值的节点,指示数据输入每个第一节点的边经过每个第一节点的第一端口,指示数据输出每个第一节点的边经过每个第一节点的第二端口;对多个第一节点执行以下操作以生成第二图:合并经过同一第一端口的多条边,合并经过同一第二端口的多条边。
本申请实施例的一种实现方式中,第二图是以正交边路由的方式布局的。
本申请实施例的一种实现方式中,标识为哈希值;合并模块,具体用于合并至少两个子图中哈希值相同的子图;以及在多条第一边和多条第二边上添加端口,其中,每条第一边指示一个聚合的输入,每条第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;合并添加的多个端口中的多个第三端口,第三端口为多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,第四端口为多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;基于合并后的端口,以正交边路由的方式布局所述第二图。
本申请实施例的一种实现方式中,标识为哈希值;合并模块,具体用于合并至少两个子图中哈希值相同的子图;添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,每个第一节点为第一图中出度或入度大于第一阈值的节点,指示数据输入每个第一节点的边经过每个第一节点的第一端口,指示数据输出每个第一节点的边经过每个第一节点的第二端口;合并经过同一第一端口的多条边,合并经过同一第二端口的多条边;以及在多条第一边和多条第二边上添加端口,其中,每条第一边指示一个聚合的输入,每条第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;合并添加的多个端口中的多个第三端口,第三端口为多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,第四端口为多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;基于上述一个或多个合并步骤的结果,以正交边路由的方式布局第二图。
本申请实施例的第三方面,提供一种终端设备,该终端设备可以为上述方法设计中的图处理装置,或者,为设置在图处理装置中的芯片。该终端设备包括:处理器,与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面及其任意一种可能的实施方式中图处理装置所执行的方法。可选地,该终端设备还包括存储器。可选地,该终端设备还包括通信接口,处理器与通信接口耦合。
当终端设备为图处理装置时,该通信接口可以是收发器,或,输入/输出接口。
当终端设备为设置于图处理装置中的芯片时,该通信接口可以是输入/输出接口。
可选地,该收发器可以为收发电路。可选地,该输入/输出接口可以为输入/输出电路。
本申请实施例的第四方面,提供一种服务器,该服务器可以为上述方法设计中的图处理装置,或者,为设置在图处理装置中的芯片。该服务器包括:处理器,与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面及其任意一种可能的实施方式中图处理装置所执行的方法。可选地,该服务器还包括存储器。可选地,该服务器还包括通信接口,处理器与通信接口耦合。
当该服务器置为图处理装置时,该通信接口可以是收发器,或,输入/输出接口。
当该服务器为设置于图处理装置中的芯片时,该通信接口可以是输入/输出接口。
可选地,该收发器可以为收发电路。可选地,该输入/输出接口可以为输入/输出电路。
本申请实施例的第五方面,提供了一种程序,该程序在被处理器执行时,用于执行第一方面及其可能的实施方式中的任一方法。
本申请实施例的第六方面,提供了一种存储一个或多个计算机的计算机程序产品(或称计算机程序),当计算机程序产品被该处理器执行时,该处理器执行上述第一方面或第一方面任意一种可能实施方式中的方法。
本申请实施例的第七方面,提供了一种芯片,该芯片包括至少一个处理器,用于支持终端设备实现上述第一方面或第一方面任意一种可能的实施方式中所涉及的功能。在一种可能的设计中,该芯片系统还可以包括存储器,至少一个处理器与至少一个存储器通信连接,至少一个存储器中存储有指令,用于保存该终端设备以及服务器必要的程序指令和数据。可选的,所述芯片系统还包括接口电路,所述接口电路为所述至少一个处理器提供程序指令和/或数据。
本申请实施例的第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得终端设备执行上述第一方面及其可能的实施方式中的任一方法。
需要说明的是,本申请第二方面至第八方面的实施方式所带来的有益效果,以及对各方面的实施方式的说明可以参照第一方面的实施方式进行理解,因此没有重复赘述。
通过本申请提供的技术方案,可以获取第一图的至少两个子图,基于至少两个子图中,每个子图包括的节点和边计算至少两个子图各自的哈希值,合并至少两个子图中哈希值相同的子图,以生成第二图,并输出第二图,由此降低第二图包括的节点数量以及边数量,从而提升图处理的效率,其次,由于合并不影响图的结构和表达的计算逻辑,因此还可以提升图中数据流向的清晰度以及完整度。
附图说明
图1为本申请实施例的计算图的实施例示意图;
图2为本申请实施例的系统架构示意图;
图3为本申请实施例中产品实现的架构示意图;
图4为本申请实施例中节点的一个实施例示意图;
图5为本申请实施例中边的一个实施例示意图;
图6为本申请实施例中频繁子图结构的一个实施例示意图;
图7为本申请实施例中简单图与复合图一个实施例示意图
图8为本申请实施例中跨聚合的边一个实施例示意图;
图9为本申请实施例中图处理的方法一个实施例示意图;
图10为本申请实施例中计算图一个实施例示意图;
图11为本申请实施例中图处理的方法另一实施例示意图;
图12为本申请实施例中计算图另一实施例示意图;
图13为本申请实施例中BERT网络计算图一个实施例示意图;
图14为本申请实施例中图处理的方法另一实施例示意图;
图15为本申请实施例中端口一个实施例示意图;
图16为本申请实施例中合并端口一个实施例示意图;
图17为本申请实施例中图处理的方法另一个实施例示意图;
图18为本申请实施例中图处理装置一个实施例示意图;
图19为本申请实施例中图处理装置一个实施例的结构示意图。
具体实施方式
本申请实施例提供了一种图处理的方法,系统以及装置,可以获取第一图的至少两个子图,每个子图包括第一图中的多个节点和节点之间的边,然后计算至少两个子图中每个子图包括的节点和边计算至少两个子图各自的标识,将至少两个子图中标识相同的子图进行合并,以生成第二图,然后输出合并后生成的第二图,由此降低第二图包括的节点数量以及边数量,从而提升图处理的效率,其次,由于合并不影响图的结构和表达的计算逻辑,因此还可以提升图中数据流向的清晰度以及完整度。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请中所有节点、图以及边的名称仅仅是本申请为描述方便而设定的名称,在实际应用中的名称可能不同,不应理解本申请限定各种节点、图以及边的名称,相反,任何具有和本申请中用到的节点、图以及边具有相同或类似功能的名称都视作本申请的方法或等效替换,都在本申请的保护范围之内,以下不再赘述。
为了更好地理解本申请实施例公开的一种图处理的方法及相关装置,下面先对本发明实施例所使用的系统架构进行描述。本申请实施例可以应用于模型结构可视化对应的模块,请参阅图2,图2为本申请实施例的系统架构示意图,如图所示,用户在深度学习实践过程中,例如,编写代码构建模型以及训练模型的过程中,可以通过模型计算图的可视化来发现存在的问题,因此通过本申请实施例所提供的图处理的方法,能够对模型结构进行准确、清晰的展示,从而使用户更便捷的进行训练的调试和调优。
进一步地,本申请实施例还可以作为开源软件中,网络(web)服务中的一个图处理模块的实现代码,请参阅图3,图3为本申请实施例中产品实现的架构示意图,A1用于指示图处理模块,图处理模块首先发出请求,基于该请求从服务器或主机目录中读取特定格式的初始计算图数据,并在浏览器的web服务中通过本申请实施例所提供的图处理的方法,对初始计算图数据进行计算、渲染以及展示,基于所展示的图数据,用户可持续进行交互,调整展示形态。应理解,在实际应用中,需要提前配置统一的计算图数据存储和解析格式,然后采用本申请实施例所提供的方法进行计算图处理。
通过将深度学习框架生成的计算图可视化,有助于用户检查自己编写的代码是否符合心目中的模型结构、在模型训练过程中定位问题的出现,然而计算图通常包括层级聚合以及数据量庞大的节点以及边,因此计算图中节点以及边的布局杂乱,由此会降低计算图处理的效率,从而降低终端设备展示计算图中数据流向的清晰度以及完整度。
下面对本申请实施例涉及到的一些术语或概念进行解释,以便于本领域技术人员理解。
一、计算图(computational graph)。
计算图是用来表示数据流向和计算操作的有向图,计算图中包括节点(node)以及边(edge)。
二、节点。
计算图中的节点都对应着操作(Operation)或者变量(Variable),变量可以把自己的值递送给操作,而操作通常指示一种计算逻辑,例如赋值,加,取整,与,或等等,因此,计算图中的一些节点都定义了计算图中变量的一个函数,输入至节点的值以及从节点输出的值有多种数据形式,例如张量(tensor),张量指示多维数组,因此张量包括但不限于标量、矢量、矩阵以及高阶的张量。为了便于理解,请参阅图4,图4为本申请实施例中节点的一个实施例示意图,如图所示,B1至B11均用于指示节点。
三、边。
边用于指示计算图中节点之间的数据流向。一条边的两端各自连接一个节点,数据就从边一端连接的节点流向边另一端的节点。因此,在有向图中,边是有方向的,例如,一条边两端分别连接A节点和B节点,边的方向从A节点指向B节点,则数据从A节点流向B节点。而对于一个节点,一条边的方向指向这个节点,就表示数据输入(或称为“流入”)这个节点,边的方向从这个节点指向其他节点,则表示数据输出(或称为“流出”)这个节点。
本申请的方案中,在生成第二图的过程中涉及到在边上添加端口,端口可以理解为数据的输入或者输出的具象化表示,所以一个端口可以标在边上的任意位置,例如边的一端(也就是边与节点的交点),再例如边上靠近边的一端的位置。
为了便于理解,请参阅图5,图5为本申请实施例中边的一个实施例示意图,如图所示,C1至C5均用于指示节点,C6至C9均用于指示边,其中边C6为节点C1至节点C2之间的数据流向。边C7为节点C2至节点C3之间的数据流向。边C8为节点C2至节点C4之间的数据流向。边C9为节点C2至节点C5之间的数据流向。由此可知,边是具有方向的。
四、频繁子图。
频繁子图为计算图中重复出现的子图结构,频繁子图即在起始节点(startHubNude)与终止节点(endHubNude)之间的多条并行数据流向路径。为了便于理解,请参阅图6,图6为本申请实施例中频繁子图结构的一个实施例示意图,如图所示,D1用于指示起始节点,D2用于指示终止节点,在起始节点于终止节点之间有多条并行的数据流向路径,这些数据流向路径中所经过的节点以及边即组成频繁子图,本实施例中所描述的子图即为所介绍的频繁子图。
五、简单图(simple graph)与复合图(compound graph)。
在计算图的可视化界面中,若具有连接关系的节点分属于不同层级的聚合(scope),此时该计算图被称为复合图,聚合即为包含子节点的集合,其次,若无前述按层级划分的聚合,则该计算图被称为简单图。为了便于理解,请参阅图7,图7为本申请实施例中简单图与复合图一个实施例示意图,如图所示,图7中(A)图用于指示简单图,而图7中(B)图用于指示复合图,E1至E4用于指示聚合,E5以及E6用于指示子聚合。具体地,图7中(A)图中每个节点没有形成聚合,即不会构成构成层级节点的聚合关系,而图7中(B)图中一个聚合可能包含多个子聚合或子节点,例如聚合E1包括2个子节点,聚合E2包括3个子节点,聚合E3包括2个子节点,而聚合E4包括一个子节点,子聚合E5以及子聚合E6,其中子聚合E5包括3个子节点,而子聚合E6包括4个子节点,通过多个聚合之间的数据流向可以构成层级节点的聚合关系。
六、跨聚合的边。
跨聚合的边为在复合图中,聚合内的节点与聚合外的节点之间的数据流向。为了便于理解,请参阅图8,图8为本申请实施例中跨聚合的边一个实施例示意图,如图所示,F1至F3用于指示节点,F4以及F5用于指示边。图中包括聚合A以及聚合2,且聚合1中包括节点F1以及节点F2,聚合2中包括节点F3,由于聚合A以及聚合2为不同的集合,因此对于节点F1和节点F3之间的数据流向对应的边F4,即为跨聚合的边,而节点F1以及节点F2属于相同聚合,因此对于节点F1和节点F2之间的数据流向对应的边F2,不为跨聚合的边。
基于此,为了解决上述问题,本申请实施例提供了一种图处理的方法,用于提升终端设备展示图中数据流向的清晰度以及完整度。为了便于理解,本申请实施例以应用于深度学习框架对应的计算图作为示例进行说明,应理解,在实际应用中,本申请实施理所提供的图处理的方法可以应用于包括节点以及边的各种图中,具体此处不做限定。下面对本申请实施例使用的图处理的方法进行详细描述,请参阅图9,图9为本申请实施例中图处理的方法一个实施例示意图,如图所示,图处理的方法包括如下步骤。
S101、获取第一图。
本实施例中,图处理装置获取第一图。示例性地,若应用于服务器,即图处理装置为服务器,那么服务器可以从服务器内存中读取深度学习框架保存的第一图(计算图数据)。其次,若应用于终端设备,即图处理装置为终端设备,那么终端设备可以从终端设备内存中读取深度学习框架保存的第一图,或者接收从服务器所发送的第一图。应理解,在实际应用中,图处理装置可以为服务器也可以为终端设备,本实施例中不对具体图处理装置以及具体获取第一图方式进行限定。具体地,第一图包括边以及节点,并且在本实施例中,边用于表示不同节点之间数据的流向。
S102、获取第一图的至少两个子图。
本实施例中,由于复杂深度学习模型所生成的第一图通常包含有频繁子图,若将包括频繁子图的第一图展示于终端设备,会降低终端设备对第一图的处理效率,其次,也不利于用户快速地找到关键子区域。
因此,基于深度学习计算图的特点,图处理装置可以从第一图中确定出度大于第二阈值的节点,本实施例中定义该节点为起始节点。具体地,第二阈值用于指示节点数据流向的出度,即大于第二阈值说明该节点的出度已经超出预设出度,从而导致该节点的数据流向较多,因此图中所展示的边也较多,其次,第二阈值的具体取值可以为2、5或者8等,第二阈值的具体数据需要根据第一图的实际情况预先确定,此处不做限定。进一步地,通过起始节点的数据流向所经过的路径,确定对应的终止节点,通过起始节点以及终止节点确定在两个节点之间的所有子图,由于初始节点的出度大于第二阈值,因此起始节点以及终止节点之间所有子图数量至少为两个,且每个子图包括边以及节点。
S103、对于至少两个子图中的每个子图,计算每个子图中节点对应的标识和每个子图中边对应的标识。
本实施例中,标识用于指示子图的特征,或者标识为子图的哈希(hash)值,具体此处不做限定。由于本实施例以应用于深度学习框架对应的计算图作为示例,以标识为子图的哈希值作为一个示例进行介绍,基于深度学习计算图的特点,图处理装置可以计算计算图的子图中节点以及边对应的哈希值,由于节点对应的哈希值可以指示节点的特征,而边对应的哈希值可以指示边的特征,因此通过哈希值可以区别特征不同的节点以及边。
示例性地,以对一个子图计算节点对应的哈希值以及边对应的哈希值作为示例进行说明,下面分别介绍节点对应的哈希值以及边对应的哈希值的计算。
1、节点对应的哈希值。
首先,对子图中所有的节点计算哈希值,具体地,以子图中一个节点n为例,基于深度学习计算图的特点,节点对应有多种节点属性,且节点对应的节点属性包括但不限于变量类型、参数类型、所属聚合等。因此首先需要获取到节点n的节点属性,本实施例中节点属性包括节点n对应的节点类型,节点n中被隐藏的输入节点的数量,节点n中被隐藏的输入节点的类型,节点n中被隐藏的输出节点的数量,节点n中被隐藏的输出节点的类型以及节点n的附属节点的数量和类型,其中附属节点包括常量(const)节点以及变量(parameter)节点。
然后,对节点n的每个节点属性通过Time33哈希算法,得到每个节点属性对应的哈希值,然后将每个节点属性对应的哈希值相加得到相加后的节点属性哈希值,由于节点对应多个节点属性,可能会出现哈希值溢出的问题,为了防止溢出,再对相加后的边哈希值进行大质数(BIG_PRIMITIVE)取模从而得到节点n对应的哈希值node_hash[n]。具体地,本实施例中大质数为10000019,应理解,在实际应用中,具体大质数的对应数据应根据实际情况灵活确定,具体此处不做限定。
进一步地,由于一个子图包括至少两个节点,因此通过与前述实施例类似的方式确定每个节点对应的哈希值,并且将每个节点对应的哈希值相加得到相加后的节点哈希值,若子图中节点的数量较多,可能会出现哈希值溢出的问题,为了防止溢出,再对相加后的节点哈希值进行大质数取模从而得到该子图中节点对应的哈希值。
2、边对应的哈希值。
首先,对子图中所有的边计算哈希值,一条边对应的哈希值与每个子图中边指示的连接关系有关,即每个子图中边对应的哈希值是对每个子图中边所指示的节点与节点之间的连接关系进行计算得到的,且节点与节点之间的连接关系是有方向的。具体地,以子图中一条边i为例,且边i表示节点A向节点B的数据流向,即对于边i而言,数据输出的节点为节点A,数据输入的节点为节点B,那么可以将节点A以及节点B编码成字符串“[sourcetype]->[target type]”,其中[source type]用于指示边i的节点A的类型,而[targettype]用于指示边i的节点B的类型,且[source type]->[target type]”用于指示边i的数据流向为从节点A至节点B,以确保数据有序性。然后,对字符串“[source type]->[targettype]”使用Time33哈希算法得到边i对应的哈希值edge_hash[i],其中Time33哈希算法具体用于将字符串映射到数字。
进一步地,由于一个子图包括至少两条边,因此通过与前述实施例类似的方式确定每条边对应的哈希值,并且将每条边对应的哈希值相加得到相加后的边哈希值,若子图中边的数量较多,可能会出现哈希值溢出的问题,为了防止溢出,再对相加后的边哈希值进行大质数取模从而得到该子图中边对应的哈希值。
可以理解的是,本实施例中以标识为哈希值作为示例进行介绍,但在实际应用中,标识还可以将子图的节点和边与预设的子图库做比对,从而将子图匹配出一个标识,类似的子图的结构对应一个标识,因此该标识可以指示子图的特征,因此通过该标识也可以区别特征不同的子图。或者,基于节点的属性的统计值,和边的数量以及连接关系,通过取整,整除等其他计算逻辑,获取一个数值,将该数值作为标识,该标识也可以指示子图的特征,通过该标识可以区别特征不同的子图。具体此处不对标识进行限定。另外,标识是哈希值的情况下,本申请对计算哈希值使用的哈希算法也不做特别限制,只要可以指示不同结构的子图,且相似(包括相同的情况)的子图的哈希值相同即可。
S104、基于每个子图中节点对应的标识和每个子图中边对应的标识,计算每个子图对应的标识。
本实施例中,以标识为哈希值作为示例进行介绍,图处理装置通过步骤S103可以得到每个子图中节点对应的哈希值和每个子图中边对应的哈希值,然后将所得到的节点对应的哈希值以及边对应的哈希值相加,并进行大质数取模,从而得到每个子图对应的哈希值。
示例性地,以第一图中包括子图A,子图B以及子图C作为一个示例,子图A,子图B以及子图C通过步骤S103均可以得到每个子图中节点对应的哈希值以及边对应的哈希值,然后将所得到的节点对应的哈希值以及边对应的哈希值相加,并进行大质数取模,得到子图A对应的哈希值H(A),子图B对应的哈希值为哈希值H(B),以及子图C对应的哈希值为哈希值H(C)。
S105、合并至少两个子图中标识相同的子图,以生成第二图。
本实施例中,以标识为哈希值作为示例进行介绍,由于哈希值相同的子图是相似的,因此图处理装置可以将哈希值相同的至少两个子图进行合并生成第二图,并且第二图用于展示于终端设备,由此可以减少在终端设备展示第二图中的节点以及边数量。其中,本实施例中所描述的合并并非将子图完全合并,而是将子图进行堆叠,使得所生成的第二图中子图数量减少,但子图中所包括的数据并不会因为合并而减少。示例性地,以第一图中包括子图A,子图B以及子图C作为一个示例,通过步骤S104得到子图A对应的哈希值H(A),子图B对应的哈希值为哈希值H(B),以及子图C对应的哈希值为哈希值H(C),若其中哈希值H(A)和哈希值H(B)为相同哈希值,那么可以将子图A以及子图B进行合并生成第二图,由此所展示的第二图中仅将子图A以及子图C对应结构示出,减少了计算图中展示的节点以及边的数量。
S106、输出合并后生成的第二图。
本实施例中,若本实施例应用于服务器,则服务器可以通过前述实施例的方式生成第二图,并且向终端设备发送所生成的第二图,使得终端设备展示第二图,或者直接由服务器展示第二图。其次,若应用于终端设备,则终端设备可以直接通过前述实施例的方式生成第二图,并且展示所生成的第二图,或者接受服务器所发送的第二图,并展示所接收的第二图。第二图具体地展示方式再次不做限定。
本申请实施例所提供的方案能够准确、可以在同一聚合层面内部寻找同层级的所有频繁子图进行堆叠,并可以递归地进行层层堆叠,准确、完整的识别频繁子图结构,并且在保证连接关系的准确性的前提下,减少计算图中的节点以及边的展示数目。示例性地,以基于开源计算框架MindSpore生成的BERT预先训练(pretrain)网络计算图以及mobilenetV2网络计算图作为一个示例进行说明书,请参阅表1,表1为BERT_pretrain网络计算图对应的详细信息,以及mobilenetV2网络计算图对应的详细信息。
表1
网络 节点 原图节点数 堆叠后节点数 效果
mobilenetV2 Optimizer_Momentum 650 33 2秒内展示图
BERT_pretrain Optimizer_Lamb 16723(崩溃) 99 5秒内展示图
其中,通过表1可以看出前述两个计算图为通过图处理之前,原计算图节点数量较多,对于BERT_pretrain网络计算图中Optimizer_Lamb节点而言,由于原图节点数为16723,节点数过多直接导致终端设备展示该节点时崩溃。而通过本申请实施例进行频繁子图堆叠处理后,对于BERT_pretrain网络计算图中Optimizer_Lamb节点而言,节点数量从导致崩溃的16723降低至99,且终端设备能够在5秒内展示该图。其次,对于mobilenetV2网络计算图中Optimizer_Momentum节点而言,节点数量从650降低至33,且终端设备能够在2秒内展示该图。因此可知,通过本申请实施例所提供的图处理的方法,可以使得计算图中节点数量减少,还可以提升终端设备展示计算图的效率。应理解,表1示例仅用于理解本方案,具体需要根据实际情况灵活确定。
进一步地,通过前述实施例减少节点以及边的展示数目得到第二图,并且采用正交式布局作为基本布局样式,其中,正交式布局具体为边不相互交叉,相同深度的所有节点在同一水平线上,且同一层级的节点应该有一定的空隙。然而,规模计算图通常包括数量较多的节点和边,在通过前述实施例减少节点以及边的展示数目的基础上,由于边以及节点的数量仍然较多,通过正交式布局作为基本布局样式,仍存在所展示计算图不够清晰的问题,导致用户无法基于该图的进行训练分析以及调试。为了便于理解,请参阅图10,图10为本申请实施例中计算图一个实施例示意图,如图所示,G1用于指示乘法指令(mul)算子,和mul算子G1相连的边有10条,若将10条边均在计算图中展示,由于与mul算子G1相连的边过多,计算图无法清晰的展示于mul算子G1相连边的关系以及mul算子G1数据流向,不利于计算图的分析。
因此,为解决前述图10中所带来的问题,本申请实施例提供了另一种图处理的方法,本申请实施例中以标识为哈希值作为示例进行介绍,请参阅图11,图11为本申请实施例中图处理的方法另一实施例示意图,如图所示,图处理的方法包括如下步骤。
S201、获取第一图。
本实施例中,图处理装置获取第一图的方式与步骤S101类似,在此不再赘述。
S202、获取第一图的至少两个子图。
本实施例中,图处理装置获取第一图的至少两个子图的方式与步骤S102类似,在此不再赘述。
S203、对于至少两个子图中的每个子图,计算每个子图中节点对应的哈希值和每个子图中边对应的哈希值。
本实施例中,图处理装置对于至少两个子图中的每个子图,计算每个子图中节点对应的哈希值和每个子图中边对应的哈希值的方式,与步骤S103类似,在此不再赘述。
S204、基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,计算每个子图对应的哈希值。
本实施例中,图处理装置基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,计算每个子图对应的哈希值的方式,与步骤S104类似,在此不再赘述。
S205、合并至少两个子图中哈希值相同的子图。
本实施例中,图处理装置合并至少两个子图中哈希值相同的子图的方式与步骤S105中介绍的方式类似,在此不再赘述。
S206、添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,每个第一节点为第一图中出度或入度大于第一阈值的节点,指示数据输入每个第一节点的边经过每个第一节点的第一端口,指示数据输出每个第一节点的边经过每个第一节点的第二端口。
本实施例中,图处理装置合并至少两个子图中哈希值相同的子图后,可以遍历合并后所生成图中的所有节点,确定出度或入度大于第一阈值的节点,这样的节点被确定为第一节点,然后为第一节点分配一个第一端口以及第二端口,其中,第一端口为数据输入每个第一节点的边经过每个第一节点的端口,而第二端口为数据输出每个第一节点的边经过每个第一节点的端口。具体地,第一阈值可以指示节点数据流向的出度,还可以指示节点数据流入的入度,即大于第一阈值说明该节点的出度已经超出预设出度,或者该节点的入度已经超出预设入度,均会导致该节点的数据流向较多,因此图中所展示的边也较多,其次,第一阈值的具体取值可以为3、5或者4等,第一阈值的具体数据需要根据计算图的实际情况预先确定,此处不做限定。
S207、合并经过同一第一端口的多条边,合并经过同一第二端口的多条边,以生成第二图。
本实施例中,图处理装置根据合并后所生成图中包括的所有边,合并经过同一第一端口的多条边,合并经过同一第二端口的多条边,以生成第二图。
可选地,第二图是以正交边路由的方式布局的。具体地,先采用端口约束优化布局算法基于第一端口以及第二端口,以整体的正交边路由布局为目标,对第一端口以及第二端口的位置以及排序进行约束优化,计算得出第一端口以及第二端口的位置坐标,由此完成正交边路由的布局,以生成第二图。其中,正交布局具体为节点周边的连线夹角为90度,而边路由为图中具体连线的排布以及走向。
为了便于理解,请参阅图12,图12为本申请实施例中计算图另一实施例示意图,如图所示,H1用于指示mul算子,通过将图10所示出的图中,数据输入经过第一端口的边且数据输出经过第二端口的边进行合并,并通过正交边路由的方式布局生成图12,减少了终端设备展示的图中连接边的数量,从而能够让有着较多节点和边的大规模计算图可以清晰展示,进一步提升计算图的清晰度,便于用户可以基于该图的进行训练分析以及调试。
示例性地,对深度双向交互编码(Bidirectional Encoder Representation fromTransformers,BERT)网络的计算图采用前述实施例对应的方法,通过正交式边路由布局进行得到可视化的图,请参阅图13,图13为本申请实施例中BERT网络计算图一个实施例示意图,如图所示,针对BERT这种大规模计算图,通过前述方法进行图处理后,所得到的图从左到右整体的数据流向完整且清晰,因此终端设备展示该图后,用户可交互点击其中的算子,查看更多更细小的子结构。应理解,图12以及图13对应示例仅用于理解本方案,具体需要根据实际情况灵活确定。
S208、输出合并后生成的第二图。
本实施例中,图处理装置输出合并后生成的第二图的方式与步骤S106类似,在此不再赘述。
再进一步地,通过前述实施例提升计算图的清晰度得到第二图之后,由于具有连接关系的节点可能分属于不同层级的聚合,聚合为包含一部分子节点的集合,即在计算图中可以包括聚合信息,请再次参阅图7,通过图7可知,当计算图中存在聚合时,由于聚合中包括至少一个节点,因此每个聚合之间会有交错复杂的边,从而导致为复合图的计算图仍旧存在所展示计算图不够清晰的问题,因此,为解决前述图7中所示出的复合图展示时对应的问题,本申请实施例提供了另一种图处理的方法,本申请实施例中以标识为哈希值作为示例进行介绍,请参阅图14,图14为本申请实施例中图处理的方法另一实施例示意图,如图所示,其中,第四图包括聚合,图处理的方法包括如下步骤。
S301、获取第一图。
本实施例中,图处理装置获取第一图的方式与步骤S201类似,在此不再赘述。
S302、获取第一图的至少两个子图。
本实施例中,图处理装置获取第一图的至少两个子图的方式与步骤S202类似,在此不再赘述。
S303、对于至少两个子图中的每个子图,计算每个子图中节点对应的哈希值和每个子图中边对应的哈希值。
本实施例中,图处理装置对于至少两个子图中的每个子图,计算每个子图中节点对应的哈希值和每个子图中边对应的哈希值的方式,与步骤S203类似,在此不再赘述。
S304、基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,计算每个子图对应的哈希值。
本实施例中,基于每个子图中节点对应的哈希值和每个子图中边对应的哈希值,计算每个子图对应的哈希值的方式,与步骤S204类似,在此不再赘述。
S305、合并至少两个子图中哈希值相同的子图。
本实施例中,图处理装置合并至少两个子图中哈希值相同的子图的方式与步骤S205类似,在此不再赘述。
S306、添加多个第一节点中每个第一节点的第一端口以及第二端口。
本实施例中,图处理装置添加多个第一节点中每个第一节点的第一端口以及第二端口的方式与步骤S206类似,在此不再赘述。
S307、合并经过同一第一端口的多条边,合并经过同一第二端口的多条边。
本实施例中,图处理装置合并经过同一第一端口的多条边,合并经过同一第二端口的多条边的方式,与步骤S207类似,在此不再赘述。
S308、在多条第一边和多条第二边上添加端口,其中,每条第一边指示一个聚合的输入,每条第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能。
本实施例中,由于计算图中存在聚合,图处理装置合并经过同一第一端口的多条边,合并经过同一第二端口的多条边之后,所得到的图中包括聚合。因此图处理装置可以先根据聚合所包括的节点,以及聚合之外的节点之间数据流向确定为第一边以及第二边,第一边以及第二边均为图8中所介绍的跨聚合的边。具体地,第一边指示一个聚合的数据输入,而第二边指示一个聚合的数据输出,一个聚合通过一组节点和边的组合可以指示一种计算功能。
进一步地,图处理装置确定第一边以及第二边之后,还可以在第一边以及第二边上添加端口。应理解,对于一个聚合而言,端口的数量与该聚合对应的第一边以及第二边的数量相同,例如,一个聚合的有3个数据输入,那么即可确定3条第一边,而一个聚合的有2个数据输出,那么即可确定2条第二边,那么图处理装置所添加的端口为5个。为了便于理解,请参阅图15,图15为本申请实施例中端口一个实施例示意图,如图所示,I1以及I2用于指示第一边,I3以及I4用于指示第二边,I5至I8用于指示端口。图中包括聚合以及6个节点,对于该聚合而言,节点1、节点2以及节点6均不属于该聚合,而该聚合中包括节点3、节点4以及节点5,通过前述实施例可知,节点1与节点4之间数据流向对应边I1,边I1指示聚合的数据输入,因此边I1为第一边,同理可知,节点2与节点3之间数据流向对应的边I2可以指示聚合的数据输入,因此边I2为第一边。其次,节点4与节点6之间数据流向对应边I3,边I3指示聚合的数据输出,因此边I3为第二边,同理可知,节点5与节点6之间数据流向对应的边I4可以指示聚合的数据输出,因此边I4为第一边,即可以确定2条第一边以及2条第二边。基于每条第一边以及第二边,在与聚合的交点处添加端口,即第一边I1与聚合的交点I5为端口,同理可知,第一边I2与聚合的交点I6为端口,第二边I3与聚合的交点I7为端口,第二边I4与聚合的交点I8为端口,即可以添加2条第一边以及2条第二边对应的4个端口。应理解,图15的示例仅用于理解本方案,具体第一边以及第二边需要根据图中节点数据流向关系的实际情况灵活确定,而添加的具体端口需要第一边以及第二边的根据实际情况灵活确定。
S309、合并添加的多个端口中的多个第三端口,第三端口为多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,第四端口为多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口。
本实施例中,图处理装置遍历聚合中的所有节点,将多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口确定为第三端口,并且合并多个第三端口。其次,将多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口确定为第四端口,并且合并多个第四端口。
为了便于理解,基于图15中的端口进行进一步地示例,请参阅图16,图16为本申请实施例中合并端口一个实施例示意图,如图所示,J1至J4用于指示端口,J5用于指示第四端口。图16中(A)图示出的为包括端口J1至端口J4的示例图,其中端口J3以及端口J4均与节点6连接,即聚合中的节点4与节点5的数据流向均指向节点6,即端口J3以及端口J4为2条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口,因此可以将端口J3以及端口J4进行合并,得到第四端口,从而得到图16中(B)图示出的为包括端口J1、端口J2以及第四端口J5的示例图。应理解,图16的示例仅用于理解本方案,具体第三端口以及第四端口需要根据聚合内的节点与聚合外的节点数据流向的实际情况灵活确定。
S310、基于合并后的端口,以正交边路由的方式布局第二图。
本实施例中,图处理装置基于合并后的端口,以正交边路由的方式布局第二图。具体地,首先将第一边以第三端口为界拆解为两段,并且将第二边以第四端口为界拆解为两段。若无第三端口或者第四端口,那么也可以以端口为界将第一边以及第二边拆解为两段,具体此处不做限定。为了便于理解,基于图16中的第四端口进行进一步地示例,请参阅图17,图17为本申请实施例中图处理的方法另一个实施例示意图,如图所示,K1以及K2用于指示端口,K3用于指示第四端口,K4,K5以及K6用于指示聚合外的边,K7至K9用于指示聚合内的边。根据端口K1将节点1至节点4的聚合数据输入对应的第一边拆解,从而得到边K4以及边K7,同理可知,根据端口K2可以得到边K5以及边K8。其次,根据第四端口K3可以将节点4以及节点5至节点6的聚合数据输出对应的第二边拆解,从而得到边K6以及边K9,然后采用端口约束优化布局算法,以聚合上的端口以及第四端口为界,在聚合内部与聚合内部外部分别进行节点和边的布局计算,同时约束调整节点以及端口的数量、位置和排序,从而生成第二图。具体正交边路由的布局方式在前述实施例中已进行介绍,在此不再赘述。
S311、输出合并后生成的第二图。
本实施例中,图处理装置输出合并后生成的第二图的方式与步骤S208类似,在此不再赘述。
通过前述实施例可知,本申请实施例在跨节点聚合的数据边中采用端口设计以及基于规则的边绑定,不但能够减少边的数量,还能够保留局部聚焦区域的完整数据流向。此外,对于聚合内外的连线进出处理,采用端口约束优化布局算法对聚合边界的节点以及端口位置和数量进行自适应的调整和限制,从而能够更通用地适应不同的计算图结构,从而能够在简化图布局的同时,尽可能的保留原有的局部数据连接关系。
应理解,前述实施例中步骤之间的步骤无时序限定,例如步骤S305与步骤S306以及步骤S307之间,可以先实施步骤S306以及步骤S307,再实施步骤S305。其次,例如步骤S306以及步骤S307,与步骤S308至步骤S310之间,可以先实施步骤S308至步骤S310,再实施步骤S306以及步骤S307,因此本实施例中的示例均可以根据实际情况进行步骤之间的时序调整,具体此处不做限定。
上述主要以方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是,图处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以基于上述方法示例对图处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
由此,下面对本申请中的图处理装置进行详细描述,请参阅图18,图18为本申请实施例中图处理装置一个实施例示意图,如图所示,图处理装置1800包括:
获取模块1801,用于获取第一图的至少两个子图,其中,每个子图包括第一图中的多个节点和节点之间的边;
计算模块1802,用于基于至少两个子图中,每个子图包括的节点和边计算至少两个子图各自的标识;
合并模块1803,用于合并至少两个子图中标识相同的子图;
输出模块1804,用于输出合并后生成的第二图。
在本申请的一些可选实施例中,标识为哈希值,每个子图的数据指示每个子图中的节点和边;
计算模块1802,具体用于对于至少两个子图中的每个子图,基于每个子图中的多个节点各自对应的哈希值和每个子图中的多条边对应的哈希值,计算每个子图对应的哈希值。
在本申请的一些可选实施例中,每个子图中,一个节点对应的哈希值与节点的属性有关;
每个子图中,一条边对应的哈希值与每个子图中边指示的连接关系有关。
在本申请的一些可选实施例中,标识为哈希值;
合并模块1803,具体用于合并至少两个子图中哈希值相同的子图;
以及添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,每个第一节点为第一图中出度或入度大于第一阈值的节点,指示数据输入每个第一节点的边经过每个第一节点的第一端口,指示数据输出每个第一节点的边经过每个第一节点的第二端口;
对多个第一节点执行以下操作以生成第二图:
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边。
在本申请的一些可选实施例中,第二图是以正交边路由的方式布局的。
在本申请的一些可选实施例中,标识为哈希值;
合并模块1803,具体用于合并至少两个子图中哈希值相同的子图;
以及在多条第一边和多条第二边上添加端口,其中,每条第一边指示一个聚合的输入,每条第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,第三端口为多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,第四端口为多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于合并后的端口,以正交边路由的方式布局第二图。
在本申请的一些可选实施例中,标识为哈希值;
合并模块1803,具体用于合并至少两个子图中哈希值相同的子图;
添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,每个第一节点为第一图中出度或入度大于第一阈值的节点,指示数据输入每个第一节点的边经过每个第一节点的第一端口,指示数据输出每个第一节点的边经过每个第一节点的第二端口;
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边;
以及在多条第一边和多条第二边上添加端口,其中,每条第一边指示一个聚合的输入,每条第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,第三端口为多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,第四端口为多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于上述一个或多个合并步骤的结果,以正交边路由的方式布局第二图。
本申请实施例中的图处理装置,可以部署于终端设备,也可以部署于服务器,还可以是应用于终端设备或服务器中的芯片或者其他可实现上述终端设备功能的组合器件、部件等。当图处理装置是终端设备时,计算模块以及合并模块可以由处理器执行代码来实现,例如处理器可以是某种型号的应用芯片等。当图处理装置是具有上述终端设备功能的部件时,计算模块以及合并模块可以由处理器执行代码来实现。当图处理装置是芯片系统时,计算模块以及合并模块可以是芯片系统的处理器。
具体地,请参阅图19,图19为本申请实施例中图处理装置一个实施例的结构示意图,如图19所示,图处理装置1900包括处理器1910,与所述处理器1910耦接的存储器1920,输入/输出端口1930。一些实现方式下,它们可以通过总线耦合在一起。图处理装置1900可以是服务器或者终端设备。其中,处理器1910可以是中央处理器(central processingunit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器1910可以是指一个处理器,也可以包括多个处理器。存储器1920可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM),处理器1910可以执行代码实现计算模块1802以及合并模块1803的功能。存储器1920也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1920还可以包括上述种类的存储器的组合。
存储器1920中存储有计算机可读指令,所述计算机可读指令执行前文描述的可能实施方式中的任一种方法。处理器1910执行计算机可读指令后可以按照计算机可读指令的指示进行相应的操作。此外,处理器1910执行存储器1920中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行服务器或者终端设备可以执行的全部操作,例如服务器在与图9和图11和图14对应的实施例中执行的操作。
输入/输出端口1930包括用于输出数据的端口,一些情况下还包括用于输入数据的端口。处理器1910可以通过执行代码调用该输入/输出端口1930输出第二图,一些情况下,处理器1910还可以通过执行代码调用该输入/输出端口1930从其他设备获取第一图的两个子图。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,工作过程的说明以及技术效果可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (17)

1.一种图处理的方法,其特征在于,包括:
获取第一图的至少两个子图,其中,每个所述子图包括所述第一图中的多个节点和节点之间的边;
基于所述至少两个子图中,每个所述子图包括的节点和边计算所述至少两个子图各自的标识;
合并所述至少两个子图中标识相同的子图;
输出合并后生成的第二图。
2.根据权利要求1所述的方法,其特征在于,所述标识为哈希值,每个所述子图的数据指示每个所述子图中的节点和边;
所述基于所述至少两个子图中,每个所述子图包括的节点和边计算所述至少两个子图各自的标识,包括:
对于所述至少两个子图中的每个子图,基于所述每个子图中的多个节点各自对应的哈希值和所述每个子图中的多条边对应的哈希值,计算所述每个子图对应的哈希值。
3.根据权利要求2所述的方法,其特征在于,所述每个子图中,一个节点对应的哈希值与所述节点的属性有关;
所述每个子图中,一条边对应的哈希值与所述每个子图中边指示的连接关系有关。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述标识为哈希值;
所述合并所述至少两个子图中标识相同的子图,包括:
合并所述至少两个子图中哈希值相同的子图;
以及添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,所述每个第一节点为所述第一图中出度或入度大于第一阈值的节点,指示数据输入所述每个第一节点的边经过所述每个第一节点的第一端口,指示数据输出所述每个第一节点的边经过所述每个第一节点的第二端口;
对所述多个第一节点执行以下操作以生成所述第二图:
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边。
5.根据权利要求4中所述的方法,其特征在于,所述第二图是以正交边路由的方式布局的。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述标识为哈希值;
所述合并所述至少两个子图中标识相同的子图,包括:
合并所述至少两个子图中哈希值相同的子图;
以及在多条第一边和多条第二边上添加端口,其中,每条所述第一边指示一个聚合的输入,每条所述第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,所述第三端口为所述多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,所述第四端口为所述多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于合并后的端口,以正交边路由的方式布局所述第二图。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述标识为哈希值;
所述合并所述至少两个子图中标识相同的子图,包括:
合并所述至少两个子图中哈希值相同的子图;
添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,所述每个第一节点为所述第一图中出度或入度大于第一阈值的节点,指示数据输入所述每个第一节点的边经过所述每个第一节点的第一端口,指示数据输出所述每个第一节点的边经过所述每个第一节点的第二端口;
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边;
以及在多条第一边和多条第二边上添加端口,其中,每条所述第一边指示一个聚合的输入,每条所述第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,所述第三端口为所述多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,所述第四端口为所述多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于上述一个或多个合并步骤的结果,以正交边路由的方式布局所述第二图。
8.一种图处理装置,其特征在于,包括:
获取模块,用于获取第一图的至少两个子图,其中,每个所述子图包括所述第一图中的多个节点和节点之间的边;
计算模块,用于基于所述至少两个子图中,每个所述子图包括的节点和边计算所述至少两个子图各自的标识;
合并模块,用于合并所述至少两个子图中标识相同的子图;
输出模块,用于输出合并后生成的第二图。
9.根据权利要求8所述的图处理装置,其特征在于,所述标识为哈希值,每个所述子图的数据指示每个所述子图中的节点和边;
所述计算模块,具体用于对于所述至少两个子图中的每个子图,基于所述每个子图中的多个节点各自对应的哈希值和所述每个子图中的多条边对应的哈希值,计算所述每个子图对应的哈希值。
10.根据权利要求9所述的图处理装置,其特征在于,所述每个子图中,一个节点对应的哈希值与所述节点的属性有关;
所述每个子图中,一条边对应的哈希值与所述每个子图中边指示的连接关系有关。
11.根据权利要求8至10中任一项所述的图处理装置,其特征在于,所述标识为哈希值;
所述合并模块,具体用于合并所述至少两个子图中哈希值相同的子图;
以及添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,所述每个第一节点为所述第一图中出度或入度大于第一阈值的节点,指示数据输入所述每个第一节点的边经过所述每个第一节点的第一端口,指示数据输出所述每个第一节点的边经过所述每个第一节点的第二端口;
对所述多个第一节点执行以下操作以生成所述第二图:
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边。
12.根据权利要求11所述的图处理装置,其特征在于,所述第二图是以正交边路由的方式布局的。
13.根据权利要求8至10中任一项所述的图处理装置,其特征在于,所述标识为哈希值;
所述合并模块,具体用于合并所述至少两个子图中哈希值相同的子图;
以及在多条第一边和多条第二边上添加端口,其中,每条所述第一边指示一个聚合的输入,每条所述第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,所述第三端口为所述多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,所述第四端口为所述多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于合并后的端口,以正交边路由的方式布局所述第二图。
14.根据权利要求8至10中任一项所述的图处理装置,其特征在于,所述标识为哈希值;
所述合并模块,具体用于合并所述至少两个子图中哈希值相同的子图;
添加多个第一节点中每个第一节点的第一端口以及第二端口,其中,所述每个第一节点为所述第一图中出度或入度大于第一阈值的节点,指示数据输入所述每个第一节点的边经过所述每个第一节点的第一端口,指示数据输出所述每个第一节点的边经过所述每个第一节点的第二端口;
合并经过同一第一端口的多条边,合并经过同一第二端口的多条边;
以及在多条第一边和多条第二边上添加端口,其中,每条所述第一边指示一个聚合的输入,每条所述第二边指示一个聚合的输出,一个聚合通过一组节点和边的组合指示一种计算功能;
合并添加的多个端口中的多个第三端口,所述第三端口为所述多条第一边中,对应同一聚合,且指示输入来自相同的节点的边上的端口,以及合并添加的多个端口中的多个第四端口,所述第四端口为所述多条第二边中,对应同一聚合,且指示输出向同一个节点的边上的端口;
基于上述一个或多个合并步骤的结果,以正交边路由的方式布局所述第二图。
15.一种服务器,其特征在于,包括:
处理器、存储器、输入输出(I/O)接口;
所述处理器与所述存储器、所述输入输出接口耦合;
所述处理器通过运行所述存储器中的代码执行如权利要求1至7中任一项所述的方法。
16.一种终端设备,其特征在于,包括:
处理器、存储器、和输入输出(I/O)接口;
所述处理器与所述存储器、输入输出接口耦合;
所述处理器通过运行所述存储器中的代码执行如权利要求1至7中任一项所述的方法。
17.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
CN202010998184.0A 2020-09-21 2020-09-21 一种图处理的方法,系统以及装置 Pending CN114283099A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010998184.0A CN114283099A (zh) 2020-09-21 2020-09-21 一种图处理的方法,系统以及装置
PCT/CN2021/096023 WO2022057303A1 (zh) 2020-09-21 2021-05-26 一种图处理的方法,系统以及装置
US18/186,267 US20230229704A1 (en) 2020-09-21 2023-03-20 Graph processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010998184.0A CN114283099A (zh) 2020-09-21 2020-09-21 一种图处理的方法,系统以及装置

Publications (1)

Publication Number Publication Date
CN114283099A true CN114283099A (zh) 2022-04-05

Family

ID=80777610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010998184.0A Pending CN114283099A (zh) 2020-09-21 2020-09-21 一种图处理的方法,系统以及装置

Country Status (3)

Country Link
US (1) US20230229704A1 (zh)
CN (1) CN114283099A (zh)
WO (1) WO2022057303A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115793914A (zh) * 2023-02-08 2023-03-14 广州市玄武无线科技股份有限公司 多轮场景交互流程图生成方法、电子设备及其存储介质
CN117576125A (zh) * 2024-01-16 2024-02-20 芯瞳半导体技术(山东)有限公司 一种神经网络计算图的分割方法、装置、设备及存储介质
WO2024104005A1 (zh) * 2022-11-15 2024-05-23 中移(成都)信息通信科技有限公司 医疗信息处理方法以及装置、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020132833A1 (en) * 2018-12-24 2020-07-02 Intel Corporation Methods and apparatus to process machine learning model in multi-process web browser environment
US20230115149A1 (en) * 2021-09-24 2023-04-13 Insitro, Inc. System, devices and/or processes for updating call graphs
US11914578B2 (en) * 2021-12-21 2024-02-27 Michael Roberts Xbundle: a hierarchical hypergraph database designed for distributed processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676866B2 (en) * 2012-03-19 2014-03-18 Sap Ag Computing canonical hierarchical schemas
CN105468371B (zh) * 2015-11-23 2018-08-28 赣南师范学院 一种基于主题聚类的业务流程图合并方法
CN107038215B (zh) * 2017-03-07 2020-07-17 东方网力科技股份有限公司 一种从m部图中得到极大完全子图的数据库搜索方法
CN109359172B (zh) * 2018-08-02 2020-12-11 浙江大学 一种基于图划分的实体对齐优化方法
CN111338635B (zh) * 2020-02-20 2023-09-12 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024104005A1 (zh) * 2022-11-15 2024-05-23 中移(成都)信息通信科技有限公司 医疗信息处理方法以及装置、设备及存储介质
CN115793914A (zh) * 2023-02-08 2023-03-14 广州市玄武无线科技股份有限公司 多轮场景交互流程图生成方法、电子设备及其存储介质
CN117576125A (zh) * 2024-01-16 2024-02-20 芯瞳半导体技术(山东)有限公司 一种神经网络计算图的分割方法、装置、设备及存储介质
CN117576125B (zh) * 2024-01-16 2024-04-16 芯瞳半导体技术(山东)有限公司 一种神经网络计算图的分割方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230229704A1 (en) 2023-07-20
WO2022057303A1 (zh) 2022-03-24

Similar Documents

Publication Publication Date Title
CN114283099A (zh) 一种图处理的方法,系统以及装置
Felsner et al. Straight-line drawings on restricted integer grids in two and three dimensions
CN106649391A (zh) 处理图数据的方法和装置
CN114327844A (zh) 内存分配方法、相关设备及计算机可读存储介质
US11037356B2 (en) System and method for executing non-graphical algorithms on a GPU (graphics processing unit)
US20170262411A1 (en) Calculator and matrix factorization method
US11630983B2 (en) Graph conversion method
CN103177414A (zh) 一种基于结构的图节点相似度并行计算方法
CN106202224B (zh) 搜索处理方法及装置
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
CN110853120B (zh) 基于分割绘图法的网络布局方法、系统及介质
CN104915053A (zh) 一种界面控件的位置确定方法和装置
EP3104335A1 (en) Analysis model creation assistance system, analysis model creation assistance device and analysis model creation assistance program
CN106204413A (zh) 利用分层加速结构的图形渲染
CN111985014B (zh) 一种基于标准图集的建模方法及系统
JP6781819B2 (ja) タスク処理方法及び分散コンピューティングフレームワークシステム
CN117073706A (zh) 路径规划方法、装置、电子设备、存储介质及程序产品
CN115758989B (zh) 用于修复数字芯片版图设计规则时序违例的方法及系统
CN115237355B (zh) 一种基于闪存数据类识别的定向交换方法及系统
US20150042672A1 (en) Parallel multicolor incomplete lu factorization preconditioning processor and method of use thereof
CN111737347B (zh) 在Spark平台顺序切分数据的方法及装置
US10424096B1 (en) Technique for orthogonal edge routing of directed layered graphs with edge crossings reduction
Kaufmann et al. On upward point set embeddability
CN104461879A (zh) 一种自动测试方法及装置
Lagartinho-Oliveira et al. GPGPU applied to support the construction of the state-space graphs of IOPT Petri net models

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