本技術(shù)涉及深度學(xué)習(xí)硬件加速,尤其涉及一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(dnn)已成為處理圖像、視頻和語音等復(fù)雜數(shù)據(jù)的關(guān)鍵工具。然而,深度神經(jīng)網(wǎng)絡(luò)的計算密集型和內(nèi)存訪問密集型特性對計算硬件提出了極高的要求,尤其是在處理大規(guī)模數(shù)據(jù)集和深層網(wǎng)絡(luò)結(jié)構(gòu)時。
2、在深度神經(jīng)網(wǎng)絡(luò)中,絕大多數(shù)的計算位于全連接層和卷積層。全連接層和卷積層之后通常會跟隨一層激活函數(shù),修正線性單元(relu)即為一種最為常見的激活函數(shù),該函數(shù)用于將輸入的負值返回為零。在實際應(yīng)用中,很大一部分relu的輸入值為負值,如果能夠提前預(yù)測在全連接層、卷積層中的神經(jīng)元計算的哪些元素會產(chǎn)生負輸入,就可以在不進行對應(yīng)元素的計算的情況下將該位置的元素輸出設(shè)置為零,從而節(jié)省大量的計算量。
3、因此,亟需一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測單元加速器,來解決負輸入預(yù)測正確率問題以及有限資源的利用效率問題,并提升計算靈活性,提升深度神經(jīng)網(wǎng)絡(luò)的計算性能并降低能耗。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法、設(shè)備及介質(zhì),用于解決如下技術(shù)問題:現(xiàn)有深度神經(jīng)網(wǎng)絡(luò)的全連接層與卷積層中神經(jīng)元計算的元素負輸入預(yù)測不準確,整體計算量與能耗量較大,且資源的利用效率較低。
2、本技術(shù)實施例采用下述技術(shù)方案:
3、一方面,本技術(shù)實施例提供了一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法、設(shè)備及介質(zhì),包括:根據(jù)深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時神經(jīng)元的權(quán)重數(shù)據(jù),計算各個所述神經(jīng)元所對應(yīng)的相角數(shù)據(jù),并確定出代理神經(jīng)元;基于所述代理神經(jīng)元,將以神經(jīng)元為節(jié)點的有向圖進行聚類處理,得到代理神經(jīng)元集合;對所述代理神經(jīng)元集合中的輸入數(shù)據(jù)與權(quán)重數(shù)據(jù)進行特征計算,得到特征計算結(jié)果;若所述特征計算結(jié)果為零,則將所述代理神經(jīng)元集合中的其余神經(jīng)元進行位預(yù)測置零請求;將與所述預(yù)測置零請求相對應(yīng)的預(yù)測置零結(jié)果進行結(jié)果判斷;若所述預(yù)測置零結(jié)果為零,則直接將輸出元素確定為零,并將所述輸出元素進行存儲處理。
4、本技術(shù)實施例通過結(jié)合神經(jīng)元權(quán)重向量相角預(yù)測單元與位預(yù)測置零單元,在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,提供較高的負輸入預(yù)測正確率,從而提高有限資源的利用效率,并提升計算靈活性,還提升深度神經(jīng)網(wǎng)絡(luò)的計算性能并降低能耗。
5、在一種可行的實施方式中,根據(jù)深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時神經(jīng)元的權(quán)重數(shù)據(jù),計算各個所述神經(jīng)元所對應(yīng)的相角數(shù)據(jù),并確定出代理神經(jīng)元,具體包括:根據(jù)預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型中深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,獲取所述深度神經(jīng)網(wǎng)絡(luò)中每一層神經(jīng)元所對應(yīng)的權(quán)重數(shù)據(jù);基于每一層神經(jīng)元所對應(yīng)的所述權(quán)重數(shù)據(jù),并通過預(yù)設(shè)的反正切函數(shù),計算與每個所述神經(jīng)元相對應(yīng)權(quán)重數(shù)據(jù)的相角數(shù)據(jù);根據(jù)所述相角數(shù)據(jù)的大小順序,對每個所述神經(jīng)元進行排序處理,生成以神經(jīng)元為節(jié)點的有向圖;其中,所述有向圖的節(jié)點構(gòu)成為邊連接每個神經(jīng)元與其最接近的神經(jīng)元;通過所述有向圖中節(jié)點的入度降序,對每個所述節(jié)點進行排序處理,并將入度最高節(jié)點所對應(yīng)的神經(jīng)元確定為代理神經(jīng)元。
6、在一種可行的實施方式中,基于所述代理神經(jīng)元,將以神經(jīng)元為節(jié)點的有向圖進行聚類處理,得到代理神經(jīng)元集合,具體包括:將所述代理神經(jīng)元所對應(yīng)的節(jié)點從所述有向圖進行移除處理,并將所述代理神經(jīng)元放入到預(yù)設(shè)的代理集合中;通過所述有向圖,將所述代理神經(jīng)元相關(guān)聯(lián)的其余神經(jīng)元所對應(yīng)的節(jié)點進行迭代移除處理,直至所述有向圖不再有任何節(jié)點;并將所述其余神經(jīng)元所對應(yīng)的節(jié)點確定為所述代理神經(jīng)元的聚類節(jié)點;基于所述代理集合以及所述聚類節(jié)點,生成代理神經(jīng)元集合。
7、在一種可行的實施方式中,對所述代理神經(jīng)元集合中的輸入數(shù)據(jù)與權(quán)重數(shù)據(jù)進行特征計算,得到特征計算結(jié)果,具體包括:將所述代理神經(jīng)元集合中與所述代理神經(jīng)元對應(yīng)的輸入數(shù)據(jù)以及權(quán)重數(shù)據(jù)進行特征計算,得到有關(guān)所述代理神經(jīng)元的所述特征計算結(jié)果;基于所述特征計算結(jié)果,并通過掩碼信號,對所述代理神經(jīng)元集合中與聚類節(jié)點所對應(yīng)的其余神經(jīng)元進行計算等待處理;其中,所述計算等待處理后的聚類計算結(jié)果與所述特征計算結(jié)果是否為零相關(guān)聯(lián)。
8、在一種可行的實施方式中,若所述特征計算結(jié)果為零,則將所述代理神經(jīng)元集合中的其余神經(jīng)元進行位預(yù)測置零請求,具體包括:若所述特征計算結(jié)果為零,則通過請求置零信號,將所述代理神經(jīng)元集合中聚類節(jié)點的計算結(jié)果判定為零;通過預(yù)設(shè)的仲裁單元,對所述代理神經(jīng)元集合中的其余神經(jīng)元進行位預(yù)測置零請求。
9、在一種可行的實施方式中,若所述特征計算結(jié)果不為零,則通過所述請求置零信息,將所述代理神經(jīng)元集合中聚類節(jié)點的計算結(jié)果判定不為零;通過所述仲裁單元,對所述代理神經(jīng)元集合中的其余神經(jīng)元進行有關(guān)輸入數(shù)據(jù)的聚類計算,得到聚類計算結(jié)果。
10、在一種可行的實施方式中,將與所述預(yù)測置零請求相對應(yīng)的預(yù)測置零結(jié)果進行結(jié)果判斷,具體包括:若所述特征計算結(jié)果為零,則通過位預(yù)測置零單元,將在所述預(yù)測置零請求下的所述權(quán)重數(shù)據(jù)與所述輸入數(shù)據(jù)之間進行比特化計算,得到所述預(yù)測置零結(jié)果;若所述預(yù)測置零結(jié)果不為零,則將每一層神經(jīng)元所對應(yīng)的輸入數(shù)據(jù)與權(quán)重數(shù)據(jù)進行正常神經(jīng)網(wǎng)絡(luò)訓(xùn)練計算,得到正常計算結(jié)果。
11、在一種可行的實施方式中,若所述預(yù)測置零結(jié)果為零,則將輸出元素確定為零,并將所述輸出元素進行存儲處理,具體包括:若所述預(yù)測置零結(jié)果為零,則不進行每一層神經(jīng)元所對應(yīng)的輸入數(shù)據(jù)與權(quán)重數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練計算,并將與所述輸入數(shù)據(jù)所對應(yīng)輸出數(shù)據(jù)中的輸出元素確定為零;將所述所述輸出元素進行存儲處理,并將所述預(yù)測置零結(jié)果不為零下的正常計算結(jié)果以及所述特征計算結(jié)果不為零下的聚類計算結(jié)果也進行存儲處理。
12、第二方面,本技術(shù)實施例還提供了一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算設(shè)備,所述設(shè)備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有能夠被所述至少一個處理器執(zhí)行的指令,以使所述至少一個處理器能夠執(zhí)行上述任一實施方式所述的一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法。
13、第三方面,本技術(shù)實施例還提供了一種非易失性計算機存儲介質(zhì),其特征在于,所述存儲介質(zhì)為非易失性計算機可讀存儲介質(zhì),所述非易失性計算機可讀存儲介質(zhì)存儲有至少一個程序,每個所述程序包括指令,所述指令當(dāng)被終端執(zhí)行時,使所述終端執(zhí)行上述任一實施方式所述的一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法。
14、本技術(shù)提供了一種用于深度神經(jīng)網(wǎng)絡(luò)的混合預(yù)測計算方法、設(shè)備及介質(zhì),與現(xiàn)有技術(shù)相比,本技術(shù)實施例具有以下有益的技術(shù)效果:
15、1.提高計算效率:通過計算神經(jīng)元的相角數(shù)據(jù)和代理神經(jīng)元,以及對代理神經(jīng)元集合進行特征計算和預(yù)測置零處理,可以減少不必要的計算,提高深度神經(jīng)網(wǎng)絡(luò)的計算效率。
16、2.降低能耗:減少計算量可以降低深度神經(jīng)網(wǎng)絡(luò)的能耗,這對于在資源受限的設(shè)備上運行神經(jīng)網(wǎng)絡(luò)或大規(guī)模部署神經(jīng)網(wǎng)絡(luò)非常重要。
17、3.提高預(yù)測準確性:通過對代理神經(jīng)元集合的特征計算和預(yù)測置零處理,可以更準確地預(yù)測神經(jīng)元的輸出,從而提高深度神經(jīng)網(wǎng)絡(luò)的預(yù)測準確性。
18、4.節(jié)省存儲空間:將預(yù)測置零結(jié)果為零的輸出元素直接確定為零并進行存儲處理,可以節(jié)省存儲空間,特別是在處理大規(guī)模數(shù)據(jù)時。
19、5.提高模型壓縮效果:還可以作為一種模型壓縮技術(shù),通過減少神經(jīng)元的數(shù)量和計算量來實現(xiàn)模型的壓縮,同時保持一定的預(yù)測性能。