CN112148276A - 用于深度学习的可视化编程 - Google Patents

用于深度学习的可视化编程 Download PDF

Info

Publication number
CN112148276A
CN112148276A CN201910578856.XA CN201910578856A CN112148276A CN 112148276 A CN112148276 A CN 112148276A CN 201910578856 A CN201910578856 A CN 201910578856A CN 112148276 A CN112148276 A CN 112148276A
Authority
CN
China
Prior art keywords
neural network
artificial neural
response
graphical element
intermediate representation
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
CN201910578856.XA
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201910578856.XA priority Critical patent/CN112148276A/zh
Priority to AU2020304378A priority patent/AU2020304378A1/en
Priority to KR1020217042561A priority patent/KR20220027870A/ko
Priority to PCT/US2020/031544 priority patent/WO2020263421A1/en
Priority to BR112021021752A priority patent/BR112021021752A2/pt
Priority to EP20729896.9A priority patent/EP3991098A1/en
Priority to US17/615,080 priority patent/US20220222049A1/en
Priority to JP2021568242A priority patent/JP2022539290A/ja
Priority to CA3139706A priority patent/CA3139706A1/en
Publication of CN112148276A publication Critical patent/CN112148276A/zh
Pending legal-status Critical Current

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
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Image Analysis (AREA)

Abstract

本公开的多个实现涉及用于深度学习的可视化编程。在一种计算机实现的方法中,呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。

Description

