一种基于图形编程的人工智能教学系统的制作方法

文档序号:22245552发布日期:2020-09-15 20:03阅读:169来源:国知局
一种基于图形编程的人工智能教学系统的制作方法

本申请要求享有于2019年03月08日提交的、申请号为201910175681.8、题为“一种基于图形编程的人工智能教学系统”的中国专利申请的优先权,其内容在此通过引用全部并入本文。

本发明涉及人工智能神经网络、云端服务器开发、嵌入式设备技术领域,尤其是指一种基于图形编程的人工智能教学系统。



背景技术:

随着计算机技术的普及发展以及人工智能技术的实践应用,青少年编程教育概念迅速兴起,学习计算机和人工智能相关知识成为趋势。目前青少年计算机和人工智能相关的教育停留在编程语言教学阶段,没有深入讲解神经网络的结构和层次。因此,青少年的人工智能教育领域亟需一种直观讲解神经网络的方法。

现有技术中,人工智能神经网络的教学方法通过编程语言(主要是python语言)搭建神经网络,设置网络的参数后,通过计算机训练神经网络得到网络模型,这种方法需要操作人员很高的编程技巧,不适合入门的青少年使用。



技术实现要素:

本发明的目的是将复杂的编程简单化,以达到快速搭建神经网络、快速运行模型并查看神经网络运行结果的目的。青少年学生不用编写或只需编写较少程序代码,便可完成复杂的程序设计,提高学习效率和学习乐趣。

为实现上述目的,本发明提供了一种基于图形编程的人工智能教学系统,所述系统包括编程终端、云端服务器、嵌入式设备;

所述编程终端进行图形化编程生成神经网络模型,并配置神经网络的基本参数,编程终端通过将所述神经网络的基本参数传送到所述云端服务器;

所述云端服务器接收所述神经网络的基本参数,对其进行处理并生成训练完成的网络模型;

所述嵌入式设备通过互联网接收所述训练完成的网络模型,并对所述训练完成的网络模型进行运行处理,得到相应的运行结果。

进一步地,编程终端进行图形化编程是基于blockly插件采用积木的方式组建神经网络模型,所述图形化编程即为利用积木工具完成积木的组合拼装。

进一步地,根据神经网络的特征,编程终端生成的神经网络模型包含三个类:框架配置、网络优化和训练设置;

其中,所述的框架设置类包含三个块:网络类型选择、隐藏层设计、特殊网络层;

所述的网络优化类设置类包含三个块:激活函数、优化器、正则化;

所述的训练设置类包含三个块:迭代次数,优化器的学习率,批处理的大小。

进一步地,所述编程终端进行图形化编程生成神经网络模型,并配置神经网络的基本参数的操作还包括了:调用已存储在编程终端图形化程序,使用其基本参数。

进一步地,所述编程终端通过将所述基本参数传送到所述云端服务器的操作前,所述编程终端根据神经网络的基本参数,判断是否满足神经网络的要求,决定是否发送信息。

进一步地,所述云端服务器根据训练完成的网络模型的神经网络信息进行标签打印,并存储在云端服务器。

进一步地,所述云端服务器处理接收的所述神经网络的基本参数时,会查找云端服务器中是否存在相同参数的神经网络;若存在,则将现有的模型下发给嵌入式设备;若不存在,则根据神经网络信息进行训练,生成新的训练完成的网络模型。

进一步地,所述嵌入式设备运行所述训练完成的网络模型的过程还包括了调用嵌入式设备上的外设数据信息,作为神经网络的输入信息。

进一步地,所述外设数据信息包括了声音、图像、视频、温度、湿度、位置、光照度中的一种或者多种。

进一步地,所述编程终端包括可以连接互联网的手机、平板电脑、个人电脑;

所述嵌入式设备包括可以连接互联网树莓派、香蕉派、荔枝派可以运行神经网络的智能设备。

