CN109002879B - 神经网络模型的可视化建模方法和装置 - Google Patents

神经网络模型的可视化建模方法和装置 Download PDF

Info

Publication number
CN109002879B
CN109002879B CN201810811692.6A CN201810811692A CN109002879B CN 109002879 B CN109002879 B CN 109002879B CN 201810811692 A CN201810811692 A CN 201810811692A CN 109002879 B CN109002879 B CN 109002879B
Authority
CN
China
Prior art keywords
visual
node
directed
nodes
arc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810811692.6A
Other languages
English (en)
Other versions
CN109002879A (zh
Inventor
高岩
段成德
姜凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Scientific Research Institute Co Ltd
Original Assignee
Shandong Inspur Scientific Research Institute 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 Shandong Inspur Scientific Research Institute Co Ltd filed Critical Shandong Inspur Scientific Research Institute Co Ltd
Priority to CN201810811692.6A priority Critical patent/CN109002879B/zh
Publication of CN109002879A publication Critical patent/CN109002879A/zh
Application granted granted Critical
Publication of CN109002879B publication Critical patent/CN109002879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Abstract

本发明提供了神经网络模型的可视化建模方法和装置,通过为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,当接收到对至少一个可视化控件的操作时,根据操作的每一个可视化控件对应的对象/实例以及映射关系,确定节点集合;当接收到对至少一个可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;当接收到建模请求时,初始化预先构建的源码文件;基于深度学习框架和初始化后的源码文件,利用节点集合和依赖关系集合,生成对应的神经网络模型。本发明提供的方案实现了对神经网络模型进行可视化构建。

Description

神经网络模型的可视化建模方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及神经网络模型的可视化建模方法和装置。
背景技术
神经网络模型的自学习功能,使其在系统辨识、模式识别、智能控制等领域有着广泛而吸引人的前景。但是,目前建立神经网络模型方式主要是,基于深度学习框架和深度学习框架支持的编程语言,为业务流程编写程序代码,并按照编写好的程序代码和深度学习框架,转化为对应的神经网络模型。目前这种神经网络模型的构建过程,只有在后续将神经网络模型转化为决策树之类的可视化图形之后,才能被用户了解。对于不懂程序代码和深度学习框架的用户来说,只能根据决策树之类的可视化图形,查看该神经网络模型是否存在错误,如果存在错误,还需要重新检测程序代码等。如果能够对神经网络模型进行可视化构建,用户将能实时监控神经网络模型构建过程,从而保证神经网络模型构建的准确性。
发明内容
本发明实施例提供了神经网络模型的可视化建模方法和装置,实现了可视化构建神经网络模型。
神经网络模型的可视化建模方法,为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,还包括:
当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
当接收到建模请求时,初始化预先构建的源码文件;
基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型。
可选地,
所述对至少一个所述可视化控件的操作,包括:将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数;或者,将位于可识别区域中的一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数;
所述对至少一个所述可视化有向弧的操作,包括:在所述可视化区域中,任两个可视化控件之间绘制所述可视化有向弧,或者,删除绘制的可视化有向弧。
可选地,上述方法进一步包括:
定义节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合为
Figure BDA0001739310320000021
所述确定节点集合,包括:
针对操作的每一个所述可视化控件执行下述N1至N3:
N1:通过所述映射关系,在所述深度学习框架中,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm}。
可选地,上述方法进一步包括:
定义有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合为
Figure BDA0001739310320000031
所述确定依赖关系集合,包括:
针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em}。
可选地,在所述接收到建模请求之后,进一步包括:
确定神经网络模型的有向图G;
G=(V,E),V={v1,...,vg},E={e1,...,es}
其中,g表征节点集合中节点的总个数,g为不小于1的正整数;s表征依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数。
可选地,所述利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型,包括:
循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
可选地,所述可视化控件,包括:图形形状和文字符号。
可选地,所述将输入输出关系映射为可视化有向弧,包括:
将输入输出关系映射成有向线段;
分别定义所述有向线段的起始端连接的模型节点为输入,终止端连接的模型节点为所述输入对应的输出。
神经网络模型的可视化建模装置,包括:映射构建与存储单元、节点集合构建单元、依赖关系集合构建单元以及模型生成单元,其中,
所述映射构建与存储单元,用于为外部的深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,存储各个映射关系、各个可视化控件以及可视化有向弧;
所述节点集合构建单元,用于当接收到对所述映射构建与存储单元存储的至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
所述依赖关系集合构建单元,用于当接收到对至少一个所述映射构建与存储单元存储的所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
所述模型生成单元,用于当接收到建模请求时,初始化预先构建的源码文件;基于外部的所述深度学习框架和初始化后的所述源码文件,利用所述节点集合构建单元确定的所述节点集合和所述依赖关系集合构建单元确定的所述依赖关系集合,生成对应的神经网络模型。
可选地,所述节点集合构建单元,进一步用于:构建节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合,成为
Figure BDA0001739310320000051
针对操作的每一次所述可视化控件执行下述N1至N3:
N1:在所述深度学习框架中,通过所述映射关系,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm};
所述依赖关系集合构建单元,进一步用于构建有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合,成为
Figure BDA0001739310320000061
针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em}。
可选地,上述装置进一步包括:有向图构建单元,用于确定神经网络模型的有向图G;
G=(V,E),V={v1,...,vg},E={e1,…,es}
其中,g表征所述节点集合构建单元确定的节点集合中节点的总个数,为不小于1的正整数;s表征所述依赖关系集合构建单元确定的依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数。
可选地,
所述模型生成单元,用于循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β-params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
本发明实施例提供了神经网络模型的可视化建模方法和装置,通过为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;当接收到建模请求时,初始化预先构建的源码文件;基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型,通过操作可视化控件,为神经网络模型构建节点,通过操作可视化有向弧,为神经网络模型构建依赖关系,然后利用节点集合和依赖关系集合,生成对应的神经网络模型,也就是说,整个神经网络的生成过程之需要用户对可视化控件和可视化有向弧进行操作,然后根据用户对可视化控件和可视化有向弧的操作来完成神经网络的构建,实现了对神经网络模型进行可视化构建。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的神经网络模型的可视化建模方法的流程图;
图2是本发明另一个实施例提供的神经网络模型的可视化建模方法的流程图;
图3是本发明一个实施例提供的一种可视化控件以及可视化控件所在区域的结构图;
图4是本发明一个实施例提供的一种神经网络模型的可视化有向图;
图5是本发明一个实施例提供的神经网络模型的可视化建模装置所在架构的结构示意图;
图6是本发明一个实施例提供的神经网络模型的可视化建模装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种神经网络模型的可视化建模方法,该方法可以包括以下步骤:
步骤101:为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧;
步骤102:当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
步骤103:当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
步骤104:当接收到建模请求时,初始化预先构建的源码文件;
步骤105:基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型。
在图1所示的实施例中,通过为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;当接收到建模请求时,初始化预先构建的源码文件;基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型,通过操作可视化控件,为神经网络模型构建节点,通过操作可视化有向弧,为神经网络模型构建依赖关系,然后利用节点集合和依赖关系集合,生成对应的神经网络模型,也就是说,整个神经网络的生成过程之需要用户对可视化控件和可视化有向弧进行操作,然后根据用户对可视化控件和可视化有向弧的操作来完成神经网络的构建,实现了对神经网络模型进行可视化构建。
其中,所述对至少一个所述可视化控件的操作,包括:将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数;或者,将位于可识别区域中的一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数;
例如:可视化构建页面包含有候选区域和画布区域,其中,后台在确定节点集合和确定依赖关系集合的过程,相当于识别画布区域的过程。步骤101构建的各个可视化控件放置于可视化的候选区域,对可视化控件具有两种操作:一种操作即为将候选区域中的一个可视化控件移入画布区域即上述的可视别区域,并通过单击该可视化控件中央位置,以文本框形式为该可视化控件添加可视化参数,例如对于卷积运算方法对应的可视化控件,需要添加的可视化参数包括卷积核大小、个数、移动步长、padding等,各个可视化控件需要添加的可视化参数即为可视化控件对应的运算方法所需参数,在此不再一一列举;第二种操作:将画布区域即上述的可视别区域中的一个可视化控件移出或删除,并删除该可视化控件的可视化参数。
所述对至少一个所述可视化有向弧的操作,包括:在所述可视化区域中,任两个可视化控件之间绘制所述可视化有向弧,或者,删除绘制的可视化有向弧。该过程的一种实施方式:对于具有依赖关系的两个可视化控件,例如可视化控件A对应的对象/实例的输出数据,为可视化控件B对应的对象/实例的输入数据,则以可视化控件A为起点绘制带箭头的线段,该带箭头的线段的肩头端指向可视化控件B;当需要解除可视化控件A与可视化控件B之间的依赖关系时,则删除可视化控件A与可视化控件B之间的带箭头的线段。
在本发明一个实施例中,为了确定节点集合,上述方法进一步包括:定义节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合为
Figure BDA0001739310320000101
则上述步骤102的一种具体实施方式包括:针对操作的每一个所述可视化控件执行下述N1至N3:
N1:在所述深度学习框架中,通过所述映射关系,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
例如:m=1,则V1=V0∪{v1};m=2,则V2=V1∪{v2}
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm}。
例如:Vm={v1,v2,v3,vm},则Vm-1即为去掉vm后的集合{v1,v2,v3}。
通过上述过程可知,操作的每一个可视化控件可实例化为一个对应的节点,而每一个实例化的节点对应一个可视化控件,即操作的可视化控件与节点一一对应,可以理解地,当针对可视化区域中或者画布区域中的最后一个可视化控件执行完成上述N2或者N3之后,确定出的当前节点集合即为生成神经网络模型所需的节点集合。
在本发明一个实施例中,上述方法进一步包括:定义有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合为
Figure BDA0001739310320000111
则上述步骤103的一种具体实施方式可包括:针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em}。
通过上述过程可知,操作的每一个可视化有向弧可实例化为一个对应的有向弧,而每一个实例化的有向弧对应一个可视化有向弧,即操作的可视化有向弧与实例化的有向弧一一对应,可以理解地,当针对可视化区域中或者画布区域中的最后一个实例化的有向弧执行完成上述M3或者M4之后,确定出的当前依赖关系集合即为生成神经网络模型所需的依赖关系集合。
在本发明一个实施例中,在所述接收到建模请求之后,进一步包括:
确定神经网络模型的有向图G;
G=(V,E),V={v1,...,vg},E={e1,...,es}
其中,g表征节点集合中节点的总个数,g为不小于1的正整数;s表征依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数。
在本发明一个实施例中,上述步骤105的具体实施方式可包括:循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
通过上述过程实现为依赖关系集合中的各个依赖关系生成各个代码段code_snippet,并将各个代码段code_snippet添加到源码文件尾部即为神经网络模型的代码文件。上述循环执行D1至D7可通过下述代码实现:
if
Figure BDA0001739310320000131
repeat:
检索出有向图G中所有无前继的节点,记为集合A={α}
令集合
Figure BDA0001739310320000132
forαinA:
检索出α所有的后继,记为集合B_α
B=B∪Bα
end for
forβinB:
构建代码段code_snippet:
β_output=β_function(α_output,β_params)
添加code_snippet到D尾部
E=E-(α,β)
end for
end repeat
输出D。
在本发明一个实施例中,所述可视化控件,包括:图形形状和文字符号。
在本发明一个实施例中,所述将输入输出关系映射为可视化有向弧,包括:
将输入输出关系映射成有向线段;
分别定义所述有向线段的起始端连接的模型节点为输入,终止端连接的模型节点为所述输入对应的输出。
为了能够清楚地说明神经网络模型的可视化建模方法,下面基于图3给出的可视化控件以及候选区域和画布区域,构建如图4所示的可视化有向图及对应的神经网络模型为例,展开说明神经网络模型的可视化建模方法,如图2所示,该方法可包括如下步骤:
步骤200:为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧;
该可视化控件可通过图形形状+文字符号来表示,比如卷积运算方法的可视化控件表现方式为圆圈内包含有文字符号conv2d,最大池化运算方法的可视化控件表现方式为矩形内包含有文字符号maxpool等等。
步骤201:定义节点集合和有向弧集合,构建源码文件;
该步骤定义的节点集合V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
该步骤定义的有向弧集合E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入。
步骤202:初始化节点集合和有向弧集合;
该步骤的初始化即为确定初始的节点集合
Figure BDA0001739310320000151
初始的有向弧集合
Figure BDA0001739310320000152
步骤203:实时检测画布区域是否移入新的可视化控件,如果是,则执行步骤204;否则,执行步骤207;
步骤204:将新的可视化控件作为当前可视化控件,获取外部输入的当前可视化控件的可视化参数;
步骤205:通过映射关系,在深度学习框架中,查找该当前可视化控件对应的对象/实例的运算方法;
步骤206:利用该当前可视化控件对应的可视化参数与查找到的所述运算方法,将该当前可视化控件实例化为一个节点,并将该节点添加到上一个节点集合,成为当前节点集合,并执行步骤203;
上述步骤204至步骤206的实现过程,如图3给出的可视化控件以及候选区域和画布区域,可通过鼠标拖动候选区域中的一个可视化控件到画布区域来完成上述将一个可视化控件移入画布区域;为移入画布区域的该可视化控件添加可视化参数的方式为,通过单击画布区域的可视化控件中央位置,出现文本框,通过在文本框中输入参数,即实现为移入画布区域的该可视化控件添加可视化参数。
将该可视化控件实例化为一个节点,并将该节点添加到上一个节点集合,成为当前节点集合的具体实施方式包括:该可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;则当前节点集合Vm=Vm-1∪{vm};例如:m=1,则V1=V0∪{v1};m=2,则V2=V1U{v2}。
步骤207:实时检测画布区域是否移出/删除可视化控件,如果是,则执行步骤208,否则,执行步骤211;
步骤208:将移出/删除可视化控件作为当前可视化控件,删除当前可视化控件的可视化参数;
步骤209:通过映射关系,在深度学习框架中,查找该当前可视化控件对应的对象/实例的运算方法;
步骤210:利用该当前可视化控件对应的可视化参数与查找到的所述运算方法,将该当前可视化控件实例化为一个节点,并将该节点从上一个节点集合中删除,成为当前节点集合,并执行步骤207;
例如:该步骤实例化的节点为vm,则当前节点集合Vm-1=Vm-{vm};
可以理解地,步骤203至步骤206是基于移入画布区域的可视化控件构建节点集合,步骤207至步骤210是基于删除/移出画布区域的可视化控件构建构建节点集合,在实际构建神经网络模型过程中,可以没有步骤207至步骤210;同时步骤203至步骤206与步骤207至步骤210之间没有严格的先后顺序,该实施例仅给出一种实现方式。另外,步骤203至步骤206中的当前可视化控件与步骤207至步骤210中的当前可视化控件之间没有关联性,可为不同的可视化控件。
步骤211:实时检测画布区域是否绘制新的可视化有向弧,如果是,则执行步骤212;否则,执行步骤214;
步骤212:将新的可视化有向弧作为当前可视化有向弧,获取在画布区域绘制的当前可视化有向弧;
可视化有向弧的绘制方式可为绘制有向线段即为,其中,有向线段起点对应的节点的输出数据,为有向线段终点对应的节点的输入数据;例如:一个有向线段连接可视化控件A和可视化控件B,可视化控件A位于有向线段的起点,可视化控件B位于有向线段的终点,则可视化控件A实例化后的节点的输出数据,为可视化控件B实例化后的节点的输入数据。
步骤213:解析绘制的当前可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点,利用起点连接的节点和终点连接的节点,实例化当前可视化有向弧,得到实例化的当前有向弧,并确定当前依赖关系集合,并执行步骤211;
例如:实例化的当前有向弧为em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;则当前依赖关系集合为Em=Em-1∪{em}。
步骤214:实时检测画布区域是否删除可视化有向弧,如果是,则执行步骤215,否则,执行步骤217;
步骤215:将删除的可视化有向弧作为当前可视化有向弧,获取在画布区域删除的当前可视化有向弧;
步骤216:解析删除的当前可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点,利用起点连接的节点和终点连接的节点,实例化当前可视化有向弧,得到实例化的当前有向弧,并确定当前依赖关系集合,并执行步骤214;
例如:实例化的当前有向弧为em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;则当前依赖关系集合为Em-1=Em-{em}。
可以理解地,步骤211至步骤213是基于绘制的有向弧构建依赖关系集合,步骤214至步骤216是基于删除的有向弧构建依赖关系集合,在实际构建神经网络模型过程中,可以没有步骤214至步骤216;同时步骤211至步骤213与步骤214至步骤216之间没有严格的先后顺序,另外,步骤211至步骤213中的当前可视化有向弧与步骤214至步骤216中的当前可视化有向弧之间没有关联行,可为不同的可视化有向弧。
另外,步骤203至步骤210为构建节点集合的过程,步骤211至步骤216为构建依赖关系集合,因此,步骤203至步骤210与步骤211至步骤216没有严格的先后顺序,本实施例是给出了一种实现方式。
步骤217:当接收到建模请求时,利用当前节点集合和当前依赖关系集合,生成神经网络模型的有向图,并初始化预先构建的源码文件;
该步骤确定出的有向图可为图4所示的有向图。
该步骤确定的神经网络模型的有向图G的表示方式可为:
G=(V,E),V={v1,...,vg},E={e1,...,es}
其中,g表征节点集合中节点的总个数,g为不小于1的正整数;s表征依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数。
步骤218:判断神经网络的有向图对应的当前依赖关系集合是否为空,如果否,则执行步骤219;如果是,则执行步骤222;
例如,图4给出的有向图中,当前依赖关系集合为:
{e1,e2,e3,e4,e5,e6,e7,e8},通过该步骤可知该当前依赖关系集合不为空。
步骤219:从所述当前依赖关系集合中,检索出所有无前继的节点;
例如:针对图4给出的有向图来说,该步骤检索出的无前继的节点为节点1。
步骤220:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
例如:针对图4给出的有向图来说,节点1对应的后继节点为节点2,节点2的后继节点为节点3等等。
步骤221:为每一个后继的所述节点构建代码段code_snippet;
代码段code_snippet:
β_output=β-function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量。
步骤222:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
步骤223:从所述当前依赖关系集合中,去除与步骤219和步骤220相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行步骤218;
例如:针对图4给出的有向图来说,当上述步骤220和步骤221完成为依赖关系e1代码段code_snippet,并将构建的代码段code_snippet添加到所述源码文件尾部后,新的依赖关系集合为{e2,e3,e4,e5,e6,e7,e8},{e2,e3,e4,e5,e6,e7,e8}作为当前依赖关系集合,执行步骤218。通过上述循环步骤218至步骤223实现为依赖关系集合中的每一个依赖关系构建代码段code_snippet。
上述步骤218至步骤223可通过下述程序实现:
if
Figure BDA0001739310320000191
repeat:
检索出有向图G中所有无前继的节点,记为集合A={α}
令集合
Figure BDA0001739310320000192
forαinA:
检索出α所有的后继,记为集合B_α
B=B∪Bα
end for
forβinB:
构建代码段code_snippet:
β_output=β_function(α_output,β_params)
添加code_snippet到D尾部
E=E-(α,β)
end for
end repeat
输出D。
其中,β_function为节点β表示的运算方法在深度学习框架中对应的方法名,α_output为节点α的输出变量,β_params为β_function方法的参数,β_output为节点β的输出变量。
步骤224:确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
可以理解地,深度学习框架为神经网络模型提供运算方法的接口。
如图5、图6所示,本发明实施例提供了一种神经网络模型的可视化建模装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图5所示,为本发明实施例提供的神经网络模型的可视化建模装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图6所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的神经网络模型的可视化建模装置,包括:映射构建与存储单元601、节点集合构建单元602、依赖关系集合构建单元603以及模型生成单元604,其中,
所述映射构建与存储单元601,用于为外部的深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,存储各个映射关系、各个可视化控件以及可视化有向弧;
所述节点集合构建单元602,用于当接收到对所述映射构建与存储单元601存储的至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
所述依赖关系集合构建单元603,用于当接收到对至少一个所述映射构建与存储单元601存储的所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
所述模型生成单元604,用于当接收到建模请求时,初始化预先构建的源码文件;基于外部的所述深度学习框架和初始化后的所述源码文件,利用所述节点集合构建单元602确定的所述节点集合和所述依赖关系集合构建单元603确定的所述依赖关系集合,生成对应的神经网络模型。
在本发明另一实施例中,
所述节点集合构建单元602,进一步用于:构建节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合,成为
Figure BDA0001739310320000201
针对操作的每一次所述可视化控件执行下述N1至N3:
N1:在所述深度学习框架中,通过所述映射关系,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm};
所述依赖关系集合构建单元603,进一步用于构建有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek={vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合,成为
Figure BDA0001739310320000211
针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em}。
在本发明又一实施例中,上述装置进一步包括:有向图构建单元(图中未示出),用于确定神经网络模型的有向图G;
G=(V,E),V={v1,...,vg},E={e1,...,es}
其中,g表征所述节点集合构建单元确定的节点集合中节点的总个数,g为不小于1的正整数;s表征所述依赖关系集合构建单元确定的依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数。
在本发明另一实施例中,所述模型生成单元604,用于循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。
综上所述,本发明以上各个实施例至少具有如下有益效果:
1、在本发明实施例中,通过为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;当接收到建模请求时,初始化预先构建的源码文件;基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型,通过操作可视化控件,为神经网络模型构建节点,通过操作可视化有向弧,为神经网络模型构建依赖关系,然后利用节点集合和依赖关系集合,生成对应的神经网络模型,也就是说,整个神经网络的生成过程之需要用户对可视化控件和可视化有向弧进行操作,然后根据用户对可视化控件和可视化有向弧的操作来完成神经网络的构建,实现了对神经网络模型进行可视化构建。
2、在本发明实施例中,在整个建模周期中,用户只需要将不同的可视化控件组合到可视别区域如画布区域,并使用有向弧连接可视化控件建立输入输出关系,来完成神经网络的构建。用户无需学习编程语言和深度学习框架即可建立神经网络模型,从而使神经网络模型构建更加简单。
3、用户可实时通过可视化区域中的可视化控件和可视化有向弧,获悉神经网络模型所需的节点或者依赖关系是否有错误或者缺失,可对错误或缺失进行及时的补救,从而提高了神经网络模型构建的准确率。
4、在本发明实施例中,用户只需要将不同的可视化控件组合到可视别区域如画布区域,并使用有向弧连接可视化控件建立输入输出关系,来完成神经网络的构建,与编写神经网络模型代码相比,本发明实施例提供的构建神经网络模型的方案,能够大大的提高神经网络模型构建的效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (3)

