本申请涉及it,尤其涉及一种网络训练方法、网络训练装置、电子设备、芯片及计算机可读存储介质。
背景技术:
1、对源码相似性的判定在软件同源、复制、代码漏洞检测等工作中有重要的应用,该研究问题随着机器学习及深度学习技术的进步,再一次成为了相关研究的重点。而现有相关研究缺乏高质量的开源源码数据支撑,数据量较小以及数据单一会影响相似检测网络的性能。
技术实现思路
1、本申请实施例提供了一种网络训练方法、网络训练装置、电子设备、芯片及计算机可读存储介质。
2、本申请实施例的技术方案是这样实现的:
3、第一方面,本申请实施例提供了一种网络训练方法,包括:
4、对多个源码进行互补生成操作,得到所述多个源码各自对应的目标语言代码;
5、基于所述多个源码、所述多个源码各自对应的目标语言代码、所述多个源码的注释以及所述多个源码各自对应的目标语言代码的注释,生成多个代码对数据;每个代码对数据包括一个源码、该源码的注释、该源码对应的目标语言代码、该源码对应的目标语言代码的注释以及该代码对的相似度标签;所述多个代码对数据组成源码数据集;
6、通过所述源码数据集训练跨语言源码相似性检测网络。
7、第二方面,本申请实施例提供了一种网络训练装置,包括:
8、构建单元:用于对多个源码进行互补生成操作,得到所述多个源码各自对应的目标语言代码;基于所述多个源码、所述多个源码各自对应的目标语言代码、所述多个源码的注释以及所述多个源码各自对应的目标语言代码的注释,生成多个代码对数据;每个代码对数据包括一个源码、该源码的注释、该源码对应的目标语言代码、该源码对应的目标语言代码的注释以及该代码对的相似度标签;所述多个代码对数据组成源码数据集;
9、训练单元:通过所述源码数据集训练跨语言源码相似性检测网络。
10、第三方面,本申请提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行本申请实施例所提供的任意一种网络训练方法。
11、第四方面,本申请提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行本申请实施例所提供的任意一种网络训练方法。
12、第五方面,本申请提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行本申请实施例所提供的任意一种网络训练方法。
13、本申请实施例所提供的网络训练方法,通过互补生成技术构建大规模的同源码的不同目标语言的相似性训练源码库的方法,同时对代码进一步生成相关的注释信息,增强代码相似性计算的能力,克服了跨语言源码相似性分析时源码数据缺乏及数据量小的问题,同时还能够有效解决数据质量不一致的问题。
1.一种网络训练方法,其特征在于,包括:
2.根据权利要求1所述的网络训练方法,其特征在于,所述跨语言源码相似性检测网络包括:嵌入层、特征提取层、自注意力层以及相似度判定层;其中,所述特征提取层为6层的bigru网络,第一层为lstm层;第二层为注意力层;第三层为dropout层;第四层、第五层以及第六层为dense层。
3.根据权利要求2所述的网络训练方法,其特征在于,在通过所述源码数据集训练跨语言源码相似性检测网络前,还包括:
4.根据权利要求3所述的网络训练方法,其特征在于,所述对所述源码数据集中的各个代码进行词嵌入操作,得到各个代码对应的嵌入向量,包括:
5.根据权利要求3所述的网络训练方法,其特征在于,所述对所述源码数据集中的各个代码进行词嵌入操作,得到各个代码对应的嵌入向量,包括:
6.根据权利要求4或5所述的网络训练方法,其特征在于,所述获取所述代码对应的数据流和函数调用关系,包括:
7.一种网络训练装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1-6中任一项所述的网络训练方法。
9.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如权利要求1-6中任一项所述的网络训练方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-6中任一项所述的网络训练方法。