亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Dnn代碼測(cè)試方法及裝置的制造方法

文檔序號(hào):9396794閱讀:551來(lái)源:國(guó)知局
Dnn代碼測(cè)試方法及裝置的制造方法
【專利說(shuō)明】DNN代碼測(cè)試方法及裝置 【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種DNN代碼測(cè)試方法及裝置。 【【背景技術(shù)】】
[0002] 深度學(xué)習(xí)是大數(shù)據(jù)分析領(lǐng)域的熱門(mén)技術(shù),被廣泛用于圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ) 言理解等人工智能領(lǐng)域。深度學(xué)習(xí)算法的核心是其預(yù)測(cè)模塊,實(shí)現(xiàn)該預(yù)測(cè)模塊的一個(gè)經(jīng)典 模型是深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN) 〇
[0003] 從代碼角度來(lái)說(shuō),在基于深度學(xué)習(xí)的應(yīng)用的代碼實(shí)現(xiàn)中,實(shí)現(xiàn)DNN功能的代碼(簡(jiǎn) 稱DNN代碼)是整個(gè)代碼中的核心部分,因此對(duì)DNN代碼進(jìn)行測(cè)試以保證其正確性,對(duì)整個(gè) 代碼質(zhì)量起著關(guān)鍵性作用。但是,由于深度學(xué)習(xí)算法輸出的是概率值,因此傳統(tǒng)的黑盒測(cè)試 方法等并不適合DNN代碼。因此,如何對(duì)DNN代碼進(jìn)行功能測(cè)試以確保其能做出正確的預(yù) 測(cè),是目前亟需解決的問(wèn)題。 【
【發(fā)明內(nèi)容】

