CN112819160B - 一种神经网络模型的可视化方法、装置、设备及存储介质 - Google Patents
一种神经网络模型的可视化方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112819160B CN112819160B CN202110205467.XA CN202110205467A CN112819160B CN 112819160 B CN112819160 B CN 112819160B CN 202110205467 A CN202110205467 A CN 202110205467A CN 112819160 B CN112819160 B CN 112819160B
- Authority
- CN
- China
- Prior art keywords
- node
- merging
- nodes
- merged
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 83
- 238000007794 visualization technique Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000000007 visual effect Effects 0.000 claims abstract description 15
- 238000012800 visualization Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 15
- 238000013528 artificial neural network Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000004205 output neuron Anatomy 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种神经网络模型的可视化方法、装置、设备及存储介质,本发明包括:获取神经网络模型结构,生成上层节点及上层节点的合并节点名集合和节点度;根据合并节点名集合和节点度对上层节点进行合并,生成目标节点;基于目标节点生成神经网络模型结构的可视化数据。本发明基于合并节点名集合和节点度对待合并节点从节点的层面上进行了合并,不局限于只对部分节点进行定义收缩,大大增强了神经网络模型可视化显示的简化程度。
Description
技术领域
本发明涉及神经网络可视化技术领域,尤其涉及一种神经网络模型的可视化方法、装置、设备及存储介质。
背景技术
在工业领域中,不同的神经网络模型往往训练出的效果大不相同。当工程师去调研模型的好坏以及背后的原因时,就需要去理解模型网络结构每层、每个输入、输出、数据操作的步骤,模型的可视化就是帮助工程师理解神经网络结构的最有效的工具之一。
在现有技术中,网络上有一些开源的模型可视化工具,如tensorboard、netron等,可实现模型的可视化。
发明内容
本发明提供了一种神经网络模型的可视化方法、装置、设备及存储介质,用于解决现有技术无法从量级上简化复杂模型的可视化显示的技术问题。
本发明提供了一种神经网络模型的可视化方法,所述神经网络模型具有多个节点;所述方法包括:
获取神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度;
根据所述合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点;
基于所述目标节点生成所述神经网络模型结构的可视化数据。
可选地,所述获取所述神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度的步骤,包括:
获取所述神经网络模型结构每个所述节点的输出节点列表、输入节点列表和节点名;
获取节点名最高命名层级;
根据所述节点名最高命名层级和所述节点名,生成上层节点;
获取所述上层节点中所包含节点的节点名,生成所述上层节点的合并节点名集合;
根据所述上层节点的输出节点列表和输入节点列表,生成所述上层节点的节点度。
可选地,所述根据所述节点名最高命名层级和所述节点名,生成上层节点的步骤,包括:
确定每个所述节点的节点名层级;
基于所述节点名最高命名层级和所述节点名层级,生成每个所述节点的辅助节点名;
合并具有相同辅助节点名的所述节点,得到上层节点。
可选地,所述节点度包括出度和入度;所述根据所述合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点的步骤,包括:
根据所述上层节点对应的出度,生成第一合并节点;
根据所述第一合并节点对应的入度,生成第二合并节点;
根据所述第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点;
根据所述第三合并节点的合并节点名集合和对应的入度,生成第四合并节点;
获取当前合并轮数,并判断所述合并轮数是否等于预设合并轮数阈值;
若否,将所述第四合并节点确定为上层节点,并返回根据所述上层节点对应的出度,生成第一合并节点的步骤;
若是,将所述第四合并节点确定为目标节点。
可选地,所述根据所述上层节点对应的出度,生成第一合并节点的步骤,包括:
在所述上层节点中获取出度为1的第一节点;
判断所述第一节点是否处于预设保留节点列表中;
若否,获取所述第一节点对应的第一输出节点,并将所述第一输出节点添加至预设的第一临时集合中;
在所述上层节点中获取所述第一输出节点对应的第一输入节点;
将不处在所述预设保留节点列表中,且出度为1的第一输入节点确定为第一待合并节点;
对所述第一待合并节点进行合并,生成第一合并节点。
可选地,所述对所述第一待合并节点进行合并,生成第一合并节点的步骤,包括:
在所述第一待合并节点中选取第一总节点;
合并所述第一待合并节点的合并节点名集合,生成第一合并节点名集合;
合并所述第一待合并节点的输入节点列表,生成第一输入节点列表;
将所述第一合并节点名集合作为所述第一总节点的合并节点名集合,并将所述第一输入节点列表作为所述第一总节点的输入节点列表,生成第一合并节点。
可选地,所述根据所述第一合并节点对应的入度,生成第二合并节点的步骤,包括:
在所述第一合并节点中获取入度为1的第二节点;
判断所述第二节点是否处于预设保留节点列表中;
若否,获取所述第二节点对应的第二输入节点,并将所述第二输入节点添加至预设的第二临时集合中;
在所述第一合并节点中获取所述第二输入节点对应的第二输出节点;
将不处在所述预设保留节点列表中,且入度为1的第二输出节点确定为第二待合并节点;
对所述第二待合并节点进行合并,生成第二合并节点。
可选地,所述对所述第二待合并节点进行合并,生成第二合并节点的步骤,包括:
在所述第二待合并节点中选取第二总节点;
合并所述第二待合并节点的合并节点名集合,生成第二合并节点名集合;
合并所述第二待合并节点的输出节点列表,生成第一输出节点列表;
将所述第二合并节点名集合作为所述第二总节点的合并节点名集合,并将所述第一输出节点列表作为所述第二总节点的输出节点列表,生成第二合并节点。
可选地,所述根据所述第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点的步骤,包括:
以入度不为1,出度为1的所述第二合并节点为初始节点,建立串行结构;
将所述初始节点输出指向的入度为1的所述第二合并节点确定为中间节点;
对所述初始节点的合并节点名集合进行字典排序,生成第一命名列表,并获取所述第一命名列表的第一列表长度和第一名称顺序;
对所述中间节点的合并节点名集合进行字典排序,生成第二命名列表,并获取所述第二命名列表的第二列表长度和第二名称顺序;
若所述第一名称顺序与所述第二名称顺序相同,且所述第一列表长度等于所述第二列表长度,则将所述中间节点添加进所述串行结构;
判断所述中间节点的出度是否为1;
若所述中间节点的出度为1,则将所述中间节点确定为所述初始节点;并返回将所述初始节点输出指向的入度为1的所述第二合并节点确定为中间节点的步骤;
若所述中间节点的出度不为1,则将所述串行结构中的所述第二合并节点确定为第三待合并节点;
对所述第三待合并节点进行合并,生成第三合并节点。
可选地,所述对所述第三待合并节点进行合并,生成第三合并节点的步骤,包括:
在所述第三待合并节点中选取第三总节点;
合并所述第三待合并节点的合并节点名集合,生成第三合并节点名集合;
将所述第三合并节点名集合作为所述第三总节点的合并节点名集合,将所述串行结构上第一个节点的输入节点列表作为所述第三总节点的输入节点列表,将串行结构最后一个点的输出节点列表作为第三总节点的输出节点列表,生成第三合并节点。
可选地,所述根据所述第三合并节点的合并节点名集合和对应的入度,生成第四合并节点的步骤,包括:
获取所述第三合并节点的每个节点的输出节点及所述输出节点所对应的合并节点名集合;
对多个所述输出节点对应的合并节点名集合进行字典排序,生成第三命名列表;
对所述第三命名列表进行分组,得到节点分组;
将属于同一节点分组的输出节点确定为所述节点分组的第四待合并节点;
对所述第四待合并节点进行合并,生成第四合并节点。
可选地,所述对所述第四待合并节点进行合并,生成第四合并节点的步骤,包括:
判断每个所述节点分组中的所有所述第四待合并节点对应的输入节点是否相同;
若是,合并所述节点分组中的第四待合并节点,生成第四合并节点。
本发明还提供了一种神经网络模型的可视化装置,所述神经网络模型具有多个节点;所述装置包括:
神经网络模型结构处理模块,用于获取神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度;
目标节点生成模块,用于根据所述合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点;
可视化数据生成模块,用于基于所述目标节点生成所述神经网络模型结构的可视化数据。
本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如上任一项所述的神经网络模型的可视化方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的神经网络模型的可视化方法。
从以上技术方案可以看出,本发明具有以下优点:本发明通过获取神经网络模型结构,生成携带有合并节点名集合和节点度的上层节点,使得后续可以根据合并节点名集合和节点度对上层节点进行合并,得到合并后的目标节点,用于生成神经网络模型的可视化数据。由于基于合并节点名集合和节点度对待合并节点,从节点的层面上进行了合并,不局限于只对部分节点进行定义收缩,大大增强了神经网络模型可视化显示的简化程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中netron的示意图;
图2为本发明实施例提供的一种神经网络模型的可视化方法的步骤流程图;
图3为本发明另一实施例提供的一种神经网络模型的可视化方法的步骤流程图;
图4为本发明实施例提供的一种节点预处理方式示意图;
图5为本发明又一实施例提供的一种神经网络模型的可视化方法的步骤流程图;
图6为出度为1的节点的合并示意图;
图7为入度为1的节点的合并示意图;
图8为单链串行结构合并示意图;
图9为本发明实施例提供的一种神经网络模型的可视化装置的结构框图。
具体实施方式
在现有技术中,网络上有一些开源的模型可视化工具,如tensorboard、netron等,可实现模型的可视化。如图1所示,图1为netron的一个样例图。由多个不同的神经元组成(如Conv、Relu和Concat),可以较为清晰地展示出模型的每层结构,以及每个神经元的具体信息,如上层输入、权重等特征、以及下层输出。然而,当模型总节点数较小时,这些工具的显示很流畅,但当节点数达到一定数量(例如1000)并且连接较为复杂时,这些可视化工具甚至无法正常读取。即使可以读取,显示出的网络结构也是不方便正常观察的。所以模型在可视化方面的简化工作在工业中是非常重要的。
有鉴于此,本发明实施例提供了一种神经网络模型的可视化方法、装置、设备及存储介质,用于解决现有技术无法从量级上简化复杂模型的可视化显示的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图2,图2为本发明实施例提供的一种神经网络模型的可视化方法的步骤流程图。
本发明提供的一种神经网络模型的可视化方法,具体可以包括以下步骤:
步骤201,获取神经网络模型结构,生成上层节点及上层节点的合并节点名集合和节点度;
神经网络,是一种模仿生物神经网络(大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。简单来说,神经网络就是一个分层的有向图,每个节点成为一个神经元。而神经网络模型则指定了网络中的变量和它们的拓扑关系。
在实际应用中,神经网络包含了多个节点,一个节点是一个计算单元,需要接收上层传递过来的几个输入信号,通过一些计算处理,输入到下层的神经元节点。
节点度可以包括节点出度和入度,出度是指一个节点向外出边的条数,入度是指节点的入边条数,也就是说,出度是指神经元节点指向的向外输出的神经元节点个数,入度是指指向神经元节点的输入的神经元节点个数。
上层节点是指具有相同上位层级的节点合并后产生的节点。
在具体实现中,在模型合并中往往会运用到递归遍历、合并、删除等操作,所以如果原始信息中只有上层输入节点或下层输入节点,则需要对节点进行预处理,将每个节点的输入节点列表和输出节点列表都更新添加到该节点的信息中。此外,在本发明实施例中,需要对每个节点额外添加一项合并节点名集合,这个合并节点名集合用以记录该节点包含的其他节点名及在该节点中,合并的节点名。
在完善了节点信息后,可以根据层级的具体名称和对层级的简化要求,将节点进行合并生成上层节点。
需要说明的是,在节点未合并其他节点时,该节点的合并节点名集合的初始值为该节点的节点名本身。而随着节点的合并,为了避免重复,有些合并到其他节点的节点会被删除。同时,为了防止信息丢失,留下的合并后的节点必须要在合并节点名集合中记录并进来的节点的相关信息。
步骤202,根据合并节点名集合和节点度对上层节点进行合并,生成目标节点;
在本发明实施例中,将上位层级所包含的下位层级的节点合并到上位层级中,生成上位节点的模式,针对于具有大量分支的神经网络而言,只能起到有限简化的作用,并不能从量级上极大地实现对神经网络的简化。
有鉴于此,在本发明实施例中,可以通过合并节点名集合和节点度对上层节点进行合并,得到目标节点,以实现对神经网络模型的进一步简化。
步骤203,基于目标节点生成神经网络模型结构的可视化数据。
在本发明实施例中,在简化到一定程度后,可以基于简化得到的目标节点来生成神经网络模型的可视化数据。以便于查看。
本发明通过获取神经网络模型的原始信息,并采用原始信息对节点进行预处理,生成携带有合并节点名集合和节点度的上层节点,使得后续可以根据合并节点名集合和节点度从上层节点中确定待合并点进行合并,得到合并后的目标节点,用于生成神经网络模型的可视化数据。由于基于合并节点名集合和节点度对待合并节点,从节点的层面上进行了合并,不局限于只对部分节点进行定义收缩,大大增强了神经网络模型可视化显示的简化程度。
请参阅图3,图3为本发明另一实施例提供的一种神经网络模型的可视化方法的步骤流程图。其具体可以包括以下步骤:
步骤301,获取神经网络模型结构每个节点的输出节点列表、输入节点列表和节点名;
步骤302,获取节点名最高命名层级;
在实际应用中,有时候对于太过细化的运算操作,用户并不感兴趣,如split/split_1,split/split_2这种通用运算。因此可以对比较细化的节点的命名进行简化。具体可以通过设定节点最高命名层级,来约束节点的命名层级。
在一个示例中,当一个节点名称为rnn/model/split/split_dim,而节点名最高命名层级L=2时,这个节点的节点名称将被简化为rnn/model。
步骤303,根据节点名最高命名层级和节点名,生成上层节点;
在实际应用中,节点中的命名的层级是依照模型局部结构本身的规律设定的,所以可以想象,当有多个类似节点的命名层级按照层级被简化后,局部会出现多个同样名称的节点,如rnn/model。基于此,在本发明实施例中,可以对简化后具有相同名称的节点进行合并,生成上层节点。
在本发明实施例中,步骤303可以包括:
S31,确定每个节点的节点名层级;
S32,基于所述节点名最高命名层级和所述节点名层级,生成每个所述节点的辅助节点名;
S33,合并具有相同辅助节点名的节点,得到上层节点。
在具体实现中,可以将节点名层级大于节点名最高命名层级的节点的节点名进行删减,以节点名rnn/model/split为例,当节点名最高命名层级L=2为例,则删减后的节点名为rnn/model。而对于节点名层级小于或等于节点名最高命名层级的节点的节点名而言,则无需对节点名进行删减。在完成删减操作后,可以将具有相同辅助节点名的节点进行合并,以生成上层节点。此过程的目的在于,以节点名最高命名层级为限定,对节点进行初步合并,以减少节点数量。
在一个示例中,如图4所示,左侧结构中具有多个节点,包括:rnn/model,rnn/model/split,rnn/model/split_1,rnn/model/split/split_dim_1,rnn/model/split/split_dim_2和a、b等其他节点。如果设定节点名最高命名层级L=2,则会出现多个节点的辅助节点名为rnn/model,则此时可以以原本命名就是rnn/model的节点作为合并点,将其他节点的输入节点和输出节点添加到该节点的输入节点列表和输出节点列表中,生成上层节点。从而生成如图4中右侧所示的结构。
步骤304,获取上层节点中所包含节点的节点名,生成上层节点的合并节点名集合;
在本发明实施例中,随着合并操作的进行,需要将被合并的节点的节点名添加到作为合并点的节点的合并节点名集合中,以记录当前节点合并了哪一些节点。
步骤305,根据上层节点的输出节点列表和输入节点列表,生成上层节点的节点度;
在本发明实施例中,根据上层节点的输出节点列表和输入节点列表,可以确定上层节点与其他节点的连接关系,以确定上层节点的节点度。通过与其他节点之间的连接关系,可以知晓节点在合并过程中,是否出现合并错误的情况。如,与一个上位节点不具有归属关系的下位节点,由于简化节点名相同的原因,可能会被合并到该上位节点中去。
步骤306,根据合并节点名集合和节点度对上层节点进行合并,生成目标节点;
在本发明实施例中,将上位层级所包含的下位层级的节点合并到上位层级中,生成上位节点的模式,针对于具有大量分支的神经网络而言,只能起到有限简化的作用,并不能从量级上极大地实现对神经网络的简化。
有鉴于此,在本发明实施例中,可以通过合并节点名集合和节点度确定待合并节点,并对待合并节点进行合并,得到目标节点,以实现对神经网络模型的进一步简化。
步骤307,基于目标节点生成神经网络模型结构的可视化数据。
在本发明实施例中,在简化到一定程度后,可以基于简化得到的目标节点来生成神经网络模型的可视化数据。以便于查看。
本发明通过获取神经网络模型的原始信息,并采用原始信息对节点进行预处理,生成携带有合并节点名集合和节点度的上层节点,使得后续可以根据合并节点名集合和节点度从上层节点中确定待合并点进行合并,得到合并后的目标节点,用于生成神经网络模型的可视化数据。由于基于合并节点名集合和节点度对待合并节点,从节点的层面上进行了合并,不局限于只对部分节点进行定义收缩,大大增强了神经网络模型可视化显示的简化程度。
请参阅图5,图5为本发明又一实施例提供的一种神经网络模型的可视化方法的步骤流程图。其具体可以包括以下步骤:
步骤501,获取神经网络模型结构,生成上层节点及上层节点的合并节点名集合和节点度;
在本发明实施例中,步骤501的描述如上述步骤201,此处不再赘述。
步骤502,根据上层节点对应的出度,生成第一合并节点;
在本发明实施例中,可以以出度为条件,对上层节点进行合并,生成第一合并节点。
在一个示例中,步骤502可以包括:
S521,在上层节点中获取出度为1的第一节点;
S522,判断第一节点是否处于预设保留节点列表中;
S523,若否,获取第一节点对应的第一输出节点,并将第一输出节点添加至预设的第一临时集合中;
S524,在上层节点中获取第一输出节点对应的第一输入节点;
S525,将不处在预设保留节点列表中,且出度为1的第一输入节点确定为第一待合并节点;
S526,对所述第一待合并节点进行合并,生成第一合并节点。
在具体实现中,对于上层节点,可以分别以当前节点出度为1,且不在预设保留节点列表中的第一节点为基础,将其所指向的输出节点添加到第一临时集合S1中。S1中的每个节点都至少有一个出度为1的节点指向它。
遍历S1,搜索当前节点的第一输入节点,提取所有出度为1且不在保留节点列表中的第一输入节点,即可得到将要进行合并的第一待合并节点,对第一待合并节点进行合并,可以得到第一合并节点。
在具体实现中,对第一待合并节点进行合并,生成第一合并节点的步骤可以包括:
S5261,在第一待合并节点中选取第一总节点;
S5262,合并第一待合并节点的合并节点名集合,生成第一合并节点名集合;
S5263,合并第一待合并节点的输入节点列表,生成第一输入节点列表;
S5264,将第一合并节点名集合作为第一总节点的合并节点名集合,并将第一输入节点列表作为第一总节点的输入节点列表,生成第一合并节点。
在具体实现中,对于第一待合并节点,可以以第一个节点作为合并后的第一总节点,将第一待合并节点中其他节点的合并节点名集合一同加入到第一总节点的合并节点名集合中,将第一待合并节点中其他节点的输入节点列表加入到第一总节点的输入节点列表中,从而生成第一合并节点。
在一个示例中,如图6所示,图6为出度为1的节点的合并示意图。
如图6所示,上层节点a1、a2、a3、a4都有输出指向下层节点b1,而a4另外还有输出传递到b2,这里上层节点a1、a2、a3即为出度为1的第一节点。按照上述规则即可将其合并为1个第一合并节点。从而减少了节点的数量。
步骤503,根据第一合并节点对应的入度,生成第二合并节点;
在本发明实施例中,可以以入度为选择条件,对第一合并节点进行合并,生成第二合并节点。
需要说明的是,由于并不是每一个上层节点都会与其他节点合并形成第一合并节点。而这一部分节点可能会满足以第一入度为基准的选择条件,因此,在本发明实施例中,在进行基于第一入度为选择条件的合并时,需要考虑到这一部分节点。即第一合并节点可以由第一待合并节点合并得到的节点和未参与合并的上层节点组成。
在一个示例中,步骤503可以包括:
S531,在第一合并节点中获取第一入度为1的第二节点;
S532,判断第二节点是否处于预设保留节点列表中;
S523,若否,获取第二节点对应的第二输入节点,并将第二输入节点添加至预设的第二临时集合中;
S534,在第一合并节点中获取第二输入节点对应的第二输出节点;
S535,将不处在预设保留节点列表中,且入度为1的第二输出节点确定为第二待合并节点;
S536,对第二待合并节点进行合并,生成第二合并节点。
在具体实现中,对于第一合并节点,可以分别以入度为1,且不在保留节点列表中的第二节点为基础,将指向该第二节点的第二输入节点添加进第二临时集合S2中。
遍历S2,对于当前节点,搜索其第二输出节点,将所有入度为1且不在保留节点列表中的第二输出节点提取出来,作为第二待合并节点;将第二待合并节点进行合并,生成第二合并节点。
在本发明实施例中,步骤S536可以包括:
S5361,在第二待合并节点中选取第二总节点;
S5362,合并第二待合并节点的合并节点名集合,生成第二合并节点名集合;
S5363,合并第二待合并节点的输出节点列表,生成第一输出节点列表;
S5364,将第二合并节点名集合作为第二总节点的合并节点名集合,并将第一输出节点列表作为第二总节点的输出节点列表,生成第二合并节点。
在具体实现中,对于第二待合并节点,可以以第一个节点作为合并后的第二总节点,将第二待合并节点中其他节点的合并节点名集合一同加入到第二总节点的合并节点名集合中,将第二待合并节点中其他节点的输入节点列表加入到第二总节点的输入节点列表中,从而生成第二合并节点。
在一个示例中,如图7所示,图7为入度为1的节点的合并示意图。
如图7所示,第一合并节点c1分别输出指向第一合并节点d1、d2、d3、d4,而d4另外还有c2向其传递,这里第一合并节点d1、d2、d3即为入度为1的第二节点。按照上述规则即可将其合并为1个第二合并节点。从而减少了节点的数量。
步骤504,根据第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点;
在本发明实施例中,可以以合并节点名集合、出度、入度为选择条件,对第二合并节点进行合并,生成第三合并节点。
需要说明的是,由于并不是每一个第一合并节点都会与其他节点合并形成第二合并节点。而这一部分节点可能会满足以合并节点名集合、出度、入度为基准的选择条件,因此,在本发明实施例中,在进行基于合并节点名集合、出度、入度为选择条件的合并时,需要考虑到这一部分节点。即第二合并节点可以由第二待合并节点合并得到的节点和未参与合并的第一合并节点组成。
在一个示例中,步骤504可以包括:
S541,以入度不为1,出度为1的第二合并节点为初始节点,建立串行结构;
S542,将初始节点输出指向的入度为1的第二合并节点确定为中间节点;
S543,对初始节点的合并节点名集合进行字典排序,生成第一命名列表,并获取第一命名列表的第一列表长度和第一名称顺序;
S544,对中间节点的合并节点名集合进行字典排序,生成第二命名列表,并获取第二命名列表的第二列表长度和第二名称顺序;
若第一名称顺序与第二名称顺序相同,且第一列表长度等于第二列表长度,则将中间节点添加进串行结构;
S545,判断中间节点的出度是否为1;
S546,若中间节点的出度为1,则将中间节点确定为初始节点;并返回将初始节点输出指向的入度为1的第二合并节点确定为中间节点的步骤;
S547,若中间节点的出度不为1,则将串行结构中的第二合并节点确定为第三待合并节点;
S548,对第三待合并节点进行合并,生成第三合并节点。
在实际应用中,除了分别从出度为1、入度为1的角度对节点进行合并外,还可以对单链串行结构的节点进行合并。单链串行结构的节点在模型结构上是一串单一输出神经元和单一输出神经元的点。当这些点内部所包含的合并节点名集合结构相同时,可以将这一串节点简化为一个点。
在具体实现中,可以选择以入度不为1,出度为1的第二合并节点作为初始节点,建立串行结构,然后沿着该点所指向的输出节点递归向下搜索入度为1的点作为中间节点,判断初始节点和中间节点包含的节点名称结构是否相同,若相同,且中间节点的出度为1时,则将中间节点作为初始节点,继续向下递归搜索入度为1的中间节点,直到所搜索到的入度为1的节点的出度不为1为止,得到单链串行结构。
其中,判断所得到的初始节点和中间节点内部包含的节点名称结构是否相同的方法如下:
首先,分别对初始节点和中间节点内部的合并节点名集合,即其所包含的所有节点名称进行字典排序。
排序后,遍历每一个节点名,对当前节点名进行操作:根据命名中的层级分隔符(一般为“/”)将当前节点的命名分成每一层的命名,若当前层的命名的后缀包含序列数字,则将序列数字省去,仅保留名称部分。这样就得到一个新生成的当前节点的简化临时命名。例如:原命名为cnn_1/conv2d_13/Conv2D,简化后得到的简化临时命名为cnn/conv2d/Conv2D。对当前节点的合并节点名集合中的每个节点命名进行简化,可以得到一个临时的第一命名列表。第一命名列表中,节点的第一名称顺序基于字典排序生成。
值得注意的是,简化临时命名仅仅用于比较,并不是永久转化。
将初始节点的合并节点名集合简化后得到的第一命名列表和中间节点的合并节点名集合简化后得到的第二命名列表进行对比,当当初始节点的第一名称顺序与中间节点的第二名称顺序相同、且初始节点的第一列表长度与中间节点的第二列表长度相同,则可判定两者结构相同,此时可以将中间节点添加到串行结构中。
在串行结构无法继续向下递归搜索时,可以将该串行结构作为第三待合并节点,并对其进行合并,得到第三合并节点。
在本发明实施例中,步骤S548可以包括:
S5481,在第三待合并节点中选取第三总节点;
S5482,合并第三待合并节点的合并节点名集合,生成第三合并节点名集合;
S5483,将第三合并节点名集合作为第三总节点的合并节点名集合,将串行结构上第一个节点的输入节点列表作为第三总节点的输入节点列表,将串行结构最后一个点的输出节点列表作为第三总节点的输出节点列表,生成第三合并节点。
在具体实现中,对于第三待合并节点,可以以第一个节点作为合并后的第三总节点,将第三待合并节点中其他节点的合并节点名集合一同加入到第三总节点的合并节点名集合中,将第三待合并节点中其他节点的输入节点列表和输出节点列表加入到第三总节点的输入节点列表中,从而生成第三合并节点。
在一个示例中,如图8所示,图8为单链串行结构合并示意图。
如图8所示,左侧e1、e2、e3、e4为结构相同的第二合并节点,右侧为其合并得到的第三合并节点。
步骤505,根据第三合并节点的合并节点名集合和对应的入度,生成第四合并节点;
在本发明实施例中,可以以第三合并节点的合并节点名集合、入度为选择条件,对第三合并节点进行合并,生成第四合并节点。
需要说明的是,由于并不是每一个第二合并节点都会与其他节点合并形成第三合并节点。而这一部分节点可能会满足以第三合并节点的合并节点名集合、入度为基准的选择条件,因此,在本发明实施例中,在进行基于第三合并节点的合并节点名集合、入度为选择条件的合并时,需要考虑到这一部分节点。即第三合并节点可以由第三待合并节点合并得到的节点和未参与合并的第二合并节点组成。
在一个示例中,步骤505可以包括:
S551,获取第三合并节点名的每个节点的输出节点及输出节点所对应的合并节点名集合;
S552,对多个输出节点对应的合并节点名集合进行字典排序,生成第三命名列表;
S553,对第三命名列表进行分组,得到节点分组;
S554,将属于同一节点分组的输出节点确定为节点分组的第四待合并节点;
S555,对第四待合并节点进行合并,生成第四合并节点。
在实际应用中,除了对入度为1的节点进行合并外,还可以对入度不必要为1的节点进行合并,即合并并行结构节点。
在具体实现中,对于并行结构节点的获取,可以通过如下方式得到:
遍历第三合并节点,对当前节点的输出节点的合并节点名集合进行字典排序,得到第三命名列表。排序方法为:
将输出节点中的每一个节点的合并节点名集合进行对比,当合并节点名集合L1的长度大于合并节点名结合L2时,判定L1>L2。若相等,那么从合并节点名集合L1、L2位置0同时开始,依次顺序比较,若当前L1的第i个命名在字典序上大于L2,那么判定L1>L2,反之亦然。即对于将输出节点的合并节点名集合进行排序,生成第三命名列表的依据是,通过将输出节点列表中每个节点各自所带的合并节点名集合进行对比。
排好序后,可以设定当前分组,从第三命名列表的位置0开始,依次将当前节点尝试加入当前分组。若当前节点的结构与当前分组中的节点的结构相同,那么可将当前节点添加到当前分组。若不同,则新建一个分组,将当前节点加入到新的分组,从而完成对第三命名列表的分组,得到节点分组。每个节点分组中的第三合并节点可分别作为第四待合并节点,通过对每个节点分组进行合并,可减少节点的数量。
在一个示例中,第三合并节点的输出节点列表可以为:[A1、B1、C2、B2、A3、A2、C1],其中,A1、B1、C2、B2、A3、A2、C1分别表示一个节点,每个节点自身拥有一个合并节点名集合,如A1:[“cnn_1/conv2d_13/Conv2D”,……]A2:[cnn_3/conv2d_4/Conv2D,……]。
由于A1,A2的合并节点名集合的命名结构相同,所以排序时会相邻。排好序以后得到的第三命名列表可以是这样:[A1、A3、A2、B1、B2、C2、C1]。
分组结果可以为:[A1、A3、A2]、[B1、B2]、[C2、C1]。
需要说明的是,排序只要保证A类节点在一起,B类在一起,C类在一起即可,分组内部的顺序不重要。
在本发明实施例中,步骤S555可以包括:
S5551,判断每个节点分组中的所有第四待合并节点对应的输入节点是否相同;
S5552,若是,合并节点分组中的第四待合并节点,生成第四合并节点。
在具体实现中,虽然同一个节点分组中的第四待合并节点的命名结构相同,理论上可以合并为1个节点,但同一个节点分组中的各个第四待合并节点的输入节点未必相同,如果将输入节点不同的第四待合并节点进行合并,则可能会导致上层输入层混乱的情况。因此,在本发明实施例中,在确定好节点分组后,需要先判断每个节点分组中的第四待合并节点对应的输入节点是否完全相同,以避免合并后上层输入层混乱的情况;若是,则可将整个分组合并为一个点。接着以第一个节点作为合并后的第四总节点,将第四待合并节点中其他节点的合并节点名集合一同加入到第四总节点的合并节点名集合中,将第四待合并节点中其他节点的输出节点列表加入到第四总节点的输入节点列表中,从而生成第四合并节点。
步骤506,获取当前合并轮数,并判断合并轮数是否等于预设合并轮数阈值;
在本发明实施例中,可以将步骤502-505的流程算成一轮合并,针对大规模的神经网络模型,用户对模型简化程度可能会有不同的需求;因此,在本发明实施例中,用户可以输入合并轮数R,以重复执行步骤502-505,以尽可能地简化神经网络模型的可视化显示。
值得注意的是,当R达到一定数值时,简化程度已经达到极限,增大R并不会进一步简化模型。
进一步地,在每一轮合并开始前,可以记录当前每个节点的节点状态,以便于在最终显示时可层层展开上一轮未简化时的状态。
需要说明的是,在本发明一个可选实施例中,用户也可以只选择步骤502-505中的一个或者多个步骤来对神经网络模型进行简化;还可以选择步骤502-505中的至少两个步骤并进行多轮合并来对神经网络模型进行简化。本发明实施例对此不作具体限制。
步骤507,若否,将第四合并节点确定为上层节点,并返回根据上层节点对应的出度,生成第一合并节点的步骤;
步骤508,若是,将第四合并节点确定为目标节点;
当当前合并轮数小于预设合并轮数阈值时,重复执行步骤502-505,当当前合并轮数等于预设合并轮数阈值时,将第四合并节点确定为目标节点。
步骤509,基于目标节点生成神经网络模型结构的可视化数据。
在本发明实施例中,在简化到一定程度后,可以基于简化得到的目标节点、第三合并节点中未参与合并的部分以及保留节点列表中的节点来生成神经网络模型的可视化数据。以便于查看。
进一步地,在完成对神经网络模型的简化后,所得到的节点中每个节点的命名空间列表会很长,包含了很多点的名称,如果直接显示在最终输出端上的话,那么这个点在视觉上,信息会非常繁杂,不利于可视化。针对这个问题,可以选择将各个节点共同命名描述部分提取出来,将后缀的形如“split_1”,“split_2”,...,“split_30”的数字编号整理为“split_[1-30],来重新命名。”
本发明通过获取神经网络模型结构,来根据神经网络模型结构生成携带有合并节点名集合和节点度的上层节点,使得后续可以根据合并节点名集合和节点度从上层节点中确定待合并点进行合并,得到合并后的目标节点,用于生成神经网络模型的可视化数据。本发明实施例基于合并节点名集合和节点度,可从节点的层面上对神经网络结构进行简化,不局限于只对部分节点进行定义收缩,大大增强了神经网络模型可视化显示的简化程度。
请参阅图9,图9为本发明实施例提供的一种神经网络模型的可视化装置的结构框图。
本发明实施例提供了一种神经网络模型的可视化装置,神经网络模型具有多个节点;装置包括:
神经网络模型结构处理模块901,用于获取神经网络模型结构,生成上层节点及上层节点的合并节点名集合和节点度;
目标节点生成模块902,用于根据合并节点名集合和节点度对上层节点进行合并,生成目标节点;
可视化数据生成模块903,用于基于目标节点生成神经网络模型结构的可视化数据。
在本发明实施例中,神经网络模型结构处理模块901,包括:
输出节点列表、输入节点列表和节点名获取子模块,用于获取神经网络模型结构每个节点的输出节点列表、输入节点列表和节点名;
节点名最高命名层级获取子模块,用于获取节点名最高命名层级;
上层节点生成子模块,用于根据节点名最高命名层级和节点名,生成上层节点;
合并节点名集合生成子模块,用于获取上层节点中所包含节点的节点名,生成上层节点的合并节点名集合;
节点度生成子模块,用于根据上层节点的输出节点列表和输入节点列表,生成上层节点的节点度。
在本发明实施例中,上层节点生成子模块,包括:
节点名层级确定单元,用于确定每个节点的节点名层级;
辅助节点名生成单元,用于基于节点名最高命名层级和节点名层级,生成每个节点的辅助节点名;
上层节点生成单元,用于合并具有相同辅助节点名的节点,得到上层节点。
在本发明实施例中,节点度包括出度和入度;目标节点生成模块902,包括:
第一合并节点生成子模块,用于根据上层节点对应的出度,生成第一合并节点;
第二合并节点生成子模块,用于根据第一合并节点对应的入度,生成第二合并节点;
第三合并节点生成子模块,用于根据第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点;
第四合并节点生成子模块,用于根据第三合并节点的合并节点名集合和对应的入度,生成第四合并节点;
判断子模块,用于获取当前合并轮数,并判断合并轮数是否等于预设合并轮数阈值;
返回子模块,用于若否,将第四合并节点确定为上层节点,并返回根据上层节点对应的出度,生成第一合并节点的步骤;
目标节点确定子模块,用于若是,将第四合并节点确定为目标节点。
在本发明实施例中,第一合并节点生成子模块,包括:
第一节点获取单元,用于在上层节点中获取出度为1的第一节点;
第一节点判断单元,用于判断第一节点是否处于预设保留节点列表中;
第一临时集合添加单元,用于若否,获取第一节点对应的第一输出节点,并将第一输出节点添加至预设的第一临时集合中;
第一输入节点获取单元,用于在上层节点中获取第一输出节点对应的第一输入节点;
第一待合并节点确定单元,用于将不处在预设保留节点列表中,且出度为1的第一输入节点确定为第一待合并节点;
第一合并节点生成单元,用于对第一待合并节点进行合并,生成第一合并节点。
在本发明实施例中,第一合并节点生成单元,包括:
第一总节点选取子单元,用于在第一待合并节点中选取第一总节点;
第一合并节点名集合生成子单元,用于合并第一待合并节点的合并节点名集合,生成第一合并节点名集合;
第一输入节点列表生成子单元,用于合并第一待合并节点的输入节点列表,生成第一输入节点列表;
第一合并节点生成子单元,用于将第一合并节点名集合作为第一总节点的合并节点名集合,并将第一输入节点列表作为第一总节点的输入节点列表,生成第一合并节点。
在本发明实施例中,第二合并节点生成子模块,包括:
第二节点获取单元,用于在第一合并节点中获取入度为1的第二节点;
第二节点判断单元,用于判断第二节点是否处于预设保留节点列表中;
第二临时集合添加单元,用于若否,获取第二节点对应的第二输入节点,并将第二输入节点添加至预设的第二临时集合中;
第二输出节点获取单元,用于在第一合并节点中获取第二输入节点对应的第二输出节点;
第二待合并节点确定单元,用于将不处在预设保留节点列表中,且入度为1的第二输出节点确定为第二待合并节点;
第二合并节点生成单元,用于对第二待合并节点进行合并,生成第二合并节点。
在本发明实施例中,第二合并节点生成单元,包括:
第二总节点选取子单元,用于在第二待合并节点中选取第二总节点;
第二合并节点名集合生成子单元,用于合并第二待合并节点的合并节点名集合,生成第二合并节点名集合;
第一输出节点列表生成子单元,用于合并第二待合并节点的输出节点列表,生成第一输出节点列表;
第二合并节点生成子单元,用于将第二合并节点名集合作为第二总节点的合并节点名集合,并将第一输出节点列表作为第二总节点的输出节点列表,生成第二合并节点。
在本发明实施例中,第三合并节点生成子模块,包括:
串行结构建立单元,用于以入度不为1,出度为1的第二合并节点为初始节点,建立串行结构;
中间节点确定单元,用于将初始节点输出指向的入度为1的第二合并节点确定为中间节点;
初始节点排序单元,用于对初始节点的合并节点名集合进行字典排序,生成第一命名列表,并获取第一命名列表的第一列表长度和第一名称顺序;
中间节点排序单元,用于对中间节点的合并节点名集合进行字典排序,生成第二命名列表,并获取第二命名列表的第二列表长度和第二名称顺序;
串行结构添加单元,用于若第一名称顺序与第二名称顺序相同,且第一列表长度等于第二列表长度,则将中间节点添加进串行结构;
出度判断单元,用于判断中间节点的出度是否为1;
返回单元,用于若中间节点的出度为1,则将中间节点确定为初始节点;并返回将初始节点输出指向的入度为1的第二合并节点确定为中间节点的步骤;
第三待合并节点确定单元,若中间节点的出度不为1,则将串行结构中的第二合并节点确定为第三待合并节点;
第三合并节点生成单元,用于对第三待合并节点进行合并,生成第三合并节点。
在本发明实施例中,第三合并节点生成单元,包括:
第三总节点选取子单元,用于在第三待合并节点中选取第三总节点;
第三合并节点名集合生成子单元,用于合并第三待合并节点的合并节点名集合,生成第三合并节点名集合;
第三合并节点生成子单元,用于将第三合并节点名集合作为第三总节点的合并节点名集合,将串行结构上第一个节点的输入节点列表作为第三总节点的输入节点列表,将串行结构最后一个点的输出节点列表作为第三总节点的输出节点列表,生成第三合并节点。
在本发明实施例中,第四合并节点生成子模块,包括:
输出节点及合并节点名集合获取单元,用于获取第三合并节点的每个节点的输出节点及输出节点所对应的合并节点名集合;
第三命名列表生成单元,用于对多个输出节点对应的合并节点名集合进行字典排序,生成第三命名列表;
分组单元,用于对第三命名列表进行分组,得到节点分组;
第四待合并节点确定单元,用于将属于同一节点分组的输出节点确定为节点分组的第四待合并节点;
第四合并节点生成单元,用于对第四待合并节点进行合并,生成第四合并节点。
在本发明实施例中,第四合并节点生成单元,包括:
输入节点判断子单元,用于判断每个节点分组中的所有第四待合并节点对应的输入节点是否相同;
第四合并节点生成子单元,用于若是,合并节点分组中的第四待合并节点,生成第四合并节点。
本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令执行本发明实施例的神经网络模型的可视化方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的神经网络模型的可视化方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种神经网络模型的可视化方法,其特征在于,所述神经网络模型具有多个节点;所述方法包括:
获取神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度;所述上层节点是指具有相同上位层级的节点合并后产生的节点;
根据所述上层节点的合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点;
基于所述目标节点生成所述神经网络模型结构的可视化数据;
其中,所述获取神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度的步骤,包括:
获取所述神经网络模型结构每个所述节点的输出节点列表、输入节点列表和节点名;
获取节点名最高命名层级;
根据所述节点名最高命名层级和所述节点名,生成上层节点;
获取所述上层节点中所包含节点的节点名,生成所述上层节点的合并节点名集合;
根据所述上层节点的输出节点列表和输入节点列表,生成所述上层节点的节点度。
2.根据权利要求1所述的方法,其特征在于,所述根据所述节点名最高命名层级和所述节点名,生成上层节点的步骤,包括:
确定每个所述节点的节点名层级;
基于所述节点名最高命名层级和所述节点名层级,生成每个所述节点的辅助节点名;
合并具有相同辅助节点名的所述节点,得到上层节点。
3.根据权利要求1所述的方法,其特征在于,所述节点度包括出度和入度;所述根据所述上层节点的合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点的步骤,包括:
根据所述上层节点对应的出度,生成第一合并节点;
根据所述第一合并节点对应的入度,生成第二合并节点;
根据所述第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点;
根据所述第三合并节点的合并节点名集合和对应的入度,生成第四合并节点;
获取当前合并轮数,并判断所述合并轮数是否等于预设合并轮数阈值;
若否,将所述第四合并节点确定为上层节点,并返回根据所述上层节点对应的出度,生成第一合并节点的步骤;
若是,将所述第四合并节点确定为目标节点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述上层节点对应的出度,生成第一合并节点的步骤,包括:
在所述上层节点中获取出度为1的第一节点;
判断所述第一节点是否处于预设保留节点列表中;
若否,获取所述第一节点对应的第一输出节点,并将所述第一输出节点添加至预设的第一临时集合中;
在所述上层节点中获取所述第一输出节点对应的第一输入节点;
将不处在所述预设保留节点列表中,且出度为1的第一输入节点确定为第一待合并节点;
对所述第一待合并节点进行合并,生成第一合并节点。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一待合并节点进行合并,生成第一合并节点的步骤,包括:
在所述第一待合并节点中选取第一总节点;
合并所述第一待合并节点的合并节点名集合,生成第一合并节点名集合;
合并所述第一待合并节点的输入节点列表,生成第一输入节点列表;
将所述第一合并节点名集合作为所述第一总节点的合并节点名集合,并将所述第一输入节点列表作为所述第一总节点的输入节点列表,生成第一合并节点。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一合并节点对应的入度,生成第二合并节点的步骤,包括:
在所述第一合并节点中获取入度为1的第二节点;
判断所述第二节点是否处于预设保留节点列表中;
若否,获取所述第二节点对应的第二输入节点,并将所述第二输入节点添加至预设的第二临时集合中;
在所述第一合并节点中获取所述第二输入节点对应的第二输出节点;
将不处在所述预设保留节点列表中,且入度为1的第二输出节点确定为第二待合并节点;
对所述第二待合并节点进行合并,生成第二合并节点。
7.根据权利要求6所述的方法,其特征在于,所述对所述第二待合并节点进行合并,生成第二合并节点的步骤,包括:
在所述第二待合并节点中选取第二总节点;
合并所述第二待合并节点的合并节点名集合,生成第二合并节点名集合;
合并所述第二待合并节点的输出节点列表,生成第一输出节点列表;
将所述第二合并节点名集合作为所述第二总节点的合并节点名集合,并将所述第一输出节点列表作为所述第二总节点的输出节点列表,生成第二合并节点。
8.根据权利要求3所述的方法,其特征在于,所述根据所述第二合并节点的合并节点名集合和对应的出度、入度,生成第三合并节点的步骤,包括:
以入度不为1,出度为1的所述第二合并节点为初始节点,建立串行结构;
将所述初始节点输出指向的入度为1的所述第二合并节点确定为中间节点;
对所述初始节点的合并节点名集合进行字典排序,生成第一命名列表,并获取所述第一命名列表的第一列表长度和第一名称顺序;
对所述中间节点的合并节点名集合进行字典排序,生成第二命名列表,并获取所述第二命名列表的第二列表长度和第二名称顺序;
若所述第一名称顺序与所述第二名称顺序相同,且所述第一列表长度等于所述第二列表长度,则将所述中间节点添加进所述串行结构;
判断所述中间节点的出度是否为1;
若所述中间节点的出度为1,则将所述中间节点确定为所述初始节点;并返回将所述初始节点输出指向的入度为1的所述第二合并节点确定为中间节点的步骤;
若所述中间节点的出度不为1,则将所述串行结构中的所述第二合并节点确定为第三待合并节点;
对所述第三待合并节点进行合并,生成第三合并节点。
9.根据权利要求8所述的方法,其特征在于,所述对所述第三待合并节点进行合并,生成第三合并节点的步骤,包括:
在所述第三待合并节点中选取第三总节点;
合并所述第三待合并节点的合并节点名集合,生成第三合并节点名集合;
将所述第三合并节点名集合作为所述第三总节点的合并节点名集合,将所述串行结构上第一个节点的输入节点列表作为所述第三总节点的输入节点列表,将串行结构最后一个节点的输出节点列表作为第三总节点的输出节点列表,生成第三合并节点。
10.根据权利要求3所述的方法,其特征在于,所述根据所述第三合并节点的合并节点名集合和对应的入度,生成第四合并节点的步骤,包括:
获取所述第三合并节点的每个节点的输出节点及所述输出节点所对应的合并节点名集合;
对多个所述输出节点对应的合并节点名集合进行字典排序,生成第三命名列表;
对所述第三命名列表进行分组,得到节点分组;
将属于同一节点分组的输出节点确定为所述节点分组的第四待合并节点;
对所述第四待合并节点进行合并,生成第四合并节点。
11.根据权利要求10所述的方法,其特征在于,所述对所述第四待合并节点进行合并,生成第四合并节点的步骤,包括:
判断每个所述节点分组中的所有所述第四待合并节点对应的输入节点是否相同;
若是,合并所述节点分组中的第四待合并节点,生成第四合并节点。
12.一种神经网络模型的可视化装置,其特征在于,所述神经网络模型具有多个节点;所述装置包括:
神经网络模型结构处理模块,用于获取神经网络模型结构,生成上层节点及所述上层节点的合并节点名集合和节点度;所述上层节点是指具有相同上位层级的节点合并后产生的节点;
目标节点生成模块,用于根据所述上层节点的合并节点名集合和所述节点度对所述上层节点进行合并,生成目标节点;
可视化数据生成模块,用于基于所述目标节点生成所述神经网络模型结构的可视化数据;
其中,神经网络模型结构处理模块,包括:
输出节点列表、输入节点列表和节点名获取子模块,用于获取神经网络模型结构每个节点的输出节点列表、输入节点列表和节点名;
节点名最高命名层级获取子模块,用于获取节点名最高命名层级;
上层节点生成子模块,用于根据节点名最高命名层级和节点名,生成上层节点;
合并节点名集合生成子模块,用于获取上层节点中所包含节点的节点名,生成上层节点的合并节点名集合;
节点度生成子模块,用于根据上层节点的输出节点列表和输入节点列表,生成上层节点的节点度。
13.一种电子设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-11任一项所述的神经网络模型的可视化方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-11任一项所述的神经网络模型的可视化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110205467.XA CN112819160B (zh) | 2021-02-24 | 2021-02-24 | 一种神经网络模型的可视化方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110205467.XA CN112819160B (zh) | 2021-02-24 | 2021-02-24 | 一种神经网络模型的可视化方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819160A CN112819160A (zh) | 2021-05-18 |
CN112819160B true CN112819160B (zh) | 2023-10-31 |
Family
ID=75865211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110205467.XA Active CN112819160B (zh) | 2021-02-24 | 2021-02-24 | 一种神经网络模型的可视化方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112819160B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970221B (zh) * | 2022-08-01 | 2022-10-21 | 昆仑智汇数据科技(北京)有限公司 | 一种工业设备的系统动力学模型的处理方法、装置及设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156265A (zh) * | 2015-06-08 | 2016-11-23 | 北京天禾元创软件股份有限公司 | 用于合并树形结构的方法和装置 |
CN106682986A (zh) * | 2016-12-27 | 2017-05-17 | 南京搜文信息技术有限公司 | 一种基于大数据的复杂金融交易网络活动图的构造方法 |
CN107016090A (zh) * | 2017-04-05 | 2017-08-04 | 合肥酷庆信息科技有限公司 | 一种子群约束的复杂网络可视化方法 |
US9934462B1 (en) * | 2016-10-04 | 2018-04-03 | Sas Institute Inc. | Visualizing deep neural networks |
CN108696418A (zh) * | 2017-04-06 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种社交网络中隐私保护方法及装置 |
CN108989064A (zh) * | 2017-05-31 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 拓扑数据抽样方法和装置、视化方法和系统 |
CN110163348A (zh) * | 2019-04-29 | 2019-08-23 | 清华大学 | 深度神经网络鲁棒性可视分析系统及方法 |
CN110807103A (zh) * | 2019-10-18 | 2020-02-18 | 中国银联股份有限公司 | 知识图谱构建方法、装置、电子设备及存储介质 |
CN110826699A (zh) * | 2019-11-06 | 2020-02-21 | 中南大学 | 一种基于梯度的图神经网络可解释性分析方法 |
CN111159279A (zh) * | 2019-12-31 | 2020-05-15 | 联想(北京)有限公司 | 一种模型可视化方法、设备及存储介质 |
CN111553466A (zh) * | 2020-04-30 | 2020-08-18 | 上海商汤智能科技有限公司 | 信息处理方法、装置及设备 |
CN111597351A (zh) * | 2020-05-14 | 2020-08-28 | 上海德拓信息技术股份有限公司 | 可视化文档图谱构建方法 |
CN112270406A (zh) * | 2020-11-11 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的神经信息可视化方法 |
-
2021
- 2021-02-24 CN CN202110205467.XA patent/CN112819160B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156265A (zh) * | 2015-06-08 | 2016-11-23 | 北京天禾元创软件股份有限公司 | 用于合并树形结构的方法和装置 |
US9934462B1 (en) * | 2016-10-04 | 2018-04-03 | Sas Institute Inc. | Visualizing deep neural networks |
CN106682986A (zh) * | 2016-12-27 | 2017-05-17 | 南京搜文信息技术有限公司 | 一种基于大数据的复杂金融交易网络活动图的构造方法 |
CN107016090A (zh) * | 2017-04-05 | 2017-08-04 | 合肥酷庆信息科技有限公司 | 一种子群约束的复杂网络可视化方法 |
CN108696418A (zh) * | 2017-04-06 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种社交网络中隐私保护方法及装置 |
CN108989064A (zh) * | 2017-05-31 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 拓扑数据抽样方法和装置、视化方法和系统 |
CN110163348A (zh) * | 2019-04-29 | 2019-08-23 | 清华大学 | 深度神经网络鲁棒性可视分析系统及方法 |
CN110807103A (zh) * | 2019-10-18 | 2020-02-18 | 中国银联股份有限公司 | 知识图谱构建方法、装置、电子设备及存储介质 |
CN110826699A (zh) * | 2019-11-06 | 2020-02-21 | 中南大学 | 一种基于梯度的图神经网络可解释性分析方法 |
CN111159279A (zh) * | 2019-12-31 | 2020-05-15 | 联想(北京)有限公司 | 一种模型可视化方法、设备及存储介质 |
CN111553466A (zh) * | 2020-04-30 | 2020-08-18 | 上海商汤智能科技有限公司 | 信息处理方法、装置及设备 |
CN111597351A (zh) * | 2020-05-14 | 2020-08-28 | 上海德拓信息技术股份有限公司 | 可视化文档图谱构建方法 |
CN112270406A (zh) * | 2020-11-11 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的神经信息可视化方法 |
Non-Patent Citations (4)
Title |
---|
Xinyu Fu等.MAGNN: Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding.《arXiv》.2020,1-11. * |
伍振华.基于双代号网络图的网络计划技术研究.《中国优秀硕士学位论文全文数据库 基础科学辑》.2010,(第05期),A002-22. * |
廖晓辉.学习驱动的概率重构与数据可视化.《中国优秀硕士学位论文全文数据库 基础科学辑》.2020,(第06期),A002-330. * |
艾芳菊. 一类模糊神经网络的结构优化.《计算机工程》.2002,第28卷(第2期),144-146. * |
Also Published As
Publication number | Publication date |
---|---|
CN112819160A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111597314B (zh) | 推理问答方法、装置以及设备 | |
CN112487168B (zh) | 知识图谱的语义问答方法、装置、计算机设备及存储介质 | |
CN107391542B (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
CN109379220B (zh) | 基于组合优化的复杂网络关键节点簇挖掘的方法 | |
Zhi-Qiang | Causation, bayesian networks, and cognitive maps | |
CN105659225A (zh) | 使用路径受约束的随机游走的查询扩展和查询-文档匹配 | |
CN107590139B (zh) | 一种基于循环矩阵翻译的知识图谱表示学习方法 | |
CN111445008A (zh) | 一种基于知识蒸馏的神经网络搜索方法及系统 | |
CN113094593B (zh) | 社交网络事件推荐方法、系统、设备及存储介质 | |
CN113360604A (zh) | 基于认知推理的知识图谱多跳问答方法及模型 | |
CN112819160B (zh) | 一种神经网络模型的可视化方法、装置、设备及存储介质 | |
CN107992528A (zh) | 利用可解释推理网络的多关系问答系统 | |
US9674083B2 (en) | Path calculation order deciding method, program and calculating apparatus | |
CN111309852B (zh) | 生成可视化决策树集模型的方法、系统、装置及存储介质 | |
CN108470251B (zh) | 基于平均互信息的社区划分质量评价方法及系统 | |
CN105025013B (zh) | 基于优先级Trie树的动态IP匹配模型的建立方法 | |
CN108052743B (zh) | 一种阶梯接近中心度确定方法及系统 | |
KR102582779B1 (ko) | 뉴로 심볼릭 기반 릴레이션 임베딩을 통한 지식완성 방법 및 장치 | |
CN118020097A (zh) | 用于针对多个课程的概念的先决条件关系发现的方法和装置 | |
JP2017037544A (ja) | 未来シナリオ生成装置及び方法、並びにコンピュータプログラム | |
CN105474214A (zh) | 文本字符串搜索设备、文本字符串搜索方法和文本字符串搜索程序 | |
JP2010146472A (ja) | ビット列データソート装置、方法及びプログラム | |
Khaled et al. | Solving limited-memory influence diagrams using branch-and-bound search | |
Simiński et al. | Towards a practical approach to discover internal dependencies in rule-based knowledge bases | |
CN106960064B (zh) | 一种基于自学习的几何辅助线添加方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |