国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      Dnn代碼測試方法及裝置的制造方法

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

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