用于深度学习的可视化编程
背景技术
由于深度学习的广泛应用,学习和使用深度学习编程的开发者变得越来越多。然而,在目前的深度学习编程过程中,开发者需要编写大量的代码来预处理数据和构建深度学习模型。初学者通常淹没在大量的底层代码中,难以快速理解和掌握深度学习编程。
发明内容
在一种计算机实现的方法中,呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
提供发明内容部分是以一种简化的形式有选择地介绍发明构思,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
图1示出了能够实施本公开的多个实现的计算设备的框图;
图2示出了根据本公开的一些实现的可视化编程架构的示意图;
图3示出了根据本公开的一些实现的人工神经网络的可视化表示的示意图;以及
图4示出了根据本公开的一些实现的用于可视化编程的方法的流程图。
这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100可以由通用计算设备来实现,也可以由专用计算设备来实现。计算设备100的部件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
在一些实现中,计算设备100可以被实现为具有计算能力的各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(CPU)、微处理器、控制器、微控制器。另外,处理单元110还可以实施为图形处理单元(GPU),以用于执行并行运算等计算密集型处理。
计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器120可以包括可视化编程模块122,这些程序模块被配置为执行本文所描述的各种实现的功能。可视化编程模块122可以由处理单元110访问和运行,以实现相应功能。
存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的部件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
在一些实现中,除了被集成在单个设备上之外,计算设备100的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算部件被访问。云计算架构的软件或部件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的部件和功能。候选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
计算设备100可以用于实施根据本公开的多个实现的可视化编程方案。例如,计算设备100可以在显示器上显示人工神经网络的可视化表示,例如,各个层以及层与层之间的连接。计算设备100可以通过输入设备150接收用户输入,例如,拖放操作等。例如,用户可以将一层拖放到画布上。可视化编程模块122可以基于用户输入来修改呈现的可视化表示,并进一步更新与人工神经网络相关联的代码。这些代码可以被提供给输出设备160,以作为输出180提供给用户等。例如,这些代码可以与可视化表示同时显示在显示器上,以呈现给用户。
图2示出了根据本公开的一些实现的可视化编程的架构200的示意图。例如,架构200可以由图1所示的计算设备100,特别是可视化编程模块122实现。然而,应当理解,架构200也可以在任何其他合适的设备上来实现。
如图2所示,可视化模型编辑器204可以加载可视化模型202,可视化模型202可以是该开发者使用可视化模型编辑器204编辑并保存的可视化模型,也可以是由其他开发者共享的可视化模型。可视化模型202可以以描述文件的形式保存,也可以以其他适当的形式来保存。备选地,开发者也可以从零开始使用可视化模型编辑器204来编辑可视化模型。
例如,可视化模型编辑器204可以包括开发者可以通过拖放等操作来编辑深度学习的可视化模型的画布。拖放是图形用户界面中比较常见的操作方式,用户可以使用拖放操作很方便地编辑图形元件之间的连接关系。例如,用户可以将一个图形元件拖放到另一图形元件的输入处,用户也可以将一个图形元件从一个图形元件的输入移开。图3示出了根据本公开的一些实现的人工神经网络的可视化表示300的示意图。可视化表示300可以呈现在可视化模型编辑器204的画布上。可视化表示300包括表示人工神经网络的各个层的图形元件,例如,可以与开发者进行交互的图形用户界面元件。例如,开发者可以点击图形界面元件以修改各个层的参数,例如,形状(也称数据的维度)、内核大小、激活函数等。在这里,参数表示相应层的一个或多个可修改的属性。
如图3所示,图形元件302表示输入层,图形元件304表示二维卷积层,图形元件306表示二维最大池化层,图形元件308表示展平层,并且图形元件310表示全连接层。在每一个图形元件处,还示出了相应的层的形状。例如,输入层的原始数据形状是[28,28,1],即,28x28x 1的张量。
应当理解,这里的术语“层”不仅可以包括通常的人工神经网络的处理层(例如,卷积层、全连接层、池化层),还可以包括结构化输入/输出,例如,图3中的图形元件302表示的输入层。另外,人工神经网络的处理层通常包含多个算子(operator)的集合。例如,全连接层可能包含矩阵乘法和加法运算两种算子的组合。因此,这里的术语“层”还可以包括比通常的处理层更基本的计算组件,即,算子,例如,矩阵乘法。
可视化表示300不仅包括各个图形元件,还包括这些图形元件之间的连接关系,从而作为整体形成相应模型的可视化表示。
以图示的方式,开发者可以非常容易地修改各层的参数并在各层之间进行连接。例如,在开发者对可视化表示300进行编辑时,可视化模型编辑器204可以确定各个层的形状。基于这些形状参数,可以验证人工神经网络的各层的形状是否匹配。例如,如果两个层的形状不匹配,则可以在可视化表示300中显示错误指示。例如,该可视化编程工具可以在任何层的形状改变和/或任何图形元件之间的连接关系改变之后即时对人工神经网络模型进行验证,以期尽快发现该模型的问题。
在一些实现中,用户可以将第一图形元件拖放到第二图形元件处,以将第一图形元件连接到第二图形元件。第一图形元件的输出被提供至第二图形元件的输入,因而第一图形元件的输出的数据维度应当与第二图形元件的输入的数据维度相匹配,否则人工神经网络将出现错误。另外,可视化编辑器204可以根据各个图形元件的形状来自动地连接图形元件。例如,当用户添加一个新的图形元件时,可以自动地将与该图形元件的形状相匹配的图形元件与该图形元件相连接。
例如,在图3所示的示例中,如果用户对图形元件302表示的输入层的数据维度进行了修改,那么可视化模型编辑器204可以将输入层的数据维度和图形元件304表示的卷积层的输入的数据维度进行比较,以验证这两个层的形状是否匹配。
在一些实现中,如果用户对图形元件302表示的输入层的数据维度进行了修改,那么可视化模型编辑器204可以将图形元件304表示的卷积层的输入的数据维度相应调整为图形元件302表示的输入层的数据维度。此外,可视化模型编辑器204还可以验证图形元件304表示的卷积层的输出的数据维度是否匹配。
在一些实现中,可视化模型编辑器204可以提供预定义的人工神经网络的层的集合。这些构造层可以组织成多个工具箱面板,例如,输入/输出、卷积神经网络(CNN)、递归神经网络(RNN)、全连接层、张量操作等。开发者可以根据需要从这些工具箱面板中选择所需的构造层来构建人工神经网络模型。例如,可视化模型编辑器204的界面还可以包括搜索选项,其支持对特定层的搜索,并可以选择与搜索相匹配的层拖放到画布上。
在一些实现中,开发者可以保存人工神经网络模型或可视化模型,以供后续调用。这些模型可以以描述文件的形式来保持,也可以以任何其他合适的形式来保持。保存的可视化模型也可以分享给其他开发者使用。
在一些实现中,可视化模型编辑器204的界面还可以包括数据接口,以用于提供对数据集的预览。例如,可以提供一些公共数据,例如,公共数据集,也可以提供数据导入接口,以供开发者上传本地的数据集来进行训练。在开发者选择特定的数据集之后,可视化模型编辑器204可以加载该数据集,并显示该数据集和/或相关信息。例如,数据集的总样本量、训练集的样本量和测试集的样本量都可以显示在界面上。例如,可以对公共数据和本地数据提供统一的用户接口,并且用户可以快速导入自己的数据。用户可以预览上传的数据并对模型进行训练以及利用训练好的模型进行推断。
如图2所示,当开发者修改人工神经网络的可视化表示时,中间模型生成器208可以即时地将该可视化表示转换为中间表示,中间表示独立于深度学习框架。中间表示可以对应于可视化表示300,并且指示每个图形元件的参数和名称。例如,中间表示可以包括预定义的图形元件的参数和名称等规范化的描述。该描述独立于深度学习框架。通常而言,各深度学习框架对于人工神经网络的层具有其特定的规范,在不同的深度学习框架之下,其人工神经网络的特定的层及其特定的参数和名称等规范也不同。
中间表示可以以中间计算图的形式来体现,每个节点可以对应于可视化表示中的一个图形元件。中间计算图可以将人工神经网络描述成一个有向图,并且独立于深度学习框架。节点与深度学习框架的层之间可以不存在一一对应关系。例如,一个节点可以对应于一个深度学习框架的多个层,或者多个节点可以对应于一个深度学习框架中的一层。
在一些实现中,也可以通过中间模型生成器208来验证经编辑或修改的人工神经网络模型,并通过可视化模型编辑器204在对应的图形元件处指示相关错误。例如,在图3所示的示例中,如果用户对图形元件302表示的输入层的数据维度进行了修改,那么中间模型生成器208可以获取图形元件304表示的卷积层的输入的数据维度,并将输入层的数据维度与卷积层的数据维度进行比较,以验证其二者的形状是否匹配。
在另一些实现中,如果用户对图形元件302表示的输入层的数据维度进行了修改,中间模型生成器208也可以将图形元件304表示的卷积层的输入的数据维度相应调整为输入层的数据维度。然后,中间模型生成器208还可以验证卷积层的输出的数据维度是否匹配。
深度学习框架可能提供多种编程语言的接口,以支持不同编程语言的程序。在一些实现中,中间表示也可以独立于深度学习框架所支持的编程语言。
然后,中间表示可以被提供给目标代码生成器210。对于每个支持的深度学习框架,目标代码生成器210能够生成训练和/或推断程序和代码,例如,TensorFlow代码212、PyTorch代码214或CNTK代码216等。例如,开发者可以选择目标深度学习框架,并目标代码生成器210可以基于预定的规则来生成针对该目标深度学习框架的代码。例如,目标代码生成器210可以将中间表示的每个节点转换为目标深度学习框架下的与该节点对应的预定义代码。
在一些实现中,开发者可以将目标深度学习框架更改为另一目标深度学习框架。然后,目标代码生成器210基于人工神经网络的中间表示可以确定针对该另一目标深度学习框架的代码。以这种方式,可以非常容易地在多个深度学习框架之间进行切换。
在一些实现中,可以在界面上并行地显示可视化模型和相对应的代码。例如,在界面上可以同时显示画布和代码部分。代码还可以包括代码存根或可编辑区域,以允许用户定制其自己的针对人工神经网络的训练的度量,以取代损失、精度等常见的度量。
如图2所示,作业提交器220可以接收代码212、214或216,以及输入数据218,并将生成的程序提交给本地主机222、云224或云226,以进行训练或推断。云224和226可以部署深度学习云平台(也称机器学习云平台),以用于执行这些代码或程序。另外,也可以将程序提交给远程工作站来执行。
在训练过程中,在界面上还可以实时绘制人工神经网络训练的度量图,即,表示度量的值在训练过程中的变化的绘图。以这种方式,开发者可以容易地观察训练过程,并对人工神经网络和/或其训练过程进行调试。通过实时查看执行进度和运行指标或度量,用户可以方便地决策继续运行还是提前终止。
例如,作业提交器220可以提供一键作业提交特征,并且可以与AI的集成开发环境集成。因此,训练代码可以很容易在云端或本地进行运行。
本公开的多个实现提供的可视化编程工具可以将数据预处理、深度学习模型设计和作业提交/管理作为一个完整的流水线整合在一起。该可视化编程工具通过简单的用户界面提供了模型构造、训练和推断功能,并允许用户以简单和可视化的方式来拖放深度学习层来设计模型。以这种方式,可以大大地简化了深度学习的开发过程。
该工具可以自动地生成训练代码,从而用户可以根据可视化模型表示来训练模型。该工具可以在可视化模型表示和生成的代码之间进行自动同步。当用户修改可视化模型表示或代码时,代码或可视化模型表示会自动进行更新。
图4示出了根据本公开的一些实现的用于深度学习的可视化编程的方法400的流程图。方法400可以在如图1所示的可视化编程模块122处执行,也可以以如图2所示的架构200来执行。
在402,呈现人工神经网络的可视化表示,例如,如图3所示的可视化表示300。可视化表示300包括表示人工神经网络的层的图形元件,例如,图形元件302-310。
在404,当开发者等用户对可视化表示300进行编辑操作时,例如,对图形元件进行拖放操作时,可以修改人工神经网络的中间表示,以指示被拖放操作修改的图形元件之间的连接关系。其中,人工神经网络的中间表示独立于深度学习框架。
在406,基于人工神经网络的中间表示,修改人工神经网络的针对目标深度学习框架的代码。
在一些实现中,方法400还包括响应于针对代码的编辑操作,修改人工神经网络的中间表示;以及基于修改的中间表示,调整人工神经网络的可视化表示。
在一些实现中,方法400还包括响应于接收到针对图形元件络的拖放操作,验证人工神经网络的层的形状是否匹配。
在一些实现中,方法400还包括响应于接收到与关键字相关联的搜索操作,呈现表示与关键字相对应的至少一个候选层的图形元件;以及响应于接收到针对至少一个候选层的图形元件的选择,将所选择的图形元件添加到可视化表示。
在一些实现中,方法400还包括呈现用于定制人工神经网络的度量的代码存根;以及响应于对代码存根的编辑操作,定制人工神经网络的度量。
在一些实现中,执行拖放操作,以使得以下至少一项:向可视化表示中添加新的表示人工神经网络的层的图形元件;从可视化表示中删除表示人工神经网络的层的图形元件;修改表示人工神经网络的层的图形元件之间的连接关系;以及修改表示人工神经网络的层的图形元件的参数。
在一些实现中,方法400还包括响应于接收到将目标深度学习框架修改为另一目标深度学习框架的指示,基于人工神经网络的中间表示,确定人工神经网络的针对另一目标深度学习框架的代码。
以下列出了本公开的一些示例实现。
在第一方面,本公开提供了一种计算机实现的方法。该方法包括:呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;响应于接收到针对图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
在一些实现中,该方法还包括:响应于针对所述代码的编辑操作,修改所述人工神经网络的中间表示;以及基于修改的所述中间表示,调整所述人工神经网络的可视化表示。
在一些实现中,该方法还包括:响应于接收到针对图形元件的拖放操作,验证与所述人工神经网络的层相关联的数据的维度。
在一些实现中,该方法还包括:响应于接收到与关键字相关联的搜索操作,呈现表示与所述关键字相对应的至少一个候选层的图形元件;以及响应于接收到针对至少一个候选层的图形元件的选择,将所选择的图形元件添加到所述可视化表示。
在一些实现中,该方法还包括:呈现用于定制所述人工神经网络的度量的代码存根;以及响应于对所述代码存根的编辑操作,定制所述人工神经网络的度量。
在一些实现中,该方法还包括响应于以下至少一项,修改所述人工神经网络的中间表示:向所述可视化表示中添加新的表示人工神经网络的层的图形元件;从所述可视化表示中删除表示人工神经网络的层的图形元件;以及修改表示人工神经网络的层的图形元件的参数。
在一些实现中,该方法还包括:响应于接收到将所述目标深度学习框架修改为另一目标深度学习框架的指示,基于所述人工神经网络的中间表示,确定所述人工神经网络的针对另一目标深度学习框架的代码。
在第二方面,本公开提供了一种设备。该设备包括:处理单元;以及存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行以下动作:呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
在一些实现中,所述动作还包括:响应于针对所述代码的编辑操作,修改所述人工神经网络的中间表示;以及基于修改的所述中间表示,调整所述人工神经网络的可视化表示。
在一些实现中,所述动作还包括:响应于接收到针对所述人图形元件的拖放操作,验证与所述人工神经网络的层相关联的层的维度。
在一些实现中,所述动作还包括:响应于接收到与关键字相关联的搜索操作,呈现表示与所述关键字相对应的至少一个候选层的图形元件;以及响应于接收到针对至少一个候选层的图形元件的选择,将所选择的图形元件添加到所述可视化表示。
在一些实现中,所述动作还包括:呈现用于定制所述人工神经网络的度量的代码存根;以及响应于对所述代码存根的编辑操作,定制所述人工神经网络的度量。
在一些实现中,所述动作还包括:响应于以下至少一项操作,修改所述人工神经网络的中间表示:向所述可视化表示中添加新的表示人工神经网络的层的图形元件;从所述可视化表示中删除表示人工神经网络的层的图形元件;修改表示人工神经网络的层的图形元件之间的连接关系;以及修改表示人工神经网络的层的图形元件的参数。
在一些实现中,所述动作还包括:响应于接收到将所述目标深度学习框架修改为另一目标深度学习框架的指示,基于所述人工神经网络的中间表示,确定所述人工神经网络的针对另一目标深度学习框架的代码。
在第三方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第一方面中的方法。
在第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第一方面中的方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (20)

1.一种计算机实现的方法,包括:
呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;
响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及
基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
2.根据权利要求1所述的方法,还包括:
响应于针对所述代码的编辑操作,修改所述人工神经网络的中间表示;以及
基于修改的所述中间表示,调整所述人工神经网络的可视化表示。
3.根据权利要求1所述的方法,还包括:
响应于接收到针对所述图形元件的拖放操作,验证与所述人工神经网络的层相关联的数据的维度。
4.根据权利要求1所述的方法,还包括:
响应于接收到与关键字相关联的搜索操作,呈现表示与所述关键字相对应的至少一个候选层的图形元件;以及
响应于接收到针对所述至少一个候选层的图形元件的选择,将选择的图形元件添加到所述可视化表示。
5.根据权利要求1所述的方法,还包括:
呈现用于定制所述人工神经网络的度量的代码存根;以及
响应于对所述代码存根的编辑操作,定制所述人工神经网络的度量。
6.根据权利要求1所述的方法,还包括:
响应于以下至少一项操作,修改所述人工神经网络的中间表示:
向所述可视化表示中添加新的表示人工神经网络的层的图形元件;
从所述可视化表示中删除表示人工神经网络的层的图形元件;以及
修改表示人工神经网络的层的图形元件的参数。
7.根据权利要求1所述的方法,还包括:
响应于接收到将所述目标深度学习框架修改为另一目标深度学习框架的指示,基于所述人工神经网络的中间表示,确定所述人工神经网络的针对另一目标深度学习框架的代码。
8.一种设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行以下动作:
呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;
响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及
基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
9.根据权利要求8所述的设备,其中所述动作还包括:
响应于针对所述代码的编辑操作,修改所述人工神经网络的中间表示;以及
基于修改的所述中间表示,调整所述人工神经网络的可视化表示。
10.根据权利要求8所述的设备,其中所述动作还包括:
响应于接收到针对所述图形元件的拖放操作,验证与所述人工神经网络的层相关联的数据的维度。
11.根据权利要求8所述的设备,其中所述动作还包括:
响应于接收到与关键字相关联的搜索操作,呈现表示与所述关键字相对应的至少一个候选层的图形元件;以及
响应于接收到针对所述至少一个候选层的图形元件的选择,将所选择的图形元件添加到所述可视化表示。
12.根据权利要求8所述的设备,其中所述动作还包括:
呈现用于定制所述人工神经网络的度量的代码存根;以及
响应于对所述代码存根的编辑操作,定制所述人工神经网络的度量。
13.根据权利要求8所述的设备,其中所述动作还包括:
响应于以下至少一项操作,修改所述人工神经网络的中间表示:
向所述可视化表示中添加新的表示人工神经网络的层的图形元件;
从所述可视化表示中删除表示人工神经网络的层的图形元件;以及
修改表示人工神经网络的层的图形元件的参数。
14.根据权利要求8所述的设备,其中所述动作还包括:
响应于接收到将所述目标深度学习框架修改为另一目标深度学习框架的指示,基于所述人工神经网络的中间表示,确定所述人工神经网络的针对另一目标深度学习框架的代码。
15.一种计算机程序产品,所述计算机程序产品被存储在计算机存储介质中并且包括计算机可执行指令,所述计算机可执行指令在由设备执行时使所述设备执行动作,所述动作包括:
呈现人工神经网络的可视化表示,所述可视化表示包括表示所述人工神经网络的层的图形元件;
响应于接收到针对所述图形元件的拖放操作,修改所述人工神经网络的中间表示,所述中间表示独立于深度学习框架,所述拖放操作修改所述图形元件之间的连接关系;以及
基于所述人工神经网络的中间表示,修改所述人工神经网络的针对目标深度学习框架的代码。
16.根据权利要求15所述的计算机程序产品,其中所述动作还包括:
响应于针对所述代码的编辑操作,修改所述人工神经网络的中间表示;以及
基于修改的所述中间表示,调整所述人工神经网络的可视化表示。
17.根据权利要求15所述的计算机程序产品,其中所述动作还包括:
响应于接收到针对所述图形元件的拖放操作,验证与所述人工神经网络的层相关联的数据的维度。
18.根据权利要求15所述的计算机程序产品,其中所述动作还包括:
响应于接收到与关键字相关联的搜索操作,呈现表示与所述关键字相对应的至少一个候选层的图形元件;以及
响应于接收到针对所述至少一个候选层的图形元件的选择,将所选择的图形元件添加到所述可视化表示。
19.根据权利要求15所述的计算机程序产品,其中所述动作还包括:
呈现用于定制所述人工神经网络的度量的代码存根;以及
响应于对所述代码存根的编辑操作,定制所述人工神经网络的度量。
20.根据权利要求15所述的计算机程序产品,其中所述动作还包括:
响应于以下至少一项操作,修改所述人工神经网络的中间表示:
向所述可视化表示中添加新的表示人工神经网络的层的图形元件;
从所述可视化表示中删除表示人工神经网络的层的图形元件;以及
修改表示人工神经网络的层的图形元件的参数。
CN201910578856.XA 2019-06-28 2019-06-28 用于深度学习的可视化编程 Pending CN112148276A (zh)

