參考矩陣作為第一代碼段的輸入,重新控制第一代碼段運(yùn) 行,以獲取第一代碼段輸出的參考結(jié)果矩陣,判斷參考結(jié)果矩陣中和初始結(jié)果矩陣中對(duì)應(yīng) 于初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化。
[0070] 判定模塊43,用于在參考控制模塊每次的判斷結(jié)果均為是時(shí),判定第一代碼段的 邏輯正確。
[0071] 在一可選實(shí)施方式中,初始控制模塊41、參考控制模塊42和判定模塊43相互配合 還可以實(shí)現(xiàn)對(duì)DNN代碼中實(shí)現(xiàn)反向傳播功能的第二代碼段的測(cè)試。具體如下:
[0072] 初始控制模塊41還用于:以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中反向傳播功能的 第二代碼段的輸入,控制第二代碼段運(yùn)行,以獲取第二代碼段輸出的初始局域梯度矩陣。
[0073] 參考控制模塊42還用于:按照預(yù)設(shè)的第二測(cè)試次數(shù),每次改變初始矩陣中的元素 值,以獲得第二參考矩陣,并以第二參考矩陣作為第二代碼段的輸入,重新控制第二代碼段 運(yùn)行,以獲取第二代碼段輸出的參考局域梯度矩陣,判斷參考局域梯度矩陣中和初始局域 梯度矩陣中對(duì)應(yīng)于初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化。
[0074] 判定模塊43還用于:在參考控制模塊每次的判斷結(jié)果均為是時(shí),判定第二代碼段 的邏輯正確。
[0075] 在一可選實(shí)施方式中,上述初始矩陣為權(quán)重矩陣。
[0076] 在一可選實(shí)施方式中,上述第一測(cè)試次數(shù)與初始矩陣中的元素個(gè)數(shù)成正比。
[0077] 在一可選實(shí)施方式中,上述第二測(cè)試次數(shù)與初始矩陣中的元素個(gè)數(shù)成正比。
[0078] 本實(shí)施例提供的DNN代碼測(cè)試裝置,通過改變作為第一代碼段和第二代碼段輸入 的矩陣中的元素值,然后判斷作為該第一代碼段或第二代碼段輸出的矩陣中相應(yīng)位置的元 素值是否發(fā)生變化的測(cè)試邏輯,實(shí)現(xiàn)對(duì)各代碼段的測(cè)試,進(jìn)而實(shí)現(xiàn)對(duì)DNN代碼的功能測(cè)試。
[0079] 所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng), 裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0080] 在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件 可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機(jī)械或其它的形式。
[0081] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目 的。
[0082]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0083] 上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存 儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算 機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā) 明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器 (Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤 等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0084] 最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
【主權(quán)項(xiàng)】
1. 一種深度神經(jīng)網(wǎng)絡(luò)DNN代碼測(cè)試方法,其特征在于,包括: 以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一代碼段的輸入,控制所述 第一代碼段運(yùn)行,以獲取所述第一代碼段輸出的初始結(jié)果矩陣; 按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變所述初始矩陣中的元素值,以獲得第一參考矩陣, 并以所述第一參考矩陣作為所述第一代碼段的輸入,重新控制所述第一代碼段運(yùn)行,以獲 取所述第一代碼段輸出的參考結(jié)果矩陣,判斷所述參考結(jié)果矩陣中和所述初始結(jié)果矩陣中 對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化; 若每次的判斷結(jié)果均為是,判定所述第一代碼段的邏輯正確。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 以所述初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中反向傳播功能的第二代碼段的輸入,控制 所述第二代碼段運(yùn)行,以獲取所述第二代碼段輸出的初始局域梯度矩陣; 按照預(yù)設(shè)的第二測(cè)試次數(shù),每次改變所述初始矩陣中的元素值,以獲得第二參考矩陣, 并以所述第二參考矩陣作為所述第二代碼段的輸入,重新控制所述第二代碼段運(yùn)行,以獲 取所述第二代碼段輸出的參考局域梯度矩陣,判斷所述參考局域梯度矩陣中和所述初始局 域梯度矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化; 若每次的判斷結(jié)果均為是,判定所述第二代碼段的邏輯正確。3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述初始矩陣為初始代碼矩陣。4. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述第一測(cè)試次數(shù)與所述初始矩陣中 的元素個(gè)數(shù)成正比。5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第二測(cè)試次數(shù)與所述初始矩陣中的 元素個(gè)數(shù)成正比。6. -種深度神經(jīng)網(wǎng)絡(luò)DNN代碼測(cè)試裝置,其特征在于,包括: 初始控制模塊,用于以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一代碼 段的輸入,控制所述第一代碼段運(yùn)行,以獲取所述第一代碼段輸出的初始結(jié)果矩陣; 參考控制模塊,用于按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變所述初始矩陣中的元素值,以 獲得第一參考矩陣,并以所述第一參考矩陣作為所述第一代碼段的輸入,重新控制所述第 一代碼段運(yùn)行,以獲取所述第一代碼段輸出的參考結(jié)果矩陣,判斷所述參考結(jié)果矩陣中和 所述初始結(jié)果矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生 變化; 判定模塊,用于在所述參考控制模塊每次的判斷結(jié)果均為是時(shí),判定所述第一代碼段 的邏輯正確。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述初始控制模塊還用于:以所述初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中反向傳播功能 的第二代碼段的輸入,控制所述第二代碼段運(yùn)行,以獲取所述第二代碼段輸出的初始局域 梯度矩陣; 所述參考控制模塊還用于:按照預(yù)設(shè)的第二測(cè)試次數(shù),每次改變所述初始矩陣中的元 素值,以獲得第二參考矩陣,并以所述第二參考矩陣作為所述第二代碼段的輸入,重新控制 所述第二代碼段運(yùn)行,以獲取所述第二代碼段輸出的參考局域梯度矩陣,判斷所述參考局 域梯度矩陣中和所述初始局域梯度矩陣中對(duì)應(yīng)于所述初始矩陣中被改變的元素值的位置 上的元素值是否發(fā)生變化; 所述判定模塊還用于:在所述參考控制模塊每次的判斷結(jié)果均為是時(shí),判定所述第二 代碼段的邏輯正確。8. 根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述初始矩陣為權(quán)重矩陣。9. 根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述第一測(cè)試次數(shù)與所述初始矩陣中 的元素個(gè)數(shù)成正比。10. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二測(cè)試次數(shù)與所述初始矩陣中的 元素個(gè)數(shù)成正比。
【專利摘要】本發(fā)明提供一種DNN代碼測(cè)試方法及裝置。方法包括:以初始矩陣作為DNN代碼中實(shí)現(xiàn)DNN中前向計(jì)算功能的第一代碼段的輸入,控制第一代碼段運(yùn)行,以獲取第一代碼段輸出的初始結(jié)果矩陣;按照預(yù)設(shè)的第一測(cè)試次數(shù),每次改變初始矩陣中的元素值,以獲得第一參考矩陣,并以第一參考矩陣作為第一代碼段的輸入,重新控制第一代碼段運(yùn)行,以獲取第一代碼段輸出的參考結(jié)果矩陣,判斷參考結(jié)果矩陣中和初始結(jié)果矩陣中對(duì)應(yīng)于初始矩陣中被改變的元素值的位置上的元素值是否發(fā)生變化;若每次的判斷結(jié)果均為是,判定第一代碼段的邏輯正確。本發(fā)明可以實(shí)現(xiàn)對(duì)DNN代碼的功能測(cè)試,填補(bǔ)現(xiàn)有技術(shù)在DNN代碼測(cè)試方面的空白。
【IPC分類】G06F11/36
【公開號(hào)】CN105117328
【申請(qǐng)?zhí)枴緾N201510483918
【發(fā)明人】韓崢
【申請(qǐng)人】百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
【公開日】2015年12月2日
【申請(qǐng)日】2015年8月7日