CN116107627A - 一种代码调整方法、装置、计算机设备及存储介质 - Google Patents
一种代码调整方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116107627A CN116107627A CN202310118519.9A CN202310118519A CN116107627A CN 116107627 A CN116107627 A CN 116107627A CN 202310118519 A CN202310118519 A CN 202310118519A CN 116107627 A CN116107627 A CN 116107627A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- adjustment
- configuration information
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 73
- 238000012549 training Methods 0.000 claims description 21
- 238000012360 testing method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本公开提供了一种代码调整方法、装置、计算机设备及存储介质,其中,该方法包括:在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种代码调整方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的快速发展,基于代码编程实现的应用程序的数量越来越多,开发人员需要开发和维护的代码量也日渐增多。
相关技术中,当代码运行出错时往往需要开发人员手动进行修改,但受限于开发人员数量、技术水平等方面的限制,对代码进行调整可能需要耗费较多的时间成本和人力成本,从而导致维护代码的效率较为低下。
发明内容
本公开实施例至少提供一种代码调整方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种代码调整方法,包括:
在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
一种可能的实施方式中,所述方法还包括根据以下步骤生成目标代码:
获取代码配置信息;
基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
一种可能的实施方式中,所述目标网络包括特征编码模块和特征处理模块;
所述将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作,包括:
将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征;
将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息;
基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
一种可能的实施方式中,所述特征编码模块用于根据以下步骤得到所述代码调整特征:
获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息;
基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征,包括:
对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征;
对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述方法还包括根据以下步骤训练所述目标网络:
获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作;
将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作;
基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
一种可能的实施方式中,在得到调整后的目标代码后,所述方法还包括:
对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
第二方面,本公开实施例还提供一种代码调整装置,包括:
获取模块,用于在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
确定模块,用于将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
调整模块,用于基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
一种可能的实施方式中,所述获取模块还用于根据以下步骤生成目标代码:
获取代码配置信息;
基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
一种可能的实施方式中,所述目标网络包括特征编码模块和特征处理模块;
所述确定模块,在将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作时,用于:
将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征;
将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息;
基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
一种可能的实施方式中,所述确定模块用于根据以下步骤得到所述代码调整特征:
获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息;
基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述确定模块,在基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征时,用于:
对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征;
对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述确定模块还用于根据以下步骤训练所述目标网络:
获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作;
将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作;
基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
一种可能的实施方式中,在得到调整后的目标代码后,所述调整模块还用于:
对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的代码调整方法、装置、计算机设备及存储介质,在检测到目标代码运行出错的情况下,通过预先训练的目标网络确定出与所述目标代码对应的代码配置信息和错误类型,匹配的目标调整操作,从而可以基于所述目标跳帧操作实现对于目标代码的自动调整,相较于开发人员手动进行代码调整,通过目标网络确定目标调整操作并进行自动调整的方式能够节约代码调整过程中的时间成本和人力成本,从而提高进行代码调整的效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种代码调整方法的流程图;
图2示出了本公开实施例所提供的代码调整方法中,目标网络对代码调整特征进行处理的示意图;
图3示出了本公开实施例所提供的代码调整方法中,样本数据生成方法的示意图;
图4示出了本公开实施例所提供的一种代码调整装置的架构示意图;
图5示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
经研究发现,当代码运行出错时往往需要开发人员手动进行修改,但受限于开发人员数量、技术水平等方面的限制,对代码进行调整可能需要耗费较多的时间成本和人力成本,从而导致维护代码的效率较为低下。
基于上述研究,本公开提供了一种代码调整方法、装置、计算机设备及存储介质,在检测到目标代码运行出错的情况下,通过预先训练的目标网络确定出与所述目标代码对应的代码配置信息和错误类型,匹配的目标调整操作,从而可以基于所述目标跳帧操作实现对于目标代码的自动调整,相较于开发人员手动进行代码调整,通过目标网络确定目标调整操作并进行自动调整的方式能够节约代码调整过程中的时间成本和人力成本,从而提高进行代码调整的效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种代码调整方法进行详细介绍,本公开实施例所提供的代码调整方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、个人数字助理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该代码调整方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的代码调整方法的流程图,所述方法包括S101~S103,其中:
S101:在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型。
S102:将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作。
S103:基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
以下是对上述步骤的详细介绍。
针对S101、
所述目标代码可以是用于实现预设需求的代码,所述预设需求可以包括训练网络模型、展示页面内容、控制行驶装置等;在对所述目标代码进行检测时,可以在预先构建的用于进行代码测试的沙箱环境中运行所述目标代码,以检测所述目标代码能否正常运行;所述代码配置信息可以包括目标代码对应的应用场景中的原始字段数据、应用场景对应的环境信息等,不同应用场景对应的代码配置信息不同;所述错误类型表示所述目标代码运行错误时对应的错误类型。
示例性的,以预设需求为训练网络模型为例,所述目标代码可以构成预训练模型对应的样本数据,以对预训练模型进行微调训练,从而使得预训练模型在微调训练后能够适应具体的应用场景。
实际应用中,开发人员自行编写目标代码的效率较低,可以使用自动生成代码的方式,自动生成所述目标代码。
一种可能的实施方式中,在生成所述目标代码时,可以通过以下步骤A1~A2:
A1:获取代码配置信息。
A2:基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
这里,所述代码模板文件中包含跟随代码配置信息进行变更的第一代码内容,以及不跟随代码配置信息进行变更的第二代码内容;为了区分所述第一代码内容和所述第二代码内容,可以在需要进行变更的第一代码内容中添加预设标识符,以指示对应位置处的代码内容为需要跟随代码配置信息进行更新的第一代码内容;其中,所述预设标识符还可以用于表征对应位置处的第一代码内容对应的更新方式。
示例性的,以预设标识符1为“#[!value fill]{meta#owner}”为例,则可以用于表征所述预设标识符1对应位置处的第一代码内容,需要使用代码配置信息中的“config['meta']['owner']”来进行更新(也即填充代码模板文件);以预设标识符2为“#[!blockfill]meta_data_path”为例,则可以用于表征所述预设标识符2对应位置处的第一代码内容,需要使用代码配置信息中的“meta_data_path”函数的输出内容进行更新(也即填充代码模板文件)。
针对S102、
这里,所述目标网络的网络类型例如可以是深度神经网络(Deep NeuralNetworks,DNN),所述目标网络可以包含特征编码模块和特征处理模块,所述特征编码模块可以对输入所述目标网络的代码配置信息和错误类型进行特征编码处理,得到特征编码处理后的特征,从而可以将特征编码处理后的特征输入至所述特征处理模块进行处理,得到所述特征处理模块输出的目标调整操作。
一种可能的实施方式中,在确定纠正所述目标代码的目标调整操作时,可以通过以下步骤B1~B3:
B1:将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征。
这里,所述代码调整特征同时包含了目标代码的代码配置信息的语义,以及所述目标代码运行错误对应的错误类型的语义,从而可以在后续进行特征处理后得到目标调整操作能够同时兼顾代码配置和错误类型,以使得最终得到的目标调整操作能够与实际情况更为匹配。
一种可能的实施方式中,所述特征编码模块可以通过以下步骤B11~B12,得到所述代码调整特征:
B11:获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息。
这里,所述上下文信息用于表示所述目标代码对应的代码提交信息,所述代码提交信息可以包含代码提交时间、代码提交人等,所述上下文信息可以用于对代码调整特征进行语义补充,以使得最终生成的代码调整特征中包含的语义更为丰富。
这样,通过获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息,从而可以使得最终用于进行特征编码(也即特征提取)的信息包含所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,相较于仅使用所述代码配置信息和所述错误类型进行特征编码(也即特征提取),可以通过增加更多相关信息进行特征映射的方式丰富最终得到的代码调整特征的语义,从而使得最终得到的目标调整操作能够与实际情况更为匹配。
B12:基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
一种可能的实施方式中,在基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征时,可以通过以下步骤B121~B122:
B121:对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征。
B122:对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
这里,在进行多维特征编码处理时,可以将所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息映射到多维特征向量中;在进行一位特征编码处理时,可以将所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息映射到一维特征向量中。
这样,通过多维特征编码处理方式和一维特征编码处理方式,可以从多个维度对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行特征编码(也即特征提取),从而可以得到所述目标代码在不同尺度上的特征,再通过对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到多尺度融合后的代码调整特征,丰富最终得到的代码调整特征的语义,从而使得最终得到的目标调整操作能够与实际情况更为匹配。
B2:将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息。
这里,所述特征处理模块可以包含一个第一处理模块和多个第二处理模块;其中,所述第一处理模块的网络类型可以是多层感知机(Multilayer Perceptron,MLP),所述第一处理模块用于对输入的代码调整特征进行进一步的特征处理,并将处理后得到的特征分别输入至各所述第二处理模块;所述第二处理模块的网络类型也可以是MLP,所述第一处理模块和所述第二处理模块的具体网络结构不同,各所述第二处理模块用于输出针对一种待筛选调整操作的置信度信息;所述待筛选调整操作可以是从历史调整操作记录中确定的。
具体的,在确定待筛选调整操作时,可以从历史调整操作记录中,将能够把代码运行结果从运行出错调整为运行成功的调整操作,作为所述待筛选调整操作,比如通过调整操作A对代码1进行调整,使得代码1的运行结果从运行出错变为了运行成功,则可以将调整操作A作为所述待筛选调整操作。
示例性的,所述目标网络对所述代码调整特征进行处理的示意图可以如图2所示,图2中,目标代码对应的代码配置信息、错误类型、上下文信息、文本混合信息经过处理后得到了代码调整特征,所述代码调整特征在输入至第一处理模块后,可以进行进一步的特征处理,并将处理后的特征分别输入至各第二处理模块;针对任一所述第二处理模块,该第二处理模块可以根据输入的特征进行预测,预测与该第二处理模块匹配的待筛选调整操作对应的置信度信息。
B3:基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
这里,所述目标调整操作可以是待筛选调整操作中的一个或多个调整操作,所述目标调整操作中包含的调整操作的数量可以根据实际需求进行设置,本公开实施例对此不做限定。
具体的,在基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作时,可以根据各待筛选调整操作分别对应的置信度信息,对各待筛选调整操作由高到低进行排序,得到调整操作队列,并将所述调整操作队列中对应的置信度信息满足预设要求的待筛选调整操作作为所述目标调整操作。
一种可能的实施方式中,可以通过以下步骤C1~C3对所述目标网络进行训练:
C1:获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作。
C2:将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作。
C3:基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
这里,所述损失值用于表征所述样本调整操作和所述标签调整操作之间的差异,用于衡量目标网络输出结果的准确性。
具体的,在基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值时,可以使用预设的损失函数、所述样本调整操作、所述标签调整操作,确定本次训练的损失值;其中,所述损失函数例如可以是能够衡量两个概率分布之间差异的交叉熵损失函数。
需要说明的是,本公开实施例中使用的上述损失函数仅为一种可能的实施方式,为了提高目标网络的网络精度也可以使用其他类型的损失函数,或者同时使用多种损失函数,并通过加权求和等方式确定最终的损失值,本公开实施例对具体使用何种损失函数确定损失值不做限定,以能够实现为准。
针对S103、
一种可能的实施方式中,在所述目标调整操作包含多个调整操作的情况下,可以按照所述调整操作队列,依次对所述目标代码进行调整,并在每次调整后进行运行测试,以测试调整后的目标代码是否能够正常运行,若不能正常运行则按照所述调整操作队列中各调整操作的顺序,依次执行当前调整操作后的下一个调整操作。
其中,在执行下一个调整操作之前,还可以选择取消执行上一次调整操作,也即不让调整操作的影响累加,每次运行测试只测试一个调整操作是否能够纠正所述目标代码。
示例性的,以所述调整操作队列中包含调整操作1~调整操作4为例,调整操作1~调整操作4对应的置信度信息依次为0.8、0.7、0.6、0.5,则在基于所述目标调整操作对所述目标代码进行调整时,可以先基于调整操作1对所述目标代码进行调整,并在调整后进行运行测试,若为运行失败则可以在调整操作1调整之后的基础上,继续执行调整操作2,并继续进行测试和调整的步骤,直至调整后的目标代码运行成功或者执行完所述调整操作队列中包含的全部调整操作;或者,基于调整操作1对所述目标代码进行调整,并在调整后进行运行测试,若为运行失败则可以在原始版本的目标代码上依次执行调整操作2(也即取消使用调整操作1),并继续进行运行测试和在原始版本的目标代码上进行调整的步骤,直至调整后的目标代码运行成功或者执行完所述调整操作队列中包含的全部调整操作。
另一种可能的实施方式中,在得到调整后的目标代码后,还可以对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
其中,所述目标调整操作的数量可以为1,按照所述目标调整操作对所述目标代码进行调整后即可对调整后的目标代码进行运行测试,并在运行出错的情况下,对错误类型进行更新,以基于调整后的目标代码对应的代码配置信息、更新后的错误类型以及所述目标网络,重新确定目标调整操作,并基于重新确定的目标调整操作继续执行代码调整和运行测试的步骤,直至调整后的目标代码运行成功。
下面,以所述目标代码为用于预训练模型的样本数据为例,对本公开实施例提供的代码调整方法进行介绍,本公开实施例提供的样本数据生成方法的示意图可以如图3所示。
图3中,代码生成模块在接收到与预训练模型的应用场景匹配的代码配置信息后,可以根据所述代码配置信息和代码模板文件(图3中代码模板文件1~n)自动生成目标代码(图3中目标代码1~n),并对生成的目标代码进行运行测试,并在失败的情况下将错误类型和代码配置信息输入至预先训练好的目标网络中,得到所述目标网络输出的目标调整操作,从而可以根据所述目标调整操作对目标代码进行调整,并继续进行运行测试,若运行结果为运行成功,则可以将对应的目标代码作为结果进行输出,从而可以得到预训练模型对应的样本数据。
具体的,上述步骤的具体描述可以参照上文相关内容,在此不再赘述。
本公开实施例提供的代码调整方法,在检测到目标代码运行出错的情况下,通过预先训练的目标网络确定出与所述目标代码对应的代码配置信息和错误类型,匹配的目标调整操作,从而可以基于所述目标跳帧操作实现对于目标代码的自动调整,相较于开发人员手动进行代码调整,通过目标网络确定目标调整操作并进行自动调整的方式能够节约代码调整过程中的时间成本和人力成本,从而提高进行代码调整的效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与代码调整方法对应的代码调整装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述代码调整方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种代码调整装置的架构示意图,所述装置包括:获取模块401、确定模块402、调整模块403;其中,
获取模块401,用于在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
确定模块402,用于将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
调整模块403,用于基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
一种可能的实施方式中,所述获取模块401还用于根据以下步骤生成目标代码:
获取代码配置信息;
基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
一种可能的实施方式中,所述目标网络包括特征编码模块和特征处理模块;
所述确定模块402,在将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作时,用于:
将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征;
将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息;
基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
一种可能的实施方式中,所述确定模块402用于根据以下步骤得到所述代码调整特征:
获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息;
基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述确定模块402,在基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征时,用于:
对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征;
对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述确定模块402还用于根据以下步骤训练所述目标网络:
获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作;
将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作;
基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
一种可能的实施方式中,在得到调整后的目标代码后,所述调整模块403还用于:
对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
本公开实施例提供的代码调整装置,在检测到目标代码运行出错的情况下,通过预先训练的目标网络确定出与所述目标代码对应的代码配置信息和错误类型,匹配的目标调整操作,从而可以基于所述目标跳帧操作实现对于目标代码的自动调整,相较于开发人员手动进行代码调整,通过目标网络确定目标调整操作并进行自动调整的方式能够节约代码调整过程中的时间成本和人力成本,从而提高进行代码调整的效率。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图5所示,为本公开实施例提供的计算机设备500的结构示意图,包括处理器501、存储器502、和总线503。其中,存储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当计算机设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501在执行以下指令:
在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
一种可能的实施方式中,所述处理器501的指令中,还包括根据以下步骤生成目标代码:
获取代码配置信息;
基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
一种可能的实施方式中,所述处理器501的指令中,所述目标网络包括特征编码模块和特征处理模块;
所述将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作,包括:
将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征;
将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息;
基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
一种可能的实施方式中,所述处理器501的指令中,所述特征编码模块用于根据以下步骤得到所述代码调整特征:
获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息;
基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述处理器501的指令中,所述基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征,包括:
对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征;
对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
一种可能的实施方式中,所述处理器501的指令中,还包括根据以下步骤训练所述目标网络:
获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作;
将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作;
基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
一种可能的实施方式中,所述处理器501的指令中,在得到调整后的目标代码后,还包括:
对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的代码调整方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的代码调整方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种代码调整方法,其特征在于,包括:
在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括根据以下步骤生成目标代码:
获取代码配置信息;
基于所述代码配置信息和代码模板文件,生成与所述代码配置信息匹配的目标代码。
3.根据权利要求1所述的方法,其特征在于,所述目标网络包括特征编码模块和特征处理模块;
所述将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作,包括:
将所述代码配置信息和所述错误类型输入至特征编码模块,得到所述特征编码模块输出的代码调整特征;
将所述代码调整特征输入至所述特征处理模块,得到所述特征处理模块输出的调整操作置信度信息;其中,所述调整操作置信度信息中包含多个待筛选调整操作分别对应的置信度信息;
基于各所述待筛选调整操作分别对应的置信度信息,确定各所述待筛选调整操作中的目标调整操作。
4.根据权利要求3所述的方法,其特征在于,所述特征编码模块用于根据以下步骤得到所述代码调整特征:
获取所述目标代码对应的上下文信息,并对所述代码配置信息、所述错误类型以及所述上下文信息进行文本混合处理,得到文本混合信息;
基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征。
5.根据权利要求4所述的方法,其特征在于,所述基于所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息,生成所述目标代码对应的代码调整特征,包括:
对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行多维特征编码处理,得到代码调整多维特征;以及,对所述代码配置信息、所述错误类型、所述上下文信息以及所述文本混合信息进行一维特征编码处理,得到代码调整一维特征;
对所述代码调整多维特征和所述代码调整一维特征进行拼接处理,得到所述目标代码对应的代码调整特征。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括根据以下步骤训练所述目标网络:
获取样本数据和样本数据对应的样本监督数据;其中,所述样本数据包含样本代码对应的样本配置信息和样本错误类型,所述样本监督数据包含将所述样本代码对应的运行结果,从运行出错调整至运行成功的过程中使用的标签调整操作;
将所述样本代码对应的样本配置信息和样本错误类型输入至待训练的目标网络中,得到待训练的目标网络输出的样本调整操作;
基于所述样本调整操作和所述标签调整操作,确定本次训练的损失值,并基于所述损失值对待训练的目标网络的网络参数进行调整。
7.根据权利要求1所述的方法,其特征在于,在得到调整后的目标代码后,所述方法还包括:
对调整后的目标代码进行运行测试,并在检测到运行出错的情况下,基于调整后的目标代码对应的代码配置信息、错误类型以及所述目标网络,对调整后的目标代码进行调整,直至调整后的目标代码运行成功。
8.一种代码调整装置,其特征在于,包括:
获取模块,用于在检测到目标代码运行出错的情况下,获取所述目标代码对应的代码配置信息和所述目标代码对应的错误类型;
确定模块,用于将所述代码配置信息和所述错误类型输入至预先训练的目标网络,确定纠正所述目标代码的目标调整操作;
调整模块,用于基于所述目标调整操作对所述目标代码进行调整,得到调整后的目标代码。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的代码调整方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的代码调整方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310118519.9A CN116107627A (zh) | 2023-01-30 | 2023-01-30 | 一种代码调整方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310118519.9A CN116107627A (zh) | 2023-01-30 | 2023-01-30 | 一种代码调整方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107627A true CN116107627A (zh) | 2023-05-12 |
Family
ID=86255889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310118519.9A Pending CN116107627A (zh) | 2023-01-30 | 2023-01-30 | 一种代码调整方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107627A (zh) |
-
2023
- 2023-01-30 CN CN202310118519.9A patent/CN116107627A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110276446B (zh) | 模型训练和选择推荐信息的方法和装置 | |
US10936807B1 (en) | Systems and methods for displaying effects of code changes | |
US20190370659A1 (en) | Optimizing neural network architectures | |
CN111046027B (zh) | 时间序列数据的缺失值填充方法和装置 | |
US9384020B2 (en) | Domain scripting language framework for service and system integration | |
US20140208169A1 (en) | Domain scripting language framework for service and system integration | |
CN112597356B (zh) | 模型训练方法、个性化数据推荐方法、装置及电子设备 | |
CN108885787A (zh) | 训练图像修复模型的方法、图像修复方法、装置、介质及设备 | |
KR20200049273A (ko) | 머신러닝을 위한 학습데이터 세트의 구성 방법 및 장치 | |
CN112711640A (zh) | 一种业务受理流程配置的方法及装置 | |
US20210286706A1 (en) | Graph-based method for inductive bug localization | |
CN112052157B (zh) | 测试报文的构造方法、装置及系统 | |
US10649833B1 (en) | Consensus-based remediation of offerings' problems | |
US11966851B2 (en) | Construction of a machine learning model | |
CN116071590A (zh) | 模型训练方法、系统、计算机设备以及存储介质 | |
CN116107627A (zh) | 一种代码调整方法、装置、计算机设备及存储介质 | |
CN110889316A (zh) | 一种目标对象识别方法、装置及存储介质 | |
US20190018663A1 (en) | Code lineage tool | |
US20200334126A1 (en) | Server and control method thereof | |
CN109242025B (zh) | 模型迭代修正方法、装置及系统 | |
CN113569225B (zh) | 一种算法程序的验证方法及装置 | |
US12050528B2 (en) | System, method, and computer program for development driven test automation | |
US20240289684A1 (en) | Layer-wise efficient unit testing in very large machine learning models | |
CN118535205A (zh) | 一种开源组件链路预测方法、装置、电子设备及存储介质 | |
CN116820558A (zh) | 应用程序开发方法、装置、设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |