当前位置: 首页 > 专利查询>厦门大学专利>正文

前端代码生成模型的生成方法和装置制造方法及图纸

技术编号:25345670 阅读:32 留言:0更新日期:2020-08-21 17:04
本申请实施例公开了前端代码生成模型的生成方法和装置。该方法的具体实施方式包括:获取训练样本集合;获取初始模型;将样本界面图像输入视觉模型,得到图像特征;确定输入的样本界面图像对应的代码字符串序列,并将代码字符串序列输入语言模型的词嵌入层,得到词向量,以及将词向量输入语言模型的特征提取层,得到代码字符串序列的文本特征;将图像特征和文本特征作为解码器的输入,将与输入的样本界面图像对应的样本前端代码作为期望输出,训练初始模型,得到前端代码生成模型。该实施方式使利用语言模型得到文本特征的准确性更高,从而进一步使训练得到的前端代码生成模型生成的前端代码的准确性更高。

【技术实现步骤摘要】
前端代码生成模型的生成方法和装置
本申请实施例涉及计算机
,具体涉及前端代码生成模型的生成方法和装置。
技术介绍
大多数面向用户的现代软件应用程序都是以图形用户界面(GraphicalUserInterface,GUI)为中心的,依赖有吸引力的用户界面(UI)和直观的用户体验(UX)来吸引客户,促进计算任务的有效完成,并吸引用户。目前,深度学习成为近年来的研究热门。且越来越多的研究改变了大众日常生活,如:人脸识别,指纹解锁,推荐系统等等。在这诸多应用中,代码自动生成领域亦有不少成果,利用深度学习将GUI转为编程代码的方法已由涉及。这个问题类似于图像描述(ImageCaption),借由图像描述中相关的研究,设计一个模型,可以将GUI直接转换为编程代码,是一个十分有意义的方向。现有的用于训练代码生成模型的数据集存在数据量少,且数据集界面相对简单的问题,由此训练得到的模型往往难以应对实际界面的复杂情形。现有方法主要采用Encoder-Deocder框架,使用卷积神经网络的输出特征图作为图像的语义编码,输入到递归循环网络中生成描述,但一般的卷积神经网络往往难以捕捉图像的细节如颜色、位置等。且由于中间语义向量的的长度限制,框架往往难以处理长序列的情况,一般的Decoder仅使用循环神经网络作为解码器,在生成不同代码的时候关注的信息都是一致的,这也不符合代码生成的特性。
技术实现思路
本申请实施例的目的在于提出了一种改进的前端代码生成模型的生成方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请实施例提供了一种前端代码生成模型的生成方法,该方法包括:获取训练样本集合,其中,训练样本包括样本界面图像和样本前端代码;获取初始模型,其中,初始模型包括编码器和解码器,编码器包括视觉模型和语言模型;将样本界面图像输入视觉模型,得到图像特征;确定输入的样本界面图像对应的代码字符串序列,并将代码字符串序列输入语言模型的词嵌入层,得到词向量,以及将词向量输入语言模型的特征提取层,得到代码字符串序列的文本特征;将图像特征和文本特征作为解码器的输入,将与输入的样本界面图像对应的样本前端代码作为期望输出,训练初始模型,得到前端代码生成模型。在一些实施例中,将图像特征和文本特征作为解码器的输入,包括:将图像特征和文本特征进行合并,得到合并特征;将合并特征作为解码器的输入。在一些实施例中,解码器采用注意力机制进行解码,得到前端代码包括的代码字符串。在一些实施例中,视觉模型采用包括SE-Net的卷积神经网络确定图像特征。在一些实施例中,卷积神经网络采用卷积核大于等于2*2,且步长大于1的卷积层替代池化层。在一些实施例中,语言模型和解码器采用GRU网络进行编码和解码。在一些实施例中,解码器采用BeamSearch算法预测前端代码包括的代码字符串。在一些实施例中,获取训练样本集合,包括:基于预设的元素种类和每个元素种类包括的元素样式,生成至少两个元素数据集合,其中,至少两个元素数据集合中的每个元素数据集合对应于一个元素种类;从至少两个元素数据集合中提取元素数据进行组合,得到样本前端代码;基于样本前端代码,生成样本界面图像。第二方面,本申请实施例提供了一种前端代码生成方法,该方法包括:获取目标界面图像和初始代码字符串序列;执行如下预测步骤:将目标界面图像和初始代码字符串序列输入预先训练的前端代码生成模型,得到位于代码字符串序列之后的代码字符串;将所得到的代码字符串添加进初始代码字符串序列之后;确定所得到的代码字符串是否为结束标记;如果是,基于模型输出的代码字符串,生成目标界面图像的前端代码;如果确定所得到的代码字符串不是结束标记,基于最近一次添加代码字符串后的初始代码字符串序列,继续执行预测步骤。第三方面,本申请实施例提供了一种前端代码生成模型的生成装置,该装置包括:第一获取模块,用于获取训练样本集合,其中,训练样本包括样本界面图像和样本前端代码;第二获取模块,用于获取初始模型,其中,初始模型包括编码器和解码器,编码器包括视觉模型和语言模型;第一生成模块,用于将样本界面图像输入视觉模型,得到图像特征;第二生成模块,用于确定输入的样本界面图像对应的代码字符串序列,并将代码字符串序列输入语言模型的词嵌入层,得到词向量,以及将词向量输入语言模型的特征提取层,得到代码字符串序列的文本特征;训练模块,用于将图像特征和文本特征作为解码器的输入,将与输入的样本界面图像对应的样本前端代码作为期望输出,训练初始模型,得到前端代码生成模型。第四方面,本申请实施例提供了一种前端代码生成装置,该装置包括:第三获取模块,用于获取目标界面图像和初始代码字符串序列;预测模块,用于执行如下预测步骤:将目标界面图像和初始代码字符串序列输入预先训练的前端代码生成模型,得到位于代码字符串序列之后的代码字符串;将所得到的代码字符串添加进初始代码字符串序列之后;确定所得到的代码字符串是否为结束标记;如果是,基于模型输出的代码字符串,生成目标界面图像的前端代码;确定模块,用于如果确定所得到的代码字符串不是结束标记,基于最近一次添加代码字符串后的初始代码字符串序列,继续执行预测步骤。第五方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面或第二方面中任一实现方式描述的方法。第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面中任一实现方式描述的方法。本申请实施例提供的前端代码生成模型的生成方法和装置、前端代码生成方法和装置,通过将词嵌入层引入编码器中的语言模型,可以更好地挖掘出代码中的文字之间的关联,使利用语言模型得到文本特征的准确性更高,从而进一步使训练得到的前端代码生成模型生成的前端代码的准确性更高。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2是根据本申请的前端代码生成模型的生成方法的一个实施例的流程图;图3是根据本申请的前端代码生成模型的生成方法的生成合并特征的示例性示意图;图4是根据本申请的前端代码生成模型的生成方法的SE-Net的示意图;图5是根据本申请的前端代码生成模型的生成方法的又一个实施例的流程图;图6是根据本申请的生成样本前端代码的一个示例性流程图;图7是根据本申请的前端代码生成方法的一个实施例的流程图;图8是根据本申请的前端代码生成模型的生成装置的一个实施例的结构示意图;图9是根据本申请的前端代码生成装置的一个实施例的结构示意图;图10是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。具体实施方式下面结合附本文档来自技高网...

