CN113157183B - 深度学习模型构建方法、装置、电子设备及存储介质 - Google Patents
深度学习模型构建方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113157183B CN113157183B CN202110409806.6A CN202110409806A CN113157183B CN 113157183 B CN113157183 B CN 113157183B CN 202110409806 A CN202110409806 A CN 202110409806A CN 113157183 B CN113157183 B CN 113157183B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- learning model
- code
- component
- components
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04845—Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
Abstract
本申请提供一种深度学习模型构建方法、装置、电子设备及存储介质,涉及深度学习技术领域。该方法包括:确定深度学习模型的框架类型;基于对深度学习模型的多个操作组件的操作指令生成有向无环图;基于所述有向无环图和所述框架类型生成指定深度学习模型;根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练。通过深度学习模型的操作组件配置,可以自动生成深度学习模型代码,并配置化进行模型训练,提高深度学习模型的开发效率,进一步降低深度学习模型开发的门槛。
Description
技术领域
本申请涉及深度学习技术领域,具体而言,涉及一种深度学习模型构建方法、装置、电子设备及存储介质。
背景技术
作为机器学习发展到一定阶段的产物,近年来深度学习技术之所以能引起社会各界广泛的关注,是因为不光在学术界,同时也在工业界取得了重大突破和广泛的应用。其中应用最广的几个研究领域分别是自然语言处理、语音识别和图像处理等。深度学习大大提升了计算机视觉、自然语言处理、语音识别的识别能力,因此在工业界得到了大量的应用,各种基于深度学习的应用如井喷式发展,比如面向金融领域的人脸识别,活体识别,身份证OCR(Optical Character Recognition,光学字符识别)识别;面向客服领域的智能客服,人机对话,智能催收;面向工业界的物体缺陷检测;面向安全领域的人脸门禁,高空抛物检测,智慧安防等等都是基于深度学习的应用。
因此,全世界产生了大量的深度学习算法工程师,使用深度学习技术解决现实生活中的各类问题。但是,深度学习的开发框架多种多样,有 Tensorflow、Mxnet、Keras、Pytorch以及PaddlePaddle等,其语法掌握起来有一定的难度,同时业务需求很多,需要快速上线,深度学习算法的识别能力主要取决于网络结构的设计,设计算法就是在设计神经网络结构,网络结构所依赖的底层操作函数各个框架都是一样的,只是需要进行不同的组装而已。深度学习的网络结构也是经常需要展示和研究的,大部分都是代码,从代码很难看到网络结构或者很难快速知道其网络结构如何,因此在深度学习模型开发时需要进行较为复杂的模型架构和配置,需要较为专业的工作人员,同时存在深度学习模型建模和训练效率较低的问题。
发明内容
有鉴于此,本申请实施例的目的在于提供一种深度学习模型构建方法、装置、电子设备及存储介质,以改善现有技术中在深度学习模型开发时需要进行较为复杂的模型架构和配置,导致建模和训练效率较低的问题。
本申请实施例提供了一种深度学习模型构建方法,所述方法包括:确定深度学习模型的框架类型;基于对深度学习模型的多个操作组件的操作指令生成有向无环图;基于所述有向无环图和所述框架类型生成指定深度学习模型;根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练。
在上述实现方式中,通过深度学习模型的操作组件配置,可以自动生成深度学习模型代码,用户只需要基于神经网络的基础操作组件,进行组件参数的配置,基于组件组装其神经网络结构,选择一种深度学习框架,便可以自动生成深度学习模型代码,并配置化进行模型训练,由于操作组件和有向无环图等为可视化,进一步降低了深度学习模型开发门槛和复杂性,从而提高了深度学习模型的开发效率。
可选地,所述操作指令包括点击和拖拽,所述基于对深度学习模型的操作组件的操作指令生成有向无环图,包括:监听对所述多个操作组件的点击事件,在所述点击事件触发时获取所述多个操作组件的配置参数;监听所述多个操作组件的拖曳事件,在所述多个操作组件触发拖曳事件时获取所述多个操作组件的节点并计算所有所述节点的父子关系;基于所述父子关系和所述连线操作在所述多个操作组件之间添加连线,以生成所述有向无环图。
在上述实现方式中,通过操作组件的点击事件和拖曳事件确定用户对操作组件的选取和连接操作,自动生成有向无环图,实现了深度学习模型的框架自动生成和配置,从而提高了深度学习模型构建的效率。
可选地,在所述基于对深度学习模型的多个操作组件的操作指令生成有向无环图之前,所述方法还包括:采用图可视化编辑器生成所述深度学习模型中的操作对应的所述多个操作组件。
在上述实现方式中,通过图可视化编辑器实现操作组件的可视化展示,可以帮助用户对深度学习模型进行可视化操作和分析,便于用户进行模型构建。
可选地,所述采用图可视化编辑器生成所述深度学习模型中的操作对应的所述多个操作组件,包括:通过所述图可视化编辑器注册canvas事件;采用所述图可视化编辑器绘制所述多个操作组件中每个操作组件对应的图标;对所述图标注册拖曳监听事件,以在所述图标的拖曳事件触发所述拖曳监听事件时触发所述canvas事件;在所述canvas事件被触发时,通过所述图可视化编辑器的addModel添加所述多个操作组件;采用所述图可视化编辑器的点击监听事件监听所述多个操作组件的点击操作,在所述点击监听事件触发时获取模型参数标签进行渲染,所述模型参数标签用于表示操作组件的配置参数。
在上述实现方式中,首先完成操作组件图标绘制,然后通过拖曳监听事件和点击监听事件对操作组件的拖曳事件和点击事件进行监听,从而在用户对某个操作组件进行操作时对该操作组件进行对应的渲染和配置,实现了深度学习模型构建的自动化。
可选地,所述基于所述有向无环图和所述框架类型生成指定深度学习模型,包括:基于所述框架类型导入框架包,所述框架包包括所述框架类型的深度学习模型的操作组件结构;根据所述指定深度学习模型的名称,基于所述操作组件结构生成网络类;基于所述有向无环图和所述多个操作组件中每个操作组件对应的所述配置参数,确定所述指定深度学习模型中与所述操作组件对应的功能层的层代码;基于所述有向无环图中所述多个操作组件的连接顺序将所述层代码进行连接,以生成指定深度学习模型代码;对所述指定深度学习模型代码进行编译,以获得所述指定深度学习模型。
在上述实现方式中,基于有向无环图中的操作组件和配置数据生成深度学习模型的代码,不需要用户手工进行深度学习模型的代码输入,且基于该深度学习模型代码编译直接生成深度学习模型,提高了深度模型构建效率。
可选地,在所述基于所述有向无环图和所述框架类型生成指定深度学习模型之后,所述方法还包括:基于所述指定深度学习模型代码生成深度学习模型结构图。
在上述实现方式中,基于指定深度学习模型代码生成深度学习模型结构图后,能够展示深度学习的网络结构,方便用户可视化的查看模型的网络设计和参数。
可选地,所述基于所述指定深度学习模型代码生成深度学习模型结构图,包括:基于所述指定深度学习模型代码确定所述指定深度学习模型对应的所述框架类型;基于所述框架类型确定所述指定深度学习模型代码中的所述多个操作组件的组件结构;基于所述多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数;基于所述组件关键字和所述配置参数确定所述多个操作组件;采用图编辑技术基于所述组件顺序进行所述多个操作组件构建和连线,并基于所述配置参数为所述多个操作组件增加配置信息。
在上述实现方式中,就要框架类型、操作组件的组件结构、有序代码和调用数据,能够确定多个操作组件的在模型中的位置顺序,从而采用图编辑技术进行多个操作组件构建和连线,能够准确地获得深度学习模型的结构图。
本申请实施例还提供了一种深度学习模型构建装置,所述装置包括:框架确定模块,用于确定深度学习模型的框架类型;图生成模块,用于基于对深度学习模型的多个操作组件的操作指令生成有向无环图;模型构建模块,用于基于所述有向无环图和所述框架类型生成指定深度学习模型;训练模块,用于根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练。
可选地,所述操作指令包括点击和拖拽,所述图生成模块具体用于:监听对所述多个操作组件的点击事件,在所述点击事件触发时获取所述多个操作组件的配置参数;监听所述多个操作组件的拖曳事件,在所述多个操作组件触发拖曳事件时获取所述多个操作组件的节点并计算所有所述节点的父子关系;基于所述父子关系和所述连线操作在所述多个操作组件之间添加连线,以生成所述有向无环图。
可选地,所述深度学习模型构建装置还包括:操作组件图标生成模块,用于采用图可视化编辑器生成所述深度学习模型中的操作对应的所述多个操作组件。
可选地,所述操作组件图标生成模块具体用于:通过所述图可视化编辑器注册canvas事件;采用所述图可视化编辑器绘制所述多个操作组件中每个操作组件对应的图标;对所述图标注册拖曳监听事件,以在所述图标的拖曳事件触发所述拖曳监听事件时触发所述canvas事件;在所述canvas 事件被触发时,通过所述图可视化编辑器的addModel添加所述多个操作组件;采用所述图可视化编辑器的点击监听事件监听所述多个操作组件的点击操作,在所述点击监听事件触发时获取模型参数标签进行渲染,所述模型参数标签用于表示操作组件的配置参数。
可选地,所述模型构建模块具体用于:基于所述框架类型导入框架包,所述框架包包括所述框架类型的深度学习模型的操作组件结构;根据所述指定深度学习模型的名称,基于所述操作组件结构生成网络类;基于所述有向无环图和所述多个操作组件中每个操作组件对应的所述配置参数,确定所述指定深度学习模型中与所述操作组件对应的功能层的层代码;基于所述有向无环图中所述多个操作组件的连接顺序将所述层代码进行连接,以生成指定深度学习模型代码;对所述指定深度学习模型代码进行编译,以获得所述指定深度学习模型。
可选地,所述深度学习模型构建装置还包括:模型结构图生成模块,用于基于所述指定深度学习模型代码生成深度学习模型结构图。
可选地,所述模型结构图生成模块具体用于:基于所述指定深度学习模型代码确定所述指定深度学习模型对应的所述框架类型;基于所述框架类型确定所述指定深度学习模型代码中的所述多个操作组件的组件结构;基于所述多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数;基于所述组件关键字和所述配置参数确定所述多个操作组件;采用图编辑技术基于所述组件顺序进行所述多个操作组件构建和连线,并基于所述配置参数为所述多个操作组件增加配置信息。
本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种深度学习模型构建方法的流程示意图。
图2为本申请实施例提供的一种操作组件示意图。
图3为本申请实施例提供的一种操作组件生成步骤的流程示意图。
图4为本申请实施例提供的一种模型参数标签的示意图。
图5为本申请实施例提供的一种有向无环图生成步骤的流程示意图。
图6为本申请实施例提供的一种有向无环图的结构示意图。
图7为本申请实施例提供的一种指定深度学习模型生成步骤的流程示意图。
图8为本申请实施例提供的一种深度学习模型结构图的示意图。
图9为本申请实施例提供的一种深度学习模型结构图生成步骤的流程示意图。
图10为本申请实施例提供的一种深度学习模型构建装置的模块示意图。
图标:20-深度学习模型构建装置;21-框架确定模块;22-图生成模块; 23-模型构建模块;24-训练模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
经本申请人研究发现,现有的深度学习模型代码生成主要是基于流程图工具配置一个流,在流上配置一些参数,简易的生成一段模型代码,其只支持Tensorflow、Pytorch等,支持的语言有限,流程图操作起来复杂,无法动态连接结点的关系,也无法扩大缩小网络结构,支持的操作函数有限,工具用起来很难用,学习成本大,生成的网络代码不支持直接训练,仅仅只是生成了大部分可用的代码,需要加入训练模块,做稍微的修改才可以训练模型。现有的基于神经网络代码生成神经网络图形结构,仅支持Keras框架,支持的深度学习框架有限,生成的网络结构是一个图片,无法可视化的查看模型每一层的参数格式和参数形式。因此现有的深度学习模型的构建和训练流程需要人工进行代码输入、复杂配置等,存在步骤复杂、效率较低的问题。
本申请实施例提供了一种深度学习模型构建方法,请参考图1,图1为本申请实施例提供的一种深度学习模型构建方法的流程示意图,该深度学习模型构建方法的具体步骤可以如下:
步骤S12:确定深度学习模型的框架类型。
可选地,本实施例中可以通过拖拉拽操作生成模型代码的显示界面对用户进行框架模型、操作组件等的显示,以使用户能够在该显示界面中对操作组件进行拖拉拽操作和配置等。
首先基于用户操作选定支持的深度学习框架,目前主流的框架有 Tensorflow、Pytorch、Keras、Caffe和PaddlePaddle等,每种框架的编程语法不同,但是都是对卷积神经网络或者循环神经网络的操作实现,实现的操作函数都是一样的。
步骤S14:基于对深度学习模型的多个操作组件的操作指令生成有向无环图。
其中,操作组件对应卷积神经网络或者循环神经网络常用的操作方法,有卷积(一维卷积Conv1D、二维卷积Conv2D和三维卷积Conv3D等),池化(一维最大池化MaxPool1D和二维最大池化MaxPool2D等),正则化 (Dropout等),分类(SoftMax等),激活函数(Relu和LeakyRelu等) 等,这些操作组件对应每一个操作方法,是原子层的操作。
可选地,本实施例中的操作组件可以在显示界面的左侧显示,请参考图2,图2为本申请实施例提供的一种操作组件示意图。
应当理解的是,在基于操作组件生成有向无环图之前,本实施例需要采用图可视化编辑器生成深度学习模型中的操作对应的多个操作组件。
有向无环图(Directed acyclic graph,DAG)指的是一个无回路的有向图。如果有一个非有向无环图,且A点出发向B经C可回到A,形成一个环。
请参考图3,图3为本申请实施例提供的一种操作组件生成步骤的流程示意图,该操作组件生成步骤可以如下:
步骤S131:通过图可视化编辑器注册canvas事件。
可选地,本实施例中可以使用G6.registerBehavior注册“canvas:mousemove”、“canvas:mouseup”,“canvas:mouseleave”三个事件,其中,“canvas:mousemove”表示鼠标指针在指定的元素中移动的事件,“canvas:mouseup”表示当在元素上松开鼠标按键的事件,“canvas:mouseleave”表示当鼠标指针离开被选元素的事件。
其中,G6是一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。
步骤S132:采用图可视化编辑器绘制多个操作组件中每个操作组件对应的图标。
可选地,该图标可以是SVG(Scalable Vector Graphics,可缩放矢量图形)图标。
步骤S133:对图标注册拖曳监听事件,以在图标的拖曳事件触发拖曳监听事件时触发canvas事件。
具体地,当某一操作组件对应的SVG图标按钮被拖曳时,就会触发 G6的canvas事件,当“canvas:mouseleave”触发时,进行后续操作组件的节点添加。
步骤S134:在canvas事件被触发时,通过图可视化编辑器的addModel 添加多个操作组件。
可选地,当“canvas:mouseleave”触发时,使用G6的addModel方法即可添加该操作组件的节点。
此外,操作组件的节点的样式可以进行自定义,使用G6.registerNode 方法可以注册自定义节点,可以指定绘制节点的样式、自定义的形状等信息,本实施例项目中可以使用矩形为基本形状,额外注册两个小圆点形状,作为拖曳连线时使用。自定义形状后的节点即操作组件在显示界面上所显示的内容。
步骤S135:采用图可视化编辑器的点击监听事件监听多个操作组件的点击操作,在点击监听事件触发时获取模型参数标签进行渲染,模型参数标签用于表示操作组件的配置参数。
请参考图4,图4为本申请实施例提供的一种模型参数标签的示意图,该模型参数标签可以在显示界面的右侧显示,即位于有向无环图右侧,有向无环图位于模型参数标签和操作组件的中间。
具体地,上述点击监听事件可以是G6.click事件。
在完成操作组件节点的生成后,请参考图5和图6,图5为本申请实施例提供的一种有向无环图生成步骤的流程示意图,图6为本申请实施例提供的一种有向无环图的结构示意图,其中Input表示输入层,Conv2D表示卷积层,SoftMax表示分类函数,其为神经网络模型中常规操作,在此不再赘述,步骤S14的具体步骤可以如下:
步骤S141:监听对多个操作组件的点击事件,在点击事件触发时获取多个操作组件的配置参数。
多个操作组件的配置参数可以是用户在点击对应的操作组件后输入。
步骤S142:监听多个操作组件的拖曳事件,在多个操作组件触发拖曳事件时获取多个操作组件的节点并计算所有节点的父子关系。
具体地,本实施例可以使用G6.registerBehavior注册dragPoint事件,该事件用于监听节点上额外注册的小圆点形状的拖曳事件,当该事件触发时,使用graph.getNodes()方法获取所有节点,计算其中的父子关系。
步骤S143:基于父子关系和连线操作在多个操作组件之间添加连线,以生成有向无环图。
具体地,控制连线不能连入到父节点中,当移动至其他节点小圆点上触发“canvas:mouseleave”事件时,即可使用graph.add方法添加该连线,从而生成有向无环图。
步骤S16:基于有向无环图和框架类型生成指定深度学习模型。
请参考图7,图7为本申请实施例提供的一种指定深度学习模型生成步骤的流程示意图,该指定深度学习模型生成步骤可以如下:
步骤S161:基于框架类型导入框架包,框架包包括框架类型的深度学习模型的操作组件结构。
可选地,以Keras框架类型为例,导入框架包可以是import tensorflow as tf。
步骤S162:根据指定深度学习模型的名称,基于操作组件结构生成网络类。
上述网络类可以是class,并为该网络类默认部分优化函数、损失函数等,具体代码可以如下:
#Model
Def NeuralNet(optimizer='adam',loss='sparse_categorical_crossentropy', metrics=['accuracy']):
步骤S163:基于有向无环图和多个操作组件中每个操作组件对应的配置参数,确定指定深度学习模型中与操作组件对应的功能层的层代码。
例如有向无环图开始为输入节点,则根据该操作组件输入配置的信息生成输入层,命名为p_0,具体代码可以如下:
#Initializing inputs
p_0=tf.keras.layers.Input((1,1,1,1,),name='p_0')
如果接下来是卷积操作对应的操作组件,则根据卷积配置信息生成卷积层,命名为p_1,具体代码可以如下:
#Initializing layers
p_1=tf.keras.layers.Conv2D(
name="p_1",
filters=1,
kernel_size=(1,1),
strides=(1,1),
padding="1"
)(p_0)
依此类推,生成多个操作组件的对应的层代码。
步骤S164:基于有向无环图中多个操作组件的连接顺序将层代码进行连接,以生成指定深度学习模型代码。
根据不同操作组件生成不同的层代码后,基于有向无环图中每个操作组件的连接关系将每个层代码与上一层进行连接,则生成指定深度学习模型代码。
步骤S165:对指定深度学习模型代码进行编译,以获得指定深度学习模型。
本步骤的代码可以如下:
进一步地,本实施例在生成指定深度学习模型之后,由于神经网络的代码有时候因为网络结构很大,很复杂,看起来很困难,阅读完代码之后也不知道其网络结构到底如何,需要一步一步根据代码进行梳理画图,把模型结构图画出来。模型结构的设计是神经网络的核心,算法的好坏强依赖于网络结构的不同,网络结构的可视化是和可编辑,看到每一步的参数信息,对了解网络结构很关键。由于神经网络的操作函数有限,操作方法固定,只是参数不同而已,因此完全可以基于代码自动生成深度学习模型结构图。
请参考图8和图9,图8为本申请实施例提供的一种深度学习模型结构图的示意图,其中各项为深度学习中常见操作的名称,在此不再赘述,图9 为本申请实施例提供的一种深度学习模型结构图生成步骤的流程示意图,该深度学习模型结构图生成步骤可以如下:
步骤S171:基于指定深度学习模型代码确定指定深度学习模型对应的框架类型。
读取指定深度学习模型代码的模型代码文件,在import代码中找深度学习框架类型,如Tensorflow、Pytorch、Keras、Mxne、Caffe或PaddlePaddle 等,从而识别深度学习框架类型,框架类型不同,其代码中的操作函数会有不同。
步骤S172:基于框架类型确定指定深度学习模型代码中的多个操作组件的组件结构。
根据框架类型的不同,提取指定深度学习模型代码里的组件结构,即操作组件的结构,对于卷积神经网络其关键字有:Input、Conv1D、Conv2D、 Conv3D、MaxPool1D、MaxPool2D、MaxPool3D、Relu、LeakyRelu、Flatten、 Dropout1D、Dropout2D、Dropout3D、BatchNormal1D、BatchNormal2D、 BatchNormal3D、LSTM、GRU、Cell、SoftMax和Tanh等。
步骤S173:基于多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数。
根据这些关键字的不同,对有序代码进行逐行读取,如果该行含有某一个关键字,并且有”=”号,则表示这是一段操作函数代码,把”=”号左边的变量当成组件的标识Key,把后边的代码当成其参数Value,组装成Kv 结构,把整个文件按照这种方式分割成一段一段的操作组件代码,并按照顺序排列,因为操作组件代码的顺序决定了网络结构中操作组件的连接顺序。
步骤S174:基于组件关键字和配置参数确定多个操作组件。
针对有序的操作组件代码,根据操作组件的有序代码和调用的数据的不同,根据不同组件关键字调用不同操作组件的组件顺序和配置参数。组件不同,其参数个数也不相同,如卷积操作至少有4个参数,池化操作最少有2个参数,如针对二维卷积代码段,提取Conv2D关键字,并提取括号里的参数name、filters、kernel_size、strides和padding等配置参数,从而确定组装Conv2D操作组件的配置参数,从而确定了操作组件的所有信息。
步骤S175:采用图编辑技术基于组件顺序进行多个操作组件构建和连线,并基于配置参数为多个操作组件增加配置信息。
基于图编辑技术进行根据操作组件顺序进行节点构建和节点直接的连线,为操作组件的节点增加配置参数。具体地,使用G6.registerNode方法可以注册自定义节点,可以指定绘制节点的样式、自定义的形状等信息,项目中使用矩形为基本形状,额外注册两个小圆点形状,作为拖曳连线时使用。使用graph.getNodes()方法获取所有节点,计算其中的父子关系,控制连线不能连入到父节点中,使用graph.add方法进行结点之间的连线,从而基于代码生成一个深度学习模型结构图。
步骤S18:根据指定深度学习模型的模型结构对指定深度学习模型进行训练。
可选地,本实施例中读取指定深度学习模型的模型结构,如NeuralNet 网络,获取其模型结构,并且设置训练需要的数据集,对数据集进行划分,划分为训练集、测试集和验证集,然后生成一段模型训练代码,主要是把模型作为参数,输入训练集、测试集、迭代epochs、优化函数,学习率Lr、 batch_size等,加载数据后对模型根据每一个epochs进行迭代,并计算损失函数,使用优化函数optimizer进行优化迭代,其具体过程可以如下代码所示:
再根据不同框架语言,不同执行设备如CPU(Central Processing Unit,中央处理器)/GPU(Graphics Processing Unit,图形处理器),进行训练环境的设置,如以Keras为计算框架,使用GPU训练,则如此设置: os.environ[“CUDA_VISIBLE_DEVICES”]=”0,1”,“0,1”表示使用第0块和第1 块GPU。设置好训练环境后,则可以利用Python命令自动进行模型的训练,获得训练好的指定深度学习模型。
为了配合上述深度学习模型构建方法,本申请实施例提供了一种深度学习模型构建装置20,请参考图10,图10为本申请实施例提供的一种深度学习模型构建装置的模块示意图。
深度学习模型构建装置20包括:
框架确定模块21,用于确定深度学习模型的框架类型;
图生成模块22,用于基于对深度学习模型的多个操作组件的操作指令生成有向无环图;
模型构建模块23,用于基于有向无环图和框架类型生成指定深度学习模型;
训练模块24,用于根据指定深度学习模型的模型结构对指定深度学习模型进行训练。
可选地,操作指令包括点击和拖拽,图生成模块22具体用于:监听对多个操作组件的点击事件,在点击事件触发时获取多个操作组件的配置参数;监听多个操作组件的拖曳事件,在多个操作组件触发拖曳事件时获取多个操作组件的节点并计算所有节点的父子关系;基于父子关系和连线操作在多个操作组件之间添加连线,以生成有向无环图。
可选地,深度学习模型构建装置20还包括:操作组件图标生成模块,用于采用图可视化编辑器生成深度学习模型中的操作对应的多个操作组件。
可选地,操作组件图标生成模块具体用于:通过图可视化编辑器注册 canvas事件;采用图可视化编辑器绘制多个操作组件中每个操作组件对应的图标;对图标注册拖曳监听事件,以在图标的拖曳事件触发拖曳监听事件时触发canvas事件;在canvas事件被触发时,通过图可视化编辑器的 addModel添加多个操作组件;采用图可视化编辑器的点击监听事件监听多个操作组件的点击操作,在点击监听事件触发时获取模型参数标签进行渲染,模型参数标签用于表示操作组件的配置参数。
可选地,模型构建模块23具体用于:基于框架类型导入框架包,框架包包括框架类型的深度学习模型的操作组件结构;根据指定深度学习模型的名称,基于操作组件结构生成网络类;基于有向无环图和多个操作组件中每个操作组件对应的配置参数,确定指定深度学习模型中与操作组件对应的功能层的层代码;基于有向无环图中多个操作组件的连接顺序将层代码进行连接,以生成指定深度学习模型代码;对指定深度学习模型代码进行编译,以获得指定深度学习模型。
可选地,深度学习模型构建装置20还包括:模型结构图生成模块,用于基于指定深度学习模型代码生成深度学习模型结构图。
可选地,模型结构图生成模块具体用于:基于指定深度学习模型代码确定指定深度学习模型对应的框架类型;基于框架类型确定指定深度学习模型代码中的多个操作组件的组件结构;基于多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数;基于组件关键字和配置参数确定多个操作组件;采用图编辑技术基于组件顺序进行多个操作组件构建和连线,并基于配置参数为多个操作组件增加配置信息。
本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的深度学习模型构建方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等具有逻辑计算功能的电子设备。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行深度学习模型构建方法中的步骤。
综上所述,本申请实施例提供了一种深度学习模型构建方法、装置、电子设备及存储介质,所述方法包括:确定深度学习模型的框架类型;基于对深度学习模型的多个操作组件的操作指令生成有向无环图;基于所述有向无环图和所述框架类型生成指定深度学习模型;根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练。
在上述实现方式中,通过深度学习模型的操作组件配置,可以自动生成深度学习模型代码,用户只需要基于神经网络的基础操作组件,进行组件参数的配置,基于组件组装其神经网络结构,选择一种深度学习框架,便可以自动生成深度学习模型代码,并配置化进行模型训练,由于操作组件和有向无环图等为可视化,进一步降低了深度学习模型开发门槛和复杂性,从而提高了深度学习模型的开发效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种深度学习模型构建方法,其特征在于,所述方法包括:
确定深度学习模型的框架类型;
基于对深度学习模型的多个操作组件的操作指令生成有向无环图;
基于所述有向无环图和所述框架类型生成指定深度学习模型;
根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练;
在所述基于所述有向无环图和所述框架类型生成指定深度学习模型之后,所述方法还包括:
基于所述指定深度学习模型代码生成深度学习模型结构图;
所述基于所述指定深度学习模型代码生成深度学习模型结构图,包括:
基于所述指定深度学习模型代码确定所述指定深度学习模型对应的所述框架类型;
基于所述框架类型确定所述指定深度学习模型代码中的所述多个操作组件的组件结构;
基于所述多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数;
基于所述组件关键字和所述配置参数确定所述多个操作组件;
采用图编辑技术基于所述组件顺序进行所述多个操作组件构建和连线,并基于所述配置参数为所述多个操作组件增加配置信息;
其中,所述基于多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数包括:
根据卷积神经网络关键字的不同,对所述有序代码进行逐行读取,如果该行含有某一个关键字,且存在等号,则表示该行代码为操作函数代码,将等号左边的变量作为组件的标识Key,将后边的代码作为参数Value,组装成Kv结构,以将整个文件分割为多段操作组件代码,并按照顺序排列;其中,所述操作组件代码的顺序表征网络结构中所述操作组件的连接顺序。
2.根据权利要求1所述的方法,其特征在于,所述操作指令包括点击和拖拽,所述基于对深度学习模型的操作组件的操作指令生成有向无环图,包括:
监听对所述多个操作组件的点击事件,在所述点击事件触发时获取所述多个操作组件的配置参数;
监听所述多个操作组件的拖曳事件,在所述多个操作组件触发拖曳事件时获取所述多个操作组件的节点并计算所有所述节点的父子关系;
基于所述父子关系和连线操作在所述多个操作组件之间添加连线,以生成所述有向无环图。
3.根据权利要求1或2所述的方法,其特征在于,在所述基于对深度学习模型的多个操作组件的操作指令生成有向无环图之前,所述方法还包括:
采用图可视化编辑器生成所述深度学习模型中的操作对应的所述多个操作组件。
4.根据权利要求3所述的方法,其特征在于,所述采用图可视化编辑器生成所述深度学习模型中的操作对应的所述多个操作组件,包括:
通过所述图可视化编辑器注册canvas事件;
采用所述图可视化编辑器绘制所述多个操作组件中每个操作组件对应的图标;
对所述图标注册拖曳监听事件,以在所述图标的拖曳事件触发所述拖曳监听事件时触发所述canvas事件;
在所述canvas事件被触发时,通过所述图可视化编辑器的addModel添加所述多个操作组件;
采用所述图可视化编辑器的点击监听事件监听所述多个操作组件的点击操作,在所述点击监听事件触发时获取模型参数标签进行渲染,所述模型参数标签用于表示操作组件的配置参数。
5.根据权利要求2所述的方法,其特征在于,所述基于所述有向无环图和所述框架类型生成指定深度学习模型,包括:
基于所述框架类型导入框架包,所述框架包包括所述框架类型的深度学习模型的操作组件结构;
根据所述指定深度学习模型的名称,基于所述操作组件结构生成网络类;
基于所述有向无环图和所述多个操作组件中每个操作组件对应的所述配置参数,确定所述指定深度学习模型中与所述操作组件对应的功能层的层代码;
基于所述有向无环图中所述多个操作组件的连接顺序将所述层代码进行连接,以生成指定深度学习模型代码;
对所述指定深度学习模型代码进行编译,以获得所述指定深度学习模型。
6.一种深度学习模型构建装置,其特征在于,所述装置包括:
框架确定模块,用于确定深度学习模型的框架类型;
图生成模块,用于基于对深度学习模型的多个操作组件的操作指令生成有向无环图;
模型构建模块,用于基于所述有向无环图和所述框架类型生成指定深度学习模型;
训练模块,用于根据所述指定深度学习模型的模型结构对所述指定深度学习模型进行训练;
所述深度学习模型构建装置还包括:模型结构图生成模块,用于在所述基于所述有向无环图和所述框架类型生成指定深度学习模型之后,基于所述指定深度学习模型代码生成深度学习模型结构图;
所述基于所述指定深度学习模型代码生成深度学习模型结构图,包括:
基于所述指定深度学习模型代码确定所述指定深度学习模型对应的所述框架类型;
基于所述框架类型确定所述指定深度学习模型代码中的所述多个操作组件的组件结构;
基于所述多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数;
基于所述组件关键字和所述配置参数确定所述多个操作组件;
采用图编辑技术基于所述组件顺序进行所述多个操作组件构建和连线,并基于所述配置参数为所述多个操作组件增加配置信息;
其中,所述基于多个操作组件的有序代码和调用数据确定组件关键字、组件顺序和配置参数包括:
根据卷积神经网络关键字的不同,对所述有序代码进行逐行读取,如果该行含有某一个关键字,且存在等号,则表示该行代码为操作函数代码,将等号左边的变量作为组件的标识Key,将后边的代码作为参数Value,组装成Kv结构,以将整个文件分割为多段操作组件代码,并按照顺序排列;其中,所述操作组件代码的顺序表征网络结构中所述操作组件的连接顺序。
7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-5中任一项所述方法中的步骤。
8.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-5任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110409806.6A CN113157183B (zh) | 2021-04-15 | 2021-04-15 | 深度学习模型构建方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110409806.6A CN113157183B (zh) | 2021-04-15 | 2021-04-15 | 深度学习模型构建方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157183A CN113157183A (zh) | 2021-07-23 |
CN113157183B true CN113157183B (zh) | 2022-12-16 |
Family
ID=76868125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110409806.6A Active CN113157183B (zh) | 2021-04-15 | 2021-04-15 | 深度学习模型构建方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157183B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954467B2 (en) * | 2021-08-05 | 2024-04-09 | Aarish Technologies | Convolutional neural network compiler for programmable functional array (PFA) processors |
CN114266324B (zh) * | 2021-12-30 | 2023-04-07 | 智慧眼科技股份有限公司 | 模型可视化建模方法、装置、计算机设备及存储介质 |
CN114021707B (zh) * | 2022-01-06 | 2022-04-05 | 中兴通讯股份有限公司 | 模型获取方法、系统、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640425A (zh) * | 2020-05-22 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种模型训练和意图识别方法、装置、设备及存储介质 |
CN112270403A (zh) * | 2020-11-10 | 2021-01-26 | 北京百度网讯科技有限公司 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160232457A1 (en) * | 2015-02-11 | 2016-08-11 | Skytree, Inc. | User Interface for Unified Data Science Platform Including Management of Models, Experiments, Data Sets, Projects, Actions and Features |
EP3555759A4 (en) * | 2016-12-15 | 2020-08-12 | Services Petroliers Schlumberger | SYSTEMS AND PROCESSES FOR GENERATING, DEPLOYING, DISCOVERING AND MANAGING MACHINE LEARNING MODEL SOFTWARE |
US11734584B2 (en) * | 2017-04-19 | 2023-08-22 | International Business Machines Corporation | Multi-modal construction of deep learning networks |
CN107944564B (zh) * | 2017-10-13 | 2023-01-06 | 北京百度网讯科技有限公司 | 深度学习作业处理方法、装置、设备及存储介质 |
CN109901824A (zh) * | 2019-02-27 | 2019-06-18 | 愚夫智学教育科技(深圳)有限公司 | 一种基于深度学习的数据处理方法和系统 |
CN110991649A (zh) * | 2019-10-28 | 2020-04-10 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 深度学习模型搭建方法、装置、设备和存储介质 |
CN111310934B (zh) * | 2020-02-14 | 2023-10-17 | 北京百度网讯科技有限公司 | 一种模型生成方法、装置、电子设备和存储介质 |
CN111310936B (zh) * | 2020-04-15 | 2023-06-20 | 光际科技(上海)有限公司 | 机器学习训练的构建方法、平台、装置、设备及存储介质 |
-
2021
- 2021-04-15 CN CN202110409806.6A patent/CN113157183B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640425A (zh) * | 2020-05-22 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种模型训练和意图识别方法、装置、设备及存储介质 |
CN112270403A (zh) * | 2020-11-10 | 2021-01-26 | 北京百度网讯科技有限公司 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113157183A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681925B2 (en) | Techniques for creating, analyzing, and modifying neural networks | |
CN113157183B (zh) | 深度学习模型构建方法、装置、电子设备及存储介质 | |
Rhys | Machine Learning with R, the tidyverse, and mlr | |
Raschka et al. | Python machine learning: Machine learning and deep learning with Python, scikit-learn, and TensorFlow 2 | |
CN112434721B (zh) | 一种基于小样本学习的图像分类方法、系统、存储介质及终端 | |
Zafar et al. | Hands-on convolutional neural networks with TensorFlow: Solve computer vision problems with modeling in TensorFlow and Python | |
WO2021136365A1 (zh) | 基于机器学习模型的应用开发方法、装置及电子设备 | |
US20210081841A1 (en) | Visually creating and monitoring machine learning models | |
US11640539B2 (en) | Techniques for visualizing the operation of neural networks using samples of training data | |
US10951492B2 (en) | System and a method for automatic conversion of monolithic services to micro-services | |
US8229735B2 (en) | Grammar checker for visualization | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN115268719B (zh) | 一种定位界面上目标元素的方法、介质及电子设备 | |
US11615321B2 (en) | Techniques for modifying the operation of neural networks | |
CN113590863A (zh) | 图像聚类方法、装置及计算机可读存储介质 | |
CN113656587A (zh) | 文本分类方法、装置、电子设备及存储介质 | |
Moroney | AI and Machine Learning for On-Device Development | |
Hodnett et al. | Deep Learning with R for Beginners: Design neural network models in R 3.5 using TensorFlow, Keras, and MXNet | |
Malik et al. | Reimagining Application User Interface (UI) Design using Deep Learning Methods: Challenges and Opportunities | |
Chen et al. | Employing a parametric model for analytic provenance | |
Carcangiu et al. | Gesture modelling and recognition by integrating declarative models and pattern recognition algorithms | |
Kazangirler et al. | UIBee: An improved deep instance segmentation and classification of UI elements in wireframes | |
CN117608650B (zh) | 业务流程图生成方法、处理设备及存储介质 | |
Sharma et al. | DLC re-builder: Sketch based recognition and 2-D conversion of digital logic circuit | |
CN117151247B (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 |