用于可视化构建神经网络的方法与流程

文档序号:15447921发布日期:2018-09-14 23:35阅读:233来源:国知局

本发明涉及机器学习,尤其涉及用于可视化构建神经网络的方法。



背景技术:

机器学习(machinelearning)是人工智能(artificialintelligence)的一个分支。人工智能研究是从以“规则”为重点到以“推理”为重点再到“学习”为重点。因此,机器学习是现阶段实现人工智能的重要途径,即以机器学习为手段解决人工智能中的问题。机器学习主要是设计和分析一些让计算机可以自动“学习”的算法,从大量数据中自动分析获得规律,并利用规律对未知数据进行预测的方法。机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、证券市场分析等领域。

深度学习(deeplearning)是机器学习的一个重要分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层(layer)对数据进行高层抽象。基于数据观测值的各种表征,深度学习方法能高效地进行特征学习和分层特征提取,代替传统机器学习方法手工提取特征的方式,更容易完成从实例、抽象数据中完成学习任务。由于多层网络能够拟合复杂的非线性变换,在数据充足的情况下,深度学习的表现较传统学习方法在效果上有大幅提升。

当前业界主流的深度学习框架主要有tensorflow、torch、mxnet、thenao、caffe等。这些框架虽然提供了各种api供用户使用,但鉴于神经网络本身的复杂性,使用门槛仍然较高。针对此问题,业界提出了多种对其底层api的封装,如keras、tensorlayer等,它们会对常用的神经网络层进行封装,比如全联接网络、卷积网络等。通过这些封装层,用户可以直接调用相关layerapi来完成神经网络层的构建,然而这些工具仍然需要书写代码,仍然存在较高的使用门槛。

因此,亟需一种通用的、易操作的可视化构建神经网络的方法。



技术实现要素:

针对上述问题,本发明提出了一种用于可视化构建神经网络的方法,所述方法包括:基于神经网络的类型,确定所述神经网络中的层节点的参数类型;设置所述层节点的参数值;基于所述层节点的参数值生成相应的第一配置文件;

基于所述第一配置文件确定所述层节点之间的计算顺序;以及基于所述层节点的所述参数类型和所述参数值、用于训练所述神经网络的参数值以及选定的所述神经网络的计算框架,构建所述神经网络。

在一种实施方式中,基于所述第一配置文件确定所述层节点之间的计算顺序包括:根据所述第一配置文件中的所述层节点的输入值和输出值来确定所述层节点之间的计算顺序。

在一种实施方式中,所述用于训练所述神经网络的参数值通过以下方式获取:设置解算器的参数值;根据所述解算器的参数值生成第二配置文件;以及从所述第二配置文件中获取所述用于训练所述神经网络的参数值。

在一种实施方式中,所述第一配置文件和所述第二配置文件均为json配置文件。

在一种实施方式中,所述神经网络中的所述层节点以图形化方式显示。

本发明另一方面,还提供了一种用于可视化构建神经网络的装置,所述装置包括:层节点参数类型确定单元,被配置为基于神经网络的类型,确定所述神经网络中的层节点的参数类型;层节点参数设置单元,被配置为设置所述层节点的参数值;配置文件生成单元,被配置为基于所述层节点的参数值生成相应的第一配置文件;计算顺序确定单元,被配置为基于所述第一配置文件确定所述层节点之间的计算顺序;以及神经网路构建单元,被配置为基于所述层节点的所述参数类型和所述参数值、用于训练所述神经网络的参数值以及选定的所述神经网络的计算框架,构建所述神经网络。

在一种实施方式中,所述计算顺序确定单元还被配置为根据所述第一配置文件中的所述层节点的输入值和输出值来确定所述层节点之间的计算顺序。

在一种实施方式中,所述用于训练所述神经网络的参数值通过以下方式获取:设置解算器的参数值;根据所述解算器的参数值生成第二配置文件;以及从所述第二配置文件中获取所述用于训练所述神经网络的参数值。

在一种实施方式中,所述第一配置文件和所述第二配置文件均为json配置文件。

在一种实施方式中,所述神经网络中的所述层节点以图形化方式显示。

本发明的又一方面,还提供了一种计算机可读存储介质,其上存储有处理器可执行指令,所述处理器执行所述可执行指令时,执行上述用于可视化构建神经网络的方法中任一项所述的方法。

本发明的有益技术效果:

用户无需编写任何代码,只需要拖拽可视化的相应的层节点并做相应的参数设置即可完成神经网络的构建。

附图说明

图1是根据本发明的实施例的用于可视化构建神经网络的方法的流程图;

图2是根据本发明的实施例的用于对mnist图像数据集进行分类的可视化构建神经网络的方法的流程图;

图3是图2中对mnist图像数据集进行分类的层节点之间的计算顺序的示意图;

图4是根据本发明的实施例的用于可视化构建神经网络的装置的示意图。

具体实施方式

在以下优选的实施例的具体描述中,将参考构成本发明一部分的所附的附图。所附的附图通过示例的方式示出了能够实现本发明的特定的实施例。示例的实施例并不旨在穷尽根据本发明的所有实施例。可以理解,在不偏离本发明的范围的前提下,可以利用其他实施例,也可以进行结构性或者逻辑性的修改。因此,以下的具体描述并非限制性的,且本发明的范围由所附的权利要求所限定。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。

以下结合附图对本发明进行详细描述。

如图1所示,本发明提供了一种用于可视化构建神经网络的方法,该方法包括:

步骤s101:基于神经网络(例如,全连接神经网络、卷积神经网络、残差网络等)的类型,确定神经网络中的层节点(layernode)的参数类型。

步骤s102:设置层节点的参数值。

步骤s103:基于层节点的参数值生成相应的第一配置文件。

步骤s104:基于第一配置文件确定层节点之间的计算顺序。

步骤s105:基于层节点的参数类型和参数值、用于训练神经网络的参数值以及选定的神经网络的计算框架,构建神经网络。

本发明涉及的神经网络主要是针对深度神经网络的,但应理解的是,本发明同样适用于其它神经网络。

图2是根据本发明的实施例的用于对mnist图像数据集进行分类的可视化构建神经网络的方法的流程图,其中,mnist图像数据集为计算机视觉数据集,包含各种手写数字图像和对应的标签等内容,该方法包括以下步骤:

步骤s201:根据神经网络的类型(包括自身的特点和用途)来确定神经网络所包含的层节点的参数,应理解的是,不同神经网络的层节点具有不同的参数,例如,卷积神经网络的层节点的参数包括卷积核的宽度(kernel_width)、卷积核步长的高度(stride_height)、卷积核填充的方式(padding)、卷积特征图的个数(num_output)、卷积网络激活函数类型(act)、卷积网络的域范围(scope)、卷积核权重初始方式(weight_filter)、卷积核偏置初始化方式(bias_filter)等。

步骤s202:在层节点的可视化组件中设置层节点的参数值,特别地,用户可以点击可视化组件的属性框并可以将其中的参数的默认值设置为所需的值。具体地,分别对图3中的mnist图像数据层节点301、卷积层节点302(convolution)、池化层节点303(pooling)、卷积层节点304、池化层节点305、全连接神经网络层节点(dense)306、神经元随机丢弃层节点(dropout)307、全连接神经网络层节点308、softmax层节点309、argmaxmin层节点310、准确率层节点(accuracy)311、softmaxwithloss层节点312以及mnist图像类别(label)层节点313进行参数值的设置。

步骤s203:用户在完成步骤s202设置好相应层节点的参数值之后,点击确认生成相应的层节点的json配置文件。应理解的是,层节点的json配置文件通常包括如下参数:层节点输入(input)、层节点输出(output)、层节点的类型(type)和层节点的参数(param)。

步骤s204:根据与mnist图像数据层节点301、卷积层节点302(convolution)、池化层节点303(pooling)、卷积层节点304、池化层节点305、全连接神经网络层节点(dense)306、神经元随机丢弃层节点(dropout)307、全连接神经网络层节点308、softmax层节点309、argmaxmin层节点310、准确率层节点(accuracy)311、softmaxwithloss层节点312以及mnist图像类别(label)层节点313中的每个层节点相对应的json配置文件中的输入值和输出值生成如图3所示的层节点之间的计算的先后顺序,其中,图3中的箭头流向代表数据流方向。应理解的是,可以根据层节点的json配置文件中任意合适的参数值来生成层节点之间的计算的先后顺序。

步骤s205:从相应的层节点的json配置文件中获取层节点的参数类型和参数值。

步骤s206:从解算器(solver)获取用于训练神经网络模型的超参数值。

具体地,该步骤包括以下子步骤:

用户在解算器组件中设置解算器的超参数值;