本发明的有益效果:通过图形化生成神经网络基本结构,配置基本结构中的参数,神经网络基本结构组建完成后将神经网络信息发送给云端服务器,云端服务器保存训练完成的模型,并将训练完成的模型发送给嵌入式设备,嵌入式设备运行网络,得到运行结果。通过这一流程不仅解决了神经网络编程难以理解的问题,将复杂的代码转换为图形化编程语言,清晰展示神经网络内部结构,降低了神经网络入门的难度,并且可以通过图形化的方式搭建神经网络,可快速搭建神经网络基本结构,缩短生成神经网络的周期。与此同时,将训练过程转移到云端服务器,不仅减少了终端的负荷、缩短了训练神经网络的时间。通过图形化编程,云端服务器处理和嵌入式设备运行的方式,不仅可以很好的展示神经网络的基本结构,方便老师教学;而且可以增加青少年对人工智能的兴趣,让更多的青少年加入到计算机前沿技术学习。

附图说明

图1为本发明一种基于图形编程的人工智能教学系统的实施例时序图;

图2为本发明一种基于图形编程的人工智能教学系统的运行的实施例流程图;

图3为本发明一种基于图形编程的人工智能教学系统的编程终端图形化编程界面的实施例示意图;

图4为本发明一种基于图形编程的人工智能教学系统的图形化插件生成的程序逻辑结构的实施例示意图;

图5为本发明一种基于图形编程的人工智能教学系统的互联网通信协议使用实施例流程图;

图6为本发明一种基于图形编程的人工智能教学系统的云端服务器处理的实施例流程图;

图7为本发明一种基于图形编程的人工智能教学系统的嵌入式设备运行的实施例流程图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

如图1所示,本发明实施例提供了一种基于图形编程的人工智能教学系统,其特征在于,所述系统包括编程终端s101、云端服务器s102、嵌入式设备s103;

编程终端s101基于图形化插件生成图形化模块,根据这些模块进行神经网络的图形化程序的编写,通过socket通信传给云端服务器s102,云端服务器s102根据信息进行处理生成神经网络模型,然后再通过socket通信将模型发送给嵌入式设备s103,嵌入式设备s103运行模型、得到运行的结果。

在本实施方式中,所述编程终端s101是指:在计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出。编程终端s101不仅是一款支持显示和输入输出的硬件设备,可通过支持软件安装、数据交互、云端服务器交互以实现强大功能,如智能手机、平板电脑、个人电脑等。

所述云端服务器s102是指:大量的远程主机集群,编程终端s101可以通过网络联机获取远程主机提供的服务,云端服务器s102可以运行程序、存储大量的数据。

所述嵌入式设备s103是指:由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”,嵌入式处理器主要由一个单片机或微控制器(mcu)组成。嵌入式设备可以配置大量的外部设备(如摄像头、麦克风等),用于采集外部信息作为处理器运行的输入信息。典型嵌入式设备s103如树莓派、香蕉派、荔枝派等。

如图2所示,本发明实施例中系统具体实施方案如下:

步骤s201:在编程终端s101生成神经网络。

具体如下:利用图形化插件工具blockly,先设置toolbox(设置积木工具箱),选中blockly工具中选项卡选中toolbox,定义toolbox(积木工具箱)中的类或块,有四种选择:新建类、输入标准类、新建分界线和添加完整的toolbox到工作区;然后设置workspace,即将类中的块拖放到工作区中,以便在积木拼装区中预加载它们,用以定义工作区的样式,例如块是否缩放等;然后选择导出文件,一共导出三个文件“toolbox.xml”,“workspace.xml”和“workspace.js”;最后构建文件,新建html文件,添加一个空div并设置其大小,然后将上述的三个文件添加到文件的body声明中,配置编程终端s101的可视化界面。

图3为所述编程终端s101的图形化编程界面示意图实施例,其界面分为积木工具区s401和积木拼装区s402,其中积木工具区s401是积木箱(即从这里拖拽积木工具),根据积木工具种类不同分为不同的类,每类之中有不同的块,主要有神经网络的基本框架配置信息(如增加隐藏层数,调整隐藏层的神经元个数,或者在隐藏层使用更加复杂的网络结构,如cnn、rnn、lstm、gru或增加attention层等),各种不同的优化器,迭代次数,优化器的学习率,批处理的大小,正则化。而积木拼装区s402相当于画板(即拖拽的积木工具在这里拼接),从积木工具区s401拖拽出来的积木工具模块在这里拼接完成。