1.神经网络模型的可视化建模方法,其特征在于,为深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,还包括:
当接收到对至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
当接收到对至少一个所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
当接收到建模请求时,初始化预先构建的源码文件;
基于所述深度学习框架和初始化后的所述源码文件,利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型;
所述对至少一个所述可视化控件的操作,包括:将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数;或者,将位于可识别区域中的一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数;
所述对至少一个所述可视化有向弧的操作,包括:在可视化区域中,任两个可视化控件之间绘制所述可视化有向弧,或者,删除绘制的可视化有向弧;
进一步包括:
定义节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合为
Figure FDA0003076777420000011
所述确定节点集合,包括:
针对操作的每一个所述可视化控件执行下述N1至N3:
N1:通过所述映射关系,在所述深度学习框架中,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm};
进一步包括:
定义有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合为
Figure FDA0003076777420000021
所述确定依赖关系集合,包括:
针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em};
进一步包括:
确定神经网络模型的有向图G;
G=(V,E),V={v1,…,vg},E={e1,…,es}
其中,g表征节点集合中节点的总个数,g为不小于1的正整数;s表征依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数;
所述利用所述节点集合和所述依赖关系集合,生成对应的神经网络模型,包括:
循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
2.根据权利要求1所述的方法,其特征在于,
所述可视化控件,包括:图形形状和文字符号;
和/或,
所述将输入输出关系映射为可视化有向弧,包括:
将输入输出关系映射成有向线段;
分别定义所述有向线段的起始端连接的模型节点为输入,终止端连接的模型节点为所述输入对应的输出。
3.神经网络模型的可视化建模装置,其特征在于,包括:映射构建与存储单元、节点集合构建单元、依赖关系集合构建单元以及模型生成单元,其中,
所述映射构建与存储单元,用于为外部的深度学习框架中的各个运算方法与各个对象/实例构建映射关系,并为各个所述对象/实例构建对应的可视化控件,并将输入输出关系映射为可视化有向弧,存储各个映射关系、各个可视化控件以及可视化有向弧;
所述节点集合构建单元,用于当接收到对所述映射构建与存储单元存储的至少一个所述可视化控件的操作时,根据操作的每一个所述可视化控件对应的对象/实例以及所述映射关系,确定节点集合;
所述依赖关系集合构建单元,用于当接收到对至少一个所述映射构建与存储单元存储的所述可视化有向弧的操作时,根据操作的每一个所述可视化有向弧和所述输入输出关系,确定依赖关系集合;
所述模型生成单元,用于当接收到建模请求时,初始化预先构建的源码文件;基于外部的所述深度学习框架和初始化后的所述源码文件,利用所述节点集合构建单元确定的所述节点集合和所述依赖关系集合构建单元确定的所述依赖关系集合,生成对应的神经网络模型;
所述节点集合构建单元,进一步用于:构建节点集合V,V={vi|vi=(type,params)},其中,vi表征第i个节点;type表征第i个节点对应的运算方法;params表征第i个节点对应的参数;
初始化所述节点集合,成为
Figure FDA0003076777420000041
针对操作的每一次所述可视化控件执行下述N1至N3:
N1:在所述深度学习框架中,通过所述映射关系,查找操作的所述可视化控件对应的对象/实例的运算方法,并利用操作的所述可视化控件对应的可视化参数与查找到的所述运算方法,将操作的所述可视化控件实例化为一个节点vm=(typem,paramsm),其中,vm表征操作的所述可视化控件实例化的第m个节点,m为不小于1的正整数;typem表征操作的所述可视化控件对应的运算方法;paramsm表征操作的所述可视化控件对应的可视化参数;
N2:当所述操作为将一个可视化控件移入可识别区域,并为移入的所述可视化控件添加可视化参数时,确定当前节点集合Vm=Vm-1∪{vm};
N3:当所述操作为将一个可视化控件移出可识别区域,并删除移出的所述可视化控件对应的可视化参数时,确定当前节点集合Vm-1=Vm-{vm};
所述依赖关系集合构建单元,进一步用于构建有向弧集合E,其中,E={ek|ek=(vp,vq)},ek表征第k个有向弧;ek=(vp,vq)表征vp为第k个有向弧起点连接的节点,vq为第k个有向弧的终点连接的节点,第k个有向弧构建出的依赖关系为第p个节点的输出为第q个节点的输入;
初始化所述有向弧集合,成为
Figure FDA0003076777420000051
针对操作的每一个所述可视化有向弧执行下述M1至M4:
M1:解析操作的所述可视化有向弧的起点连接的节点和操作的所述有向弧的终点连接的节点;
M2:利用起点连接的所述节点和终点连接的所述节点,实例化操作的所述可视化有向弧,得到实例化的有向弧em=(va,vb),其中,em表征实例化的第m个有向弧,m为不小于1的正整数;va表征第m个实例化的有向弧的起点连接的节点;vb表征第m个实例化的有向弧的终点连接的节点;
M3:当所述操作为绘制所述可视化有向弧时,确定当前依赖关系集合Em=Em-1∪{em};
M4:当所述操作为删除绘制的可视化有向弧时,确定当前依赖关系集合Em-1=Em-{em};
进一步包括:有向图构建单元,用于确定神经网络模型的有向图G;
G=(V,E),V={v1,…,vg},E={e1,…,es}
其中,g表征所述节点集合构建单元确定的节点集合中节点的总个数,g为不小于1的正整数;s表征所述依赖关系集合构建单元确定的依赖关系集合中实例化的有向弧总个数,s为不小于0的正整数;
和/或,
所述模型生成单元,用于循环执行下述D1至D7:
D1:判断当前依赖关系集合是否为空,如果否,则执行D2;如果是,则执行D7;
D2:从所述当前依赖关系集合中,检索出所有无前继的节点;
D3:针对每一个无前继的所述节点,执行:从所述当前依赖关系集合中,检索所有的后继的节点;
D4:为每一个后继的所述节点构建代码段code_snippet:
β_output=β_function(α_output,β_params)
其中,β_function表征节点β的运算方法在深度学习框架中对应的方法名;α_output表征节点α的输出变量,β_params表征β_function对应的参数,β_output为节点β的输出变量;
D5:将每一个后继的所述节点对应的代码段code_snippet顺序添加到所述源码文件尾部;
D6:从所述当前依赖关系集合中,去除与D2和D3相关的依赖关系,成为新的依赖关系集合,并将新的依赖关系集合作为当前依赖关系集合,执行D1;
D7:结束循环,确定添加有代码段code_snippet的源码文件为神经网络模型的代码文件。
CN201810811692.6A 2018-07-23 2018-07-23 神经网络模型的可视化建模方法和装置 Active CN109002879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810811692.6A CN109002879B (zh) 2018-07-23 2018-07-23 神经网络模型的可视化建模方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810811692.6A CN109002879B (zh) 2018-07-23 2018-07-23 神经网络模型的可视化建模方法和装置

