[发明专利]一种面向语法树解码器的代码生成方法有效
| 申请号: | 202110305383.3 | 申请日: | 2021-03-22 |
| 公开(公告)号: | CN113157255B | 公开(公告)日: | 2022-07-05 |
| 发明(设计)人: | 王彪;李超;刘魁;曹亮 | 申请(专利权)人: | 成都淞幸科技有限责任公司;成都信息工程大学 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06N3/04;G06N3/08 |
| 代理公司: | 成都金英专利代理事务所(普通合伙) 51218 | 代理人: | 袁英 |
| 地址: | 610041 四*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 面向 语法 解码器 代码 生成 方法 | ||
1.一种面向语法树解码器的代码生成方法,其特征在于,包括以下步骤:
步骤一:将数据通过编码器解析生成AST,在AST结构上应用滑动窗口提取出AST结构特征,并对AST进行深层次节点进行遍历,获得AST中子父节点及兄弟节点的顺序关系;
所述步骤一具体包括以下子步骤:
S101,利用编码器生成AST表示代码语法结构,并根据语法逻辑生成相应的节点层级关系;
S102,构建一个具有固定深度的局部特征检测器,在AST上应用滑动窗口提取结构特征;
S103,构建预遍历CNN模块,将预遍历CNN模块应用到要生成节点的根节点,对AST的深层次节点进行遍历,捕获不同AST中不同位置的信息,获得AST中子父节点及兄弟节点的顺序关系;
所述子步骤S102具体包括以下子步骤:
S1021,假设节点ni有一个父节点pi和一个祖先节点gi,向量表示为ni,pi,gi;
S1022,基于AST的局部特征检测器利用特征提取公式分别提取结构特征特征提取公式如下式所示:其中,W(ast)为基于树卷积的核;
步骤二:在AST中加入多层连接,设计稠密网络块结构,利用稠密连接方法对深层卷积网络进行训练形成稠密的卷积神经网络;
所述步骤二具体包括以下子步骤:
S201,构建具有L层卷积神经网络,每层网络均进行一个非线性变换Hl(·),l是层的编号;
S202,在L层卷积神经网络中任何层以直接连接的方式连接所有后续层,第l层接收所有前面的层X0,…,Xl-1特征图作为输入,利用稠密连接方法对深层卷积网络进行训练形成稠密的卷积神经网络;
步骤三:设计过渡层结构,将设计的过渡层加入稠密的卷积神经网络中并进行卷积和池化操作,对稠密的卷积神经网络进行优化,输出特征图,生成代码;
所述步骤三具体包括以下子步骤:
S301,设计过渡层结构,过渡层结构由Batch Normalization层、1x1卷积层和2x2平均池化层组成;
S302,设稠密的卷积神经网络每个稠密块接收的特征图数量为m个,设置一个范围在(0,1]区间的压缩率Θ,将每个稠密块接收的特征图数量控制为Θ*m个;
S303,使用1x1卷积操作对特征图进行降采样,代替3x3卷积输入特征图的数量进行降维;
S304,利用2x2平均池化层在Feature Map上以窗口的形式进行滑动,取滑动窗口内的平均值作为结果进行降采样,对稠密的卷积神经网络进行优化,输出特征图,生成代码。
2.根据权利要求1所述的一种面向语法树解码器的代码生成方法,其特征在于,方法还包括特征共享机制的设计过程,具体包括:在Dense Block中,基于CNN核权重进行特征共享,采用复用前层网络特征作为输入,Dense Block中各个层的特征图在保证大小一致的条件下在通道维度上连接,所有Dense Block中各个层进行卷积之后均输出k个特征图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都淞幸科技有限责任公司;成都信息工程大学,未经成都淞幸科技有限责任公司;成都信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110305383.3/1.html,转载请声明来源钻瓜专利网。