如图4所示,所述编程终端s101的图形化编程界面中的积木工具区s401的逻辑结构,根据神经网络特征生成了三个类,分别是:框架配置、网络优化和训练设置。

所述的框架设置类设置包含三个块:网络类型选择、隐藏层设计、特殊网络层。其中网络种类选择网络种类型如cnn、rnn等,隐藏层设计配置网络层数和每层节点数目,特殊网络层可以添加一些特殊的处理如输入信息的预处理等。

所述的网络优化类设置包含三个块:激活函数、优化器、正则化。其中激活函数可以选择不同的激活函数如sigmoid函数、tanh函数、relu函数等,优化器可以选择不同的神经网络优化器如bgd,sgd,mbgd等,正则化是为了防止过拟合可以选择不同的处理如l1正则化、l2正则化。

所述的训练设置类里面包含三个块:迭代次数,优化器的学习率,批处理的大小。其中,迭代次数就是训练的轮数,优化器的学习率是用于调整神经网络权重的一个超参数,批处理的设置一次训练所选取的样本数,便于大样本数据训练。

在本实施方式中,编程终端s101进入图形化编程的可视化界面后,从积木工具区s401选择框架设置类别中拖拽出网络类型选择块到积木拼接区s402,选择网络类型为cnn网络、训练集为mnist。从框架设置类别中拖拽出隐藏层设计,拼接到已经拖拽出来的网络种类选择块下面,设置网络隐藏层为2层、每层节点数目20。拖拽出特殊网络层,设置输入图像归一化层,将该层拼接到已有图形化程序下面,设置为28*28大小,即输入的图像需要转换为28*28像素大小,至此完成了2层cnn神经网络的框架搭建。从网络优化类中拖拽出激活函数拼接已有的图形化程序下面,设置激活函数为relu函数。从网络优化类中拖拽出优化器块拼接已有的图形化程序下面,设置优化器为bgd优化器,接着从网络优化类中拖拽出正则化块拼接已有的图形化程序下面,设置正则化为l1正则化,至此完成了2层cnn神经网络的网络优化设置。最后从训练设置类中拖拽出迭代次数拼接已有的图形化程序下面,设置训练次数为8000次;从训练设置类中拖拽出优化器的学习率拼接已有的图形化程序下面,设置学习率为0.01。从训练设置类中拖拽出批处理的大小拼接已有的图形化程序下面,设置批处理的大小为8,至此完成了2层cnn神经网络的训练设置。将图形化编程得到的神经网络相关信息汇总,检测神经网络信息的完整性。

所述检测神经网络完整性是指判断神经网络的是否符合要求,结构配置、网络优化和训练设置三个块都需要拖拽出配置,不能缺少。若符合条件,可以将神经网络信息的汇总发送到云端服务器s102。

所述步骤s201在编程终端生成神经网络,也包括直接加载上次生成的神经网络模型,例如:直接打开上次存储的图形化神经网络模型,然后修改其中的神经网络参数,判断神经网络的是否符合要求,若符合条件,在将神经网络信息的汇总发送到云端服务器s102。

如图5所示,在完成步骤s201之后,编程终端s101使用socket通信协议将神经网络信息发送到云端服务器s102,云端服务器s102先初始化socket,然后对端口进行绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端(如编程终端s101或嵌入式设备s103)连接。此时如果有客户端初始化一个socket,然后连接云端服务器s102(connect),如果连接成功,客户端与云端服务器s102端的连接建立成功。客户端发送数据请求,云端服务器s102端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,完成数据的交互,成功将神经网络信息发送到云端服务器s102。

例如:在本实施方式中,检测2层cnn神经网络的训练设置、网络优化和训练设置三大类组成的神经网络完整,就向云端服务器s102ip地址某端口发送连接请求(connect),建立连接之后,开始发送神经网络信息,云端服务器s102发送反馈信息,发送完成之后关闭连接,完成信息的传输。