Publications (2)

Publication Number Publication Date
CN109002879A CN109002879A (zh) 2018-12-14
CN109002879B true CN109002879B (zh) 2021-09-03

Family

ID=64596180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810811692.6A Active CN109002879B (zh) 2018-07-23 2018-07-23 神经网络模型的可视化建模方法和装置

Country Status (1)

Country Link
CN (1) CN109002879B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109635932A (zh) * 2018-12-16 2019-04-16 北京工业大学 一种部分连接多层感知器的图形化设计与实现方法
CN109948804B (zh) * 2019-03-15 2021-11-02 北京清瞳时代科技有限公司 跨平台拖拽式深度学习建模与训练方法及装置
CN112508163B (zh) * 2020-11-23 2021-12-07 北京百度网讯科技有限公司 神经网络模型中子图的展示方法、装置和存储介质
CN113051819A (zh) * 2021-03-24 2021-06-29 依瞳科技(深圳)有限公司 一种可视化建模方法、装置、设备和计算机可读存储介质
CN112882696B (zh) * 2021-03-24 2024-02-02 国家超级计算天津中心 一种基于超级计算机的全要素模型训练系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372721A (zh) * 2016-08-29 2017-02-01 中国传媒大学 大规模神经网络的3d可视化方法
CN107704925A (zh) * 2017-10-16 2018-02-16 清华大学 深度神经网络训练过程的可视分析系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248675B2 (en) * 2013-10-16 2019-04-02 University Of Tennessee Research Foundation Method and apparatus for providing real-time monitoring of an artifical neural network
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106372721A (zh) * 2016-08-29 2017-02-01 中国传媒大学 大规模神经网络的3d可视化方法
CN107704925A (zh) * 2017-10-16 2018-02-16 清华大学 深度神经网络训练过程的可视分析系统及方法