根据解算器的超参数值生成解算器的配置文件;以及

从解算器的配置文件中获取用于训练神经网络的超参数值,其中,超参数包括例如批次处理数据量大小(batch_size)、模型用于训练方式(solver_mode)、迭代次数(n_epoch)、优化器类型(optimizer)、学习速率(base_lr)等。

应理解的是,用于训练神经网络模型的参数可以包括除超参数之外的任意合适的参数。同时还应理解的是,步骤s206可以与步骤s205并行进行,并不限于步骤s206必须在步骤s205之后。

步骤s207:用户在相应的可视化组件中选定计算框架。

步骤s208:如果计算框架为tensorflow,则执行s209,否则执行s210。

步骤s209:根据层节点的参数类型和参数值以及用于训练神经网络的超参数值调用相应tensorflowapi来完成神经网络构建。

步骤s210:如果计算框架为thenao,则执行步骤s211,否则执行步骤s212。

步骤s211:根据层节点的参数类型和参数值以及用于训练神经网络的超参数值调用相应thenaoapi来完成神经网络构建。

步骤s212:如果计算框架为caffe,则执行步骤s213,否则执行步骤s214。

步骤s213:根据层节点的参数类型和参数值以及用于训练神经网络的超参数值调用相应caffeapi来完成神经网络构建。

步骤s214:如果计算框架为mxnet,则执行s215,否则执行s216。

步骤s215:根据层节点的参数类型和参数值以及用于训练神经网络的超参数值调用相应mxnetapi来完成神经网络构建。

步骤s216:调用其它api来完成神经网络构建。应理解的是,本领域技术人员或用户可以根据自己的需要自定义除了tensorflow、thenao、caffe、mxnet框架之外的api。

由上可知,该示例方法通过可视化构建神经网络完成了对mnist图像数据集分类以识别图像中的字符类型的目的,用户无需进行代码编写,大大方便了用户对问题的处理。同时应理解的是,本文虽然仅举了对mnist图像数据集进行分类的示例,但是该方法适用于解决任意可以采用神经网络进行处理的问题。

此外,本发明还提供了如图4所示的一种可视化构建神经网络的装置,该装置包括:层节点参数类型确定单元401,被配置为基于神经网络的类型,确定神经网络中的层节点的参数类型;层节点参数设置单元402,被配置为设置层节点的参数值;配置文件生成单元403,被配置为基于层节点的参数值生成相应的第一配置文件;计算顺序确定单元404,被配置为基于第一配置文件确定层节点之间的计算顺序;神经网路构建单元405,被配置为基于层节点的参数类型和参数值、用于训练神经网络的参数值以及选定的神经网络的计算框架,构建神经网络。

图1和图2中的数据处理方法的流程还代表机器可读指令,该机器可读指令包括由处理器执行的程序。该程序可被实体化在被存储于有形计算机可读介质的软件中,该有形计算机可读介质如cd-rom、软盘、硬盘、数字通用光盘(dvd)、蓝光光盘或其它形式的存储器。替代的,图1中的示例方法中的一些步骤或所有步骤可利用专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程逻辑器件(epld)、离散逻辑、硬件、固件等的任意组合被实现。另外,虽然图1和图2所示的流程图描述了该数据处理方法,但可对该处理方法中的步骤进行修改、删除或合并。

如上所述,可利用编码指令(如计算机可读指令)来实现图1和图2的示例过程,该编程指令存储于有形计算机可读介质上,如硬盘、闪存、只读存储器(rom)、光盘(cd)、数字通用光盘(dvd)、高速缓存器、随机访问存储器(ram)和/或任何其他存储介质,在该存储介质上信息可以存储任意时间(例如,长时间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。如在此所用的,该术语有形计算机可读介质被明确定义为包括任意类型的计算机可读存储的信号。附加地或替代地,可利用编码指令(如计算机可读指令)实现图1和图2的示例过程,该编码指令存储于非暂时性计算机可读介质,如硬盘,闪存,只读存储器,光盘,数字通用光盘,高速缓存器,随机访问存储器和/或任何其他存储介质,在该存储介质信息可以存储任意时间(例如,长时间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。

此外,虽然参照特定的示例来描述了本发明,其中这些特定的示例仅仅旨在是示例性的,而不是对本发明进行限制,但对于本领域普通技术人员来说显而易见的是,在不脱离本发明的精神和保护范围的基础上,可以对所公开的实施例进行改变、增加或者删除。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1