[0004] 本發(fā)明的多個(gè)方面提供一種DNN代碼測(cè)試方法及裝置,用以實(shí)現(xiàn)對(duì)DNN代碼的功 能測(cè)試。
[0005] 本發(fā)明的一方面,提供一種DNN代碼測(cè)試方法,包括:
[0006] 以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一代碼段的輸入,控制 所述第一代碼段運(yùn)行,以獲取所述第一代碼段輸出的初始結(jié)果矩陣;
[0007] 按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變所述初始矩陣中的元素值,以獲得第一參考 矩陣,并以所述第一參考矩陣作為所述第一代碼段的輸入,重新控制所述第一代碼段運(yùn)行, 以獲取所述第一代碼段輸出的參考結(jié)果矩陣,判斷所述參考結(jié)果矩陣中和所述初始結(jié)果矩 陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化;
[0008] 若每次的判斷結(jié)果均為是,判定所述第一代碼段的邏輯正確。
[0009] 作為本發(fā)明的進(jìn)一步改進(jìn),所述方法還包括:
[0010] 以所述初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中反向傳播功能的第二代碼段的輸入, 控制所述第二代碼段運(yùn)行,以獲取所述第二代碼段輸出的初始局域梯度矩陣;
[0011] 按照預(yù)設(shè)的第二測(cè)試次數(shù),每次改變所述初始矩陣中的元素值,以獲得第二參考 矩陣,并以所述第二參考矩陣作為所述第二代碼段的輸入,重新控制所述第二代碼段運(yùn)行, 以獲取所述第二代碼段輸出的參考局域梯度矩陣,判斷所述參考局域梯度矩陣中和所述初 始局域梯度矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變 化;
[0012] 若每次的判斷結(jié)果均為是,判定所述第二代碼段的邏輯正確。
[0013] 作為本發(fā)明的進(jìn)一步改進(jìn),所述初始矩陣為初始代碼矩陣。
[0014] 作為本發(fā)明的進(jìn)一步改進(jìn),所述第一測(cè)試次數(shù)與所述初始矩陣中的元素個(gè)數(shù)成正 比。
[0015] 作為本發(fā)明的進(jìn)一步改進(jìn),所述第二測(cè)試次數(shù)與所述初始矩陣中的元素個(gè)數(shù)成正 比。
[0016] 本發(fā)明的另一方面,提供一種DNN代碼測(cè)試裝置,包括:
[0017] 初始控制模塊,用于以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一 代碼段的輸入,控制所述第一代碼段運(yùn)行,以獲取所述第一代碼段輸出的初始結(jié)果矩陣;
[0018] 參考控制模塊,用于按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變所述初始矩陣中的元素 值,以獲得第一參考矩陣,并以所述第一參考矩陣作為所述第一代碼段的輸入,重新控制所 述第一代碼段運(yùn)行,以獲取所述第一代碼段輸出的參考結(jié)果矩陣,判斷所述參考結(jié)果矩陣 中和所述初始結(jié)果矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否 發(fā)生變化;
[0019] 判定模塊,用于在所述參考控制模塊每次的判斷結(jié)果均為是時(shí),判定所述第一代 碼段的邏輯正確。
[0020] 作為本發(fā)明的進(jìn)一步改進(jìn),所述初始控制模塊還用于:以所述初始矩陣作為DNN 代碼中實(shí)現(xiàn)DNN中反向傳播功能的第二代碼段的輸入,控制所述第二代碼段運(yùn)行,以獲取 所述第二代碼段輸出的初始局域梯度矩陣;
[0021] 所述參考控制模塊還用于:按照預(yù)設(shè)的第二測(cè)試次數(shù),每次改變所述初始矩陣中 的元素值,以獲得第二參考矩陣,并以所述第二參考矩陣作為所述第二代碼段的輸入,重新 控制所述第二代碼段運(yùn)行,以獲取所述第二代碼段輸出的參考局域梯度矩陣,判斷所述參 考局域梯度矩陣中和所述初始局域梯度矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的 位置上的元素值是否發(fā)生變化;
[0022] 所述判定模塊還用于:在所述參考控制模塊每次的判斷結(jié)果均為是時(shí),判定所述 第二代碼段的邏輯正確。
[0023] 作為本發(fā)明的進(jìn)一步改進(jìn),所述初始矩陣為權(quán)重矩陣。
[0024] 作為本發(fā)明的進(jìn)一步改進(jìn),所述第一測(cè)試次數(shù)與所述初始矩陣中的元素個(gè)數(shù)成正 比。
[0025] 作為本發(fā)明的進(jìn)一步改進(jìn),所述第二測(cè)試次數(shù)與所述初始矩陣中的元素個(gè)數(shù)成正 比。
[0026] 在本發(fā)明中,以初始矩陣作為DNN代碼中實(shí)現(xiàn)前向計(jì)算功能的第一代碼段的輸 入,控制第一代碼段運(yùn)行以獲取代碼段輸出的初始結(jié)果矩陣,按照預(yù)設(shè)的第一測(cè)試次數(shù),每 次改變初始矩陣中的元素值,獲得參考矩陣,重新以參考矩陣作為第一代碼段的輸入,重新 控制第一代碼段運(yùn)行,以獲得參考結(jié)果矩陣,通過(guò)比較參考結(jié)果矩陣和初始結(jié)果矩陣中對(duì) 應(yīng)于被改變的元素值的位置上的元素值是否發(fā)生變化,來(lái)判斷該第一代碼段的邏輯是否正 確,若每次的判斷結(jié)果均為發(fā)生變化,則判定第一代碼段的邏輯是正確的,進(jìn)而實(shí)現(xiàn)對(duì)DNN 代碼的功能測(cè)試。 【【附圖說(shuō)明】】
[0027] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí) 施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
[0028] 圖1為本發(fā)明一實(shí)施例提供的DNN代碼測(cè)試方法的流程示意圖;
[0029] 圖2為本發(fā)明一實(shí)施例提供的前向計(jì)算過(guò)程的一種結(jié)構(gòu)示意圖;
[0030] 圖3為本發(fā)明一實(shí)施例提供的對(duì)反向傳播過(guò)程的分析示意圖;
[0031] 圖4為本發(fā)明一實(shí)施例提供的DNN代碼測(cè)試裝置的結(jié)構(gòu)示意圖。 【【具體實(shí)施方式】】
[0032] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0033] 圖1為本發(fā)明一實(shí)施例提供的DNN代碼測(cè)試方法的流程示意圖。如圖1所示,該 方法包括:
[0034] 101、以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一代碼段的輸入, 控制第一代碼段運(yùn)行,以獲取第一代碼段輸出的初始結(jié)果矩陣。
[0035] 102、按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變初始矩陣中的元素值,以獲得第一參考 矩陣,并以第一參考矩陣作為第一代碼段的輸入,重新控制第一代碼段運(yùn)行,以獲取第一代 碼段輸出的參考結(jié)果矩陣,判斷參考結(jié)果矩陣中和初始結(jié)果矩陣中對(duì)應(yīng)于初始矩陣中被改 變的元素值的位置上的元素值是否發(fā)生變化;若每次的判斷結(jié)果均為是,判定第一代碼段 的邏輯正確。
[0036] 由于DNN算法輸出的結(jié)果是概率值,無(wú)法采用現(xiàn)有測(cè)試方法進(jìn)行測(cè)試。針對(duì)該問(wèn) 題,本實(shí)施例提供一種DNN代碼測(cè)試方法,可由DNN代碼測(cè)試裝置來(lái)完成,用以實(shí)現(xiàn)對(duì)DNN 代碼的測(cè)試,填補(bǔ)現(xiàn)有技術(shù)在DNN代碼測(cè)試方面存在的空白。
[0037] 在實(shí)際應(yīng)用中,DNN包括訓(xùn)練過(guò)程和預(yù)測(cè)過(guò)程。在訓(xùn)練過(guò)程中,包括前向計(jì)算過(guò)程 和反向傳播過(guò)程。在預(yù)測(cè)過(guò)程中,只包括前向計(jì)算過(guò)程。由此可見(jiàn),前向計(jì)算過(guò)程是DNN的 核心。作為用于實(shí)現(xiàn)DNN的DNN代碼,其需要實(shí)現(xiàn)DNN中的前向計(jì)算功能?;诖?,可以對(duì) DNN代碼的運(yùn)行過(guò)程進(jìn)行中斷控制,以實(shí)現(xiàn)對(duì)DNN代碼實(shí)現(xiàn)的DNN中前向計(jì)算功能的代碼段 進(jìn)行測(cè)試,進(jìn)而實(shí)現(xiàn)對(duì)DNN代碼的功能測(cè)試。DNN代碼可以只包括實(shí)現(xiàn)前向計(jì)算功能的代碼 段,還可以包括實(shí)現(xiàn)反向傳播過(guò)程的代碼段。為便于區(qū)分,將DNN代碼中實(shí)現(xiàn)前向計(jì)算功能 的代碼段稱為第一代碼段,并將實(shí)現(xiàn)反向傳播過(guò)程的代碼段稱為第二代碼段。由于第二代 碼段是可選的,所以如何對(duì)DNN代碼中的第一代碼段進(jìn)行驗(yàn)證是測(cè)試的關(guān)鍵。
[0038] 于是,本發(fā)明發(fā)明人從不同于本領(lǐng)域的常規(guī)角度出發(fā),開(kāi)始對(duì)DNN中的前向計(jì)算 過(guò)程做進(jìn)一步研究,發(fā)現(xiàn):前向計(jì)算過(guò)程具有以下特征,并基于對(duì)這些特征的提煉和綜合處 理提出了本發(fā)明技術(shù)方案。為便于理解本發(fā)明
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1