Also Published As

Publication number Publication date
CN109002879A (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN109002879B (zh) 神经网络模型的可视化建模方法和装置
CN110069252B (zh) 一种源代码文件多业务标签自动化分类方法
CN106598574B (zh) 页面渲染的方法和装置
Št'ava et al. Inverse procedural modeling by automatic generation of L‐systems
US9530102B2 (en) Multimodal input processing
Gulwani et al. Programming by examples: PL meets ML
US20170235550A1 (en) General software modeling method to construct software models based on a software meta model
CN108537328A (zh) 用于可视化构建神经网络的方法
CN111966817B (zh) 基于深度学习及代码上下文结构和文本信息的api推荐方法
US20180239593A1 (en) Automatic program generation system and automatic program generation method
US5386558A (en) Method and apparatus for executing control system functions in a computer system
CN111373406B (zh) 使用问题匹配的先验知识提取的加速仿真设置过程
US11256996B2 (en) Method for recommending next user input using pattern analysis of user input
CN111260073A (zh) 数据处理方法、装置和计算机可读存储介质
CN113157183B (zh) 深度学习模型构建方法、装置、电子设备及存储介质
US20220036232A1 (en) Technology for optimizing artificial intelligence pipelines
CN113051011A (zh) 一种结合rpa和ai的图像信息提取方法及装置
Kolbeck et al. Graph rewriting techniques in engineering design
US20220283696A1 (en) Content processing method
CN113609806B (zh) 一种结合子图同构的量子线路程序通用变换方法
CN113408271B (zh) 基于rpa及ai的信息抽取方法、装置、设备及介质
Plimmer et al. Rata: codeless generation of gesture recognizers
Martínez Rojas et al. Towards a unified model representation of machine learning knowledge
Belém et al. On the impact of machine learning
CN115879868B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210818

Address after: 250100 building S02, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant after: Shandong Inspur Scientific Research Institute Co.,Ltd.

Address before: 250100 First Floor of R&D Building 2877 Kehang Road, Sun Village Town, Jinan High-tech Zone, Shandong Province

Applicant before: JINAN INSPUR HIGH-TECH TECHNOLOGY DEVELOPMENT Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181214

Assignee: INSPUR SOFTWARE Co.,Ltd.

Assignor: Shandong Inspur Scientific Research Institute Co.,Ltd.

Contract record no.: X2023980030294

Denomination of invention: Visual modeling method and device of neural network model

Granted publication date: 20210903

License type: Exclusive License

Record date: 20230110