Priority Applications (9)

Application Number Priority Date Filing Date Title
CN201910578856.XA CN112148276A (zh) 2019-06-28 2019-06-28 用于深度学习的可视化编程
AU2020304378A AU2020304378A1 (en) 2019-06-28 2020-05-06 Visual programming for deep learning
KR1020217042561A KR20220027870A (ko) 2019-06-28 2020-05-06 딥 러닝을 위한 비주얼 프로그래밍
PCT/US2020/031544 WO2020263421A1 (en) 2019-06-28 2020-05-06 Visual programming for deep learning
BR112021021752A BR112021021752A2 (pt) 2019-06-28 2020-05-06 Programação visual para aprendizado profundo
EP20729896.9A EP3991098A1 (en) 2019-06-28 2020-05-06 Visual programming for deep learning
US17/615,080 US20220222049A1 (en) 2019-06-28 2020-05-06 Visual Programming for Deep Learning
JP2021568242A JP2022539290A (ja) 2019-06-28 2020-05-06 ディープラーニングのためのビジュアルプログラミング
CA3139706A CA3139706A1 (en) 2019-06-28 2020-05-06 Visual programming for deep learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910578856.XA CN112148276A (zh) 2019-06-28 2019-06-28 用于深度学习的可视化编程

Publications (1)

Publication Number Publication Date
CN112148276A true CN112148276A (zh) 2020-12-29

Family

ID=70922144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910578856.XA Pending CN112148276A (zh) 2019-06-28 2019-06-28 用于深度学习的可视化编程

Country Status (9)

Country Link
US (1) US20220222049A1 (zh)
EP (1) EP3991098A1 (zh)
JP (1) JP2022539290A (zh)
KR (1) KR20220027870A (zh)
CN (1) CN112148276A (zh)
AU (1) AU2020304378A1 (zh)
BR (1) BR112021021752A2 (zh)
CA (1) CA3139706A1 (zh)
WO (1) WO2020263421A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179584B1 (ko) * 2020-04-16 2020-11-18 주식회사 딥노이드 의료영상 판독을 위한 인공지능 기반의 클라우드 플랫폼 시스템
US20230146247A1 (en) * 2021-11-09 2023-05-11 Fortinet, Inc. Systems and methods for graphical runtime validated report generation
CN115660064B (zh) * 2022-11-10 2023-09-29 北京百度网讯科技有限公司 基于深度学习平台的模型训练方法、数据处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110464A1 (en) * 2001-12-12 2003-06-12 Terago Communications, Inc. Method and apparatus for graphically programming a programmable circuit
CN108319456A (zh) * 2018-01-29 2018-07-24 徐磊 一种免编程深度学习应用的开发方法
CN109241141A (zh) * 2018-09-04 2019-01-18 北京百度网讯科技有限公司 深度学习的训练数据处理方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222210A (en) * 1990-12-03 1993-06-22 Motorola, Inc. Method of displaying the state of an artificial neural network
US7502763B2 (en) * 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
US7468731B2 (en) * 2006-04-11 2008-12-23 Invensys Systems, Inc. Automatic resizing of moved attribute elements on a graphical representation of a control object
US11086471B2 (en) * 2016-06-06 2021-08-10 Salesforce.Com, Inc. Visualizing neural networks
US9934462B1 (en) * 2016-10-04 2018-04-03 Sas Institute Inc. Visualizing deep neural networks
US10936938B2 (en) * 2017-12-28 2021-03-02 International Business Machines Corporation Method for visualizing neural network models
US10635409B2 (en) * 2018-01-15 2020-04-28 Cognizant Technology Solutions India Pvt. Ltd. System and method for improving software code quality using artificial intelligence techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110464A1 (en) * 2001-12-12 2003-06-12 Terago Communications, Inc. Method and apparatus for graphically programming a programmable circuit
CN108319456A (zh) * 2018-01-29 2018-07-24 徐磊 一种免编程深度学习应用的开发方法
CN109241141A (zh) * 2018-09-04 2019-01-18 北京百度网讯科技有限公司 深度学习的训练数据处理方法和装置