步骤s202:在云端服务器s102处理神经网络、生成模型。

如图6所示,云端服务器s102根据编程终端s101传输的神经网络信息进行处理,云端服务器s102主要是运行相应的神经网络训练框架,根据编程终端s101上传的神经网络信息进行训练,当检测到编程终端s101上载的新的网络参数,云端服务器s102首先判断是否存储有相同的网络模型,如果有相同的模型,直接下载数据给嵌入式设备s103,如果没有相同的网络模型,则开始训练,达到设置的训练轮数之后,将训练完成的模型根据信息打印标签,保存训练模型,下载模型到嵌入式设备s103。其中,云端服务器s102含有一个查找表,表内包括了已存储网络模型,云端服务器s102可以根据上传的网络参数查找是否存储有相同的网络模型,以完成上述操作。

其中,所述的云端服务器主要有一个查找表程序,根据上传的网络参数,快速查找是否有相同设置的已训练好的模型,可以快速得到结果。

例如:在本实施方式中,云端服务器s102得到上传的神经网络信息,首先检测cnn网络,有没有2层隐藏层、每层20个节点的网络设置,接着检测网络优化设置是否一致,最后检测训练设置。如果某一项不符合,直接开始生成相应的网络,调用mnist数据集,开始训练。达到设置的迭代次数之后,将新生成的神经网络模型命名为“cnn_20_20_28*28_relu_bgd_l1_8000_0.1_8_mnist”,涵盖了所有的神经网络信息,然后存储在云端服务器s102,在将训练完成的模型下发到树莓派3b+中。

所述的训练完成的模型下发到树莓派3b+的过程中,采用的是socket协议,云端服务器s102先初始化socket,然后对端口进行绑定(bind),对端口进行监听(listen),调用accept阻塞,树莓派3b+设备根据云端服务器ip地址和端口,连接到云端服务器s102。树莓派3b+设备每间隔100ms查询一下云端服务器s102,模型训练完成之后直接下发到树莓派3b+设备。

步骤s203:嵌入式设备s103上运行网络模型。

嵌入式设备s103完成神经网络模型的接收之后,开始运行新的模型,根据模型的种类和要求,调用不同的外部传感器,并且将结果显示出来。

如图7所示,在本实施方式中,树莓派3b+开机启动后,会对已接收的模型进行检测,当检测到新的模型,判断模型需要什么信息,检测到模型采用mnist数据集训练得到,模型需要输入图片信息,同时需要将图片归一化处理为28*28像素的。树莓派执行调用摄像头指令,读取图像信息。调用图像处理函数,将摄像头得到的图像处理为28*28像素,输入到网络模型中,运行网络模型,将运行的结果展示到屏幕上;如未检测到新的模型,则直接运行模型,并反馈运行结果。

所述嵌入式设备含有相应的神经运行框架,包括tensorflow、caffe等,嵌入式设备可以调用外设,如摄像头采集图像信息,得到的结果输出到显示屏上。需要说明的是,模型所需要的输入信息,不仅仅包括了以上所述的图像信息,还可以包括声音、图像、视频、温度、湿度、位置、光照度中的一种或者多种信息,这取决于嵌入式设备的外设的种类或功能,利用神经网络模型以实现嵌入式设备的各种各样的功能。

以上所述仅是本发明的优选实施方式,应当指出本发明不仅限于某一种编程终端,还可以通过各种终端实现神经网络的编程,图形化程序中可视化界面中的积木工具区不限于现有的三个类(框架配置、网络优化、训练设置),还可以根据需要进行相应的补充,嵌入式设备不仅仅限于树莓派3b+型号。

尽管已经对上述各实例进行了描述,但是本领域一些技术人员一旦得到了基本的创造性概念,则可以对实施例进行另外的变更和修改,所以上述所述仅为本发明的实施例,并非因此限制本发明的保护范围。凡是利用本发明说明书和附图内容所作的等效结构或者等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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