本技術(shù)涉及神經(jīng)網(wǎng)絡(luò),尤其涉及一種卷積神經(jīng)網(wǎng)絡(luò)加速器及加速方法。
背景技術(shù):
1、卷積神經(jīng)網(wǎng)絡(luò)(cnn)作為深度學(xué)習(xí)領(lǐng)域的重要模型,在圖像識(shí)別、目標(biāo)檢測(cè)、語(yǔ)義分割等任務(wù)中取得了顯著成效。cnn通過(guò)卷積層對(duì)圖像進(jìn)行特征提取,這些特征對(duì)于后續(xù)的分類(lèi)和識(shí)別任務(wù)至關(guān)重要。然而,卷積層的計(jì)算量巨大,這不僅增加了模型的訓(xùn)練難度,還提升了硬件實(shí)現(xiàn)的復(fù)雜性。因此,以往的研究大多集中在如何優(yōu)化卷積層的計(jì)算效率和性能上,包括算法改進(jìn)、硬件加速等多個(gè)方面。
2、盡管卷積層是cnn中的核心部分,但全局平均池化層(gap)作為cnn中降維的關(guān)鍵技術(shù),同樣扮演著不可忽視的角色。全局平均池化層通過(guò)對(duì)特征圖進(jìn)行全局平均操作,能夠顯著減少網(wǎng)絡(luò)的參數(shù)數(shù)量,同時(shí)保留重要的特征信息。這種降維方式不僅有助于減少計(jì)算量,還能提高網(wǎng)絡(luò)的泛化能力。然而,與卷積層相比,全局平均池化層的硬件實(shí)現(xiàn)研究卻相對(duì)缺乏。
3、目前全局平均池化層通常只支持有限的輸入維度,這種局限性在一定程度上影響了神經(jīng)網(wǎng)絡(luò)的靈活性和適應(yīng)性。在實(shí)際應(yīng)用中,不同的圖像和任務(wù)可能需要不同維度的輸入特征圖,而全局平均池化層往往無(wú)法滿(mǎn)足這種多樣化的需求。此外,由于全局平均操作需要對(duì)整個(gè)特征圖進(jìn)行遍歷和計(jì)算,增加了硬件實(shí)現(xiàn)的復(fù)雜性和資源消耗。因此,如何在保證性能的同時(shí),降低全局平均池化層的硬件實(shí)現(xiàn)成本,也需要進(jìn)行考慮。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種卷積神經(jīng)網(wǎng)絡(luò)加速器及加速方法,以解決目前全局平均池化層通常只支持有限的輸入維度,然而不同的圖像和任務(wù)需要不同維度的輸入特征圖,導(dǎo)致全局平均池化層無(wú)法滿(mǎn)足不同維度的輸入特征圖需求的技術(shù)問(wèn)題。
2、本技術(shù)第一方面提供了一種卷積神經(jīng)網(wǎng)絡(luò)加速器,包括:
3、主緩沖器,所述主緩沖器被配置為:
4、獲取特征圖并存儲(chǔ);
5、內(nèi)核模塊,所述內(nèi)核模塊與所述主緩沖器通信連接,被配置為:
6、將所述特征圖按照預(yù)設(shè)維度進(jìn)行劃分,利用全局平均池化層算法,計(jì)算所述特征圖的全局平均池化輸出結(jié)果,得到中間特征圖;
7、若所述中間特征圖的維度未達(dá)到目標(biāo)維度,則重新執(zhí)行得到中間特征圖的步驟;
8、直至所述中間特征圖的維度達(dá)到目標(biāo)維度,得到目標(biāo)特征圖;
9、基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出并存儲(chǔ)至所述主緩沖器。
10、在一些實(shí)施例中,所述內(nèi)核模塊被進(jìn)一步配置為:
11、將所述特征圖按照預(yù)設(shè)維度進(jìn)行劃分,若所述特征圖中拆分區(qū)域內(nèi)的區(qū)塊數(shù)量無(wú)法滿(mǎn)足所述預(yù)設(shè)維度,則將空白區(qū)塊填充至所述拆分區(qū)域,使所述拆分區(qū)域滿(mǎn)足所述預(yù)設(shè)維度;所述空白區(qū)塊的特征值為0;
12、利用全局平均池化層算法,計(jì)算所述特征圖的全局平均池化輸出結(jié)果,得到中間特征圖;
13、若所述中間特征圖的維度未達(dá)到目標(biāo)維度,則重新執(zhí)行得到中間特征圖的步驟;若所述中間特征圖中拆分區(qū)域內(nèi)的區(qū)塊數(shù)量無(wú)法滿(mǎn)足所述預(yù)設(shè)維度,則將空白區(qū)塊填充至所述拆分區(qū)域,使所述拆分區(qū)域滿(mǎn)足所述預(yù)設(shè)維度;
14、直至所述中間特征圖的維度達(dá)到目標(biāo)維度,得到目標(biāo)特征圖。
15、在一些實(shí)施例中,所述全局平均池化層算法由下述公式所確定:
16、
17、式中,gap(x)c表示第c個(gè)通道的全局平均池化輸出結(jié)果;n是每個(gè)通道中的特征數(shù);xi,c是第c個(gè)通道中第i個(gè)特征的數(shù)值。
18、在一些實(shí)施例中,所述預(yù)設(shè)維度尺寸為2×2,所述目標(biāo)維度尺寸為1×1。
19、在一些實(shí)施例中,所述基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出的步驟,被進(jìn)一步配置為:
20、獲取所述特征圖的特征維度和待劃分維度;
21、基于所述特征維度和待劃分維度,得到縮放因子;
22、基于所述目標(biāo)特征圖、縮放因子,計(jì)算目標(biāo)輸出。
23、在一些實(shí)施例中,所述主緩沖器還被配置為:
24、獲取權(quán)重?cái)?shù)據(jù)并存儲(chǔ);
25、所述卷積神經(jīng)網(wǎng)絡(luò)加速器還包括:
26、權(quán)重緩沖器,所述權(quán)重緩沖器與所述主緩沖器、內(nèi)核模塊通信連接,用于存儲(chǔ)所述權(quán)重?cái)?shù)據(jù);
27、特征緩沖器,所述特征緩沖器與所述主緩沖器、內(nèi)核模塊通信連接,用于存儲(chǔ)特征圖數(shù)據(jù)。
28、在一些實(shí)施例中,所述內(nèi)核模塊包括:解復(fù)用器組件、池化單元、復(fù)用器組件;所述解復(fù)用器組件與所述池化單元、復(fù)用器組件通信連接;
29、所述解復(fù)用器組件用于獲取所述特征圖;
30、所述池化單元被配置為:
31、基于所述特征圖,利用全局平均池化層算法,得到目標(biāo)特征圖;
32、基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出;
33、所述復(fù)用器組件用于將所述目標(biāo)輸出發(fā)送至所述特征緩沖器。
34、在一些實(shí)施例中,所述內(nèi)核模塊還包括:pe單元,所述pe單元與所述解復(fù)用器組件、復(fù)用器組件通信連接;
35、所述解復(fù)用器組件還用于獲取權(quán)重?cái)?shù)據(jù)和輸入特征圖;
36、所述pe單元被配置為:
37、利用所述輸入特征圖、權(quán)重?cái)?shù)據(jù),進(jìn)行卷積運(yùn)算,得到特征圖;
38、所述復(fù)用器組件還用于將所述特征圖數(shù)據(jù)發(fā)送至所述特征緩沖器。
39、本技術(shù)第二方面提供了一種卷積神經(jīng)網(wǎng)絡(luò)加速器的加速方法,應(yīng)用于上述第一方面中任意一項(xiàng)所述的一種卷積神經(jīng)網(wǎng)絡(luò)加速器,包括:
40、將特征圖按照預(yù)設(shè)維度進(jìn)行劃分,若所述特征圖中拆分區(qū)域內(nèi)的區(qū)塊數(shù)量無(wú)法滿(mǎn)足所述預(yù)設(shè)維度,則將空白區(qū)塊填充至所述拆分區(qū)域,使所述拆分區(qū)域滿(mǎn)足所述預(yù)設(shè)維度;所述空白區(qū)塊的特征值為0;
41、利用全局平均池化層算法,計(jì)算所述特征圖的全局平均池化輸出結(jié)果,得到中間特征圖;
42、若所述中間特征圖的維度未達(dá)到目標(biāo)特征,則重新執(zhí)行得到中間特征圖的步驟;若所述中間特征圖中拆分區(qū)域內(nèi)的區(qū)塊數(shù)量無(wú)法滿(mǎn)足所述預(yù)設(shè)維度,則將空白區(qū)塊填充至所述拆分區(qū)域,使所述拆分區(qū)域滿(mǎn)足所述預(yù)設(shè)維度;
43、直至所述中間特征圖的維度達(dá)到目標(biāo)特征,得到目標(biāo)特征圖;
44、基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出并存儲(chǔ)至所述主緩沖器。
45、在一些實(shí)施例中,所述基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出的步驟,包括:
46、獲取所述特征圖的特征維度和待劃分維度;
47、基于所述特征維度和待劃分維度,得到縮放因子;
48、基于所述目標(biāo)特征圖、縮放因子,計(jì)算目標(biāo)輸出。
49、本技術(shù)提供一種卷積神經(jīng)網(wǎng)絡(luò)加速器及加速方法,所述卷積神經(jīng)網(wǎng)絡(luò)加速器包括:主緩沖器,所述主緩沖器被配置為:獲取特征圖并存儲(chǔ);內(nèi)核模塊,所述內(nèi)核模塊與所述主緩沖器通信連接,被配置為:將所述特征圖按照預(yù)設(shè)維度進(jìn)行劃分,利用全局平均池化層算法,計(jì)算所述特征圖的全局平均池化輸出結(jié)果,得到中間特征圖;若所述中間特征圖的維度未達(dá)到目標(biāo)維度,則重新執(zhí)行得到中間特征圖的步驟;直至所述中間特征圖的維度達(dá)到目標(biāo)維度,得到目標(biāo)特征圖;基于所述目標(biāo)特征圖,計(jì)算目標(biāo)輸出并存儲(chǔ)至所述主緩沖器,以解決目前全局平均池化層通常只支持有限的輸入維度,導(dǎo)致全局平均池化層無(wú)法滿(mǎn)足不同維度的輸入特征圖需求的問(wèn)題。