Also Published As

Publication number Publication date
BR112021021752A2 (pt) 2022-01-04
KR20220027870A (ko) 2022-03-08
WO2020263421A1 (en) 2020-12-30
US20220222049A1 (en) 2022-07-14
EP3991098A1 (en) 2022-05-04
JP2022539290A (ja) 2022-09-08
AU2020304378A1 (en) 2021-12-23
CA3139706A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
US10866788B2 (en) System and method for automated generation of integration elements modeling process flow for an integration process with a swagger API
WO2021184725A1 (zh) 用户界面测试方法、装置、存储介质及计算机设备
US20220222049A1 (en) Visual Programming for Deep Learning
CN108628605A (zh) 流式数据处理方法、装置、服务器和介质
CN103092751B (zh) 一种云环境下基于用户行为模型的web应用性能测试系统
US20170139685A1 (en) Visual software modeling method to construct software views based on a software meta view
CN110941467A (zh) 数据处理方法、装置及系统
CN111045653B (zh) 系统生成方法、装置、计算机可读介质及电子设备
CN114237582A (zh) 项目构建方法、装置、介质及电子设备
CN115080016A (zh) 基于ue编辑器的扩展功能实现方法、装置、设备及介质
CN111782181A (zh) 代码生成方法、装置、电子设备以及存储介质
WO2021023171A1 (zh) 一种测试脚本录制时时间选择的方法和装置
CN114764296A (zh) 机器学习模型训练方法、装置、电子设备及存储介质
CN115858556A (zh) 一种数据处理方法、装置、存储介质及电子设备
US11741715B2 (en) Automatic creation and annotation of software-related instructional videos
CN113506099A (zh) 申报业务的配置系统、方法、计算机设备和存储介质
US20170090882A1 (en) Program development support system and program development support software
CN111507471A (zh) 一种模型训练方法、装置、设备及存储介质
KR20200086574A (ko) 키워드 관계 구조를 이용한 신규 키워드 추출 방법 및 시스템
WO2024055912A1 (zh) 数据处理方法、模型训练方法及电子设备
CN112130841B (zh) Sql开发方法、装置及终端设备
US11811862B1 (en) System and method for management of workload distribution
CN115292194B (zh) 流程调试的方法、电子设备及计算机可读存储介质
CN112559311B (zh) 一种移动端自动化测试的界面适配方法和装置
US20230409290A1 (en) Application development involving instant protoyping

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