【技术保护点】
1.一种前端代码生成模型的生成方法,其特征在于,所述方法包括:/n获取训练样本集合,其中,训练样本包括样本界面图像和样本前端代码;/n获取初始模型,其中,所述初始模型包括编码器和解码器,所述编码器包括视觉模型和语言模型;/n将样本界面图像输入所述视觉模型,得到图像特征;/n确定输入的样本界面图像对应的代码字符串序列,并将所述代码字符串序列输入所述语言模型的词嵌入层,得到词向量,以及将所述词向量输入所述语言模型的特征提取层,得到所述代码字符串序列的文本特征;/n将所述图像特征和所述文本特征作为所述解码器的输入,将与输入的样本界面图像对应的样本前端代码作为期望输出,训练所述初始模型,得到前端代码生成模型。/n

【技术特征摘要】
1.一种前端代码生成模型的生成方法,其特征在于,所述方法包括:
获取训练样本集合,其中,训练样本包括样本界面图像和样本前端代码;
获取初始模型,其中,所述初始模型包括编码器和解码器,所述编码器包括视觉模型和语言模型;
将样本界面图像输入所述视觉模型,得到图像特征;
确定输入的样本界面图像对应的代码字符串序列,并将所述代码字符串序列输入所述语言模型的词嵌入层,得到词向量,以及将所述词向量输入所述语言模型的特征提取层,得到所述代码字符串序列的文本特征;
将所述图像特征和所述文本特征作为所述解码器的输入,将与输入的样本界面图像对应的样本前端代码作为期望输出,训练所述初始模型,得到前端代码生成模型。


2.根据权利要求1所述的方法,其特征在于,所述将所述图像特征和所述文本特征作为所述解码器的输入,包括:
将所述图像特征和所述文本特征进行合并,得到合并特征;
将所述合并特征作为所述解码器的输入。


3.根据权利要求2所述的方法,其特征在于,所述解码器采用注意力机制进行解码,得到前端代码包括的代码字符串。


4.根据权利要求1所述的方法,其特征在于,所述视觉模型采用包括SE-Net的卷积神经网络确定图像特征。


5.根据权利要求4所述的方法,其特征在于,所述卷积神经网络采用卷积核大于等于2*2,且步长大于1的卷积层替代池化层。


6.根据权利要求1所述的方法,其特征在于,所述语言模型和所述解码器采用GRU网络进行编码和解码。


7.根据权利要求1所述的方法,其特征在于,所述解码器采用BeamSearch算法预测前端代码包括的代码字符串。


8.根据权利要求1所述的方法,其特征在于,所述获取训练样本集合,包括:
基于预设的元素种类和每个元素种类包括的元素样式,生成至少两个元素数据集合,其中,所述至少两个元素数据集合中的每个元素数据集合对应于一个元素种类;
从所述至少两个元素数据集合中提取元素数据进行组合,得到样本前端代码;
基于所述样本前端代码,生成样本界面图像。


9.一种前端代码生成方法,其特征在于,所述方法包括:
获取目标界面图像和初始代码字符串序列;
执行如下预测步骤:
将所述目标界面图像和所述初始代码字符串序列输入...

【专利技术属性】
技术研发人员:郑一鸣陈启安
申请(专利权)人:厦门大学
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1