本發(fā)明涉及卷積神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法、系統(tǒng)及計(jì)算機(jī)設(shè)備。
背景技術(shù):
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種常見的深度學(xué)習(xí)架構(gòu),受生物自然視覺認(rèn)知機(jī)制啟發(fā)而來(lái)。20世紀(jì)90年代,LeCun et al等人發(fā)表論文,確立了CNN的現(xiàn)代架構(gòu)。CNN能夠得出原始圖像的有效表征,這使得CNN能夠直接從原始像素中,經(jīng)過極少的預(yù)處理,識(shí)別視覺上面的規(guī)律。然而,由于當(dāng)時(shí)缺乏大規(guī)模訓(xùn)練數(shù)據(jù),計(jì)算機(jī)的計(jì)算能力也跟不上,CNN對(duì)于復(fù)雜問題的處理結(jié)果并不理想。
進(jìn)入二十一世紀(jì),隨著計(jì)算機(jī)能力的大幅度提升,以及大數(shù)據(jù)的廣泛應(yīng)用,CNN的應(yīng)用能力取得了重大突破,同時(shí),CNN的平臺(tái)也從中央處理器(Central Processing Unit,CPU)擴(kuò)展到了圖形處理器(Graphic Processing Unit,GPU)、現(xiàn)場(chǎng)可編程門級(jí)陣列(Field-Programmable Gate Array,FPGA)以及專用集成電路(Application Specific Integrated Circuit,ASIC)。常見的CNN的組成部分有:卷積層、池化層、全連接層。
卷積神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)設(shè)計(jì)中,常見的是采用通用的計(jì)算單元來(lái)計(jì)算卷積,需要針對(duì)每個(gè)計(jì)算單元設(shè)計(jì)一塊存儲(chǔ)空間,用來(lái)存儲(chǔ)數(shù)據(jù)和權(quán)重參數(shù)。存儲(chǔ)空間大小由數(shù)據(jù)大小來(lái)決定。隨著CNN模型復(fù)雜程度的提高,存儲(chǔ)空間的限制問題越來(lái)越突出,限制了計(jì)算單元的增加,從而限制了計(jì)算能力的提高。另外,這種設(shè)計(jì)對(duì)數(shù)據(jù)的帶寬要求也比較高,每次都必須把數(shù)據(jù)全部載入才能開始計(jì)算,而且還需要保存中間數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法、系統(tǒng)及計(jì)算機(jī)設(shè)備,用于減少處理圖像數(shù)據(jù)時(shí)所需的存儲(chǔ)空間以及圖像數(shù)據(jù)的載入和上傳時(shí)間。
一方面本發(fā)明實(shí)施例還提供了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法,包括:
將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù),所述N為大于1的整數(shù),所述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像數(shù)據(jù),所述第一目標(biāo)圖像數(shù)據(jù)和所述第二目標(biāo)圖像數(shù)據(jù)為相鄰的所述目標(biāo)圖像數(shù)據(jù);
將所述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊,計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;在所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將所述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
所述計(jì)算單元得到計(jì)算結(jié)果后將所述計(jì)算結(jié)果上傳到外部存儲(chǔ)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)包括:
將所述圖像數(shù)據(jù)分成所述N個(gè)所需存儲(chǔ)空間相等的所述目標(biāo)圖像數(shù)據(jù);
所述將所述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊包括:
為所述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與所述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,將所述第一目標(biāo)圖像數(shù)據(jù)載入所述第一數(shù)據(jù)緩沖模塊。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述計(jì)算單元得到計(jì)算結(jié)果后將所述計(jì)算結(jié)果上傳到外部存儲(chǔ)包括:
所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,得到所述計(jì)算結(jié)果后將所述計(jì)算結(jié)果上傳到所述外部存儲(chǔ);
或者,所述計(jì)算單元將計(jì)算出的計(jì)算結(jié)果存儲(chǔ)到緩存中,若所述緩存中存儲(chǔ)的所述計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件,則上傳到所述外部存儲(chǔ)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)后進(jìn)行卷積計(jì)算包括:
所述計(jì)算單元從緩存中讀取所述圖像數(shù)據(jù)的權(quán)重參數(shù)以及讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后,進(jìn)行卷積計(jì)算,得到計(jì)算結(jié)果,將所述計(jì)算結(jié)果存儲(chǔ)到所述緩存。
在一個(gè)可選的實(shí)現(xiàn)方式中,在所述將所述圖像數(shù)據(jù)分成N個(gè)所述目標(biāo)圖像數(shù)據(jù)之前,所述方法還包括:
根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間,所述第一數(shù)據(jù)緩沖模塊和所述第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間相同;
所述將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)包括:
確定若將所述圖像數(shù)據(jù)分成所述N個(gè)數(shù)據(jù)量相等的所述目標(biāo)圖像數(shù)據(jù)后,所述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于所述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
若是,將所述圖像數(shù)據(jù)分成所述N個(gè)所述目標(biāo)圖像數(shù)據(jù)。
二方面本發(fā)明實(shí)施例還提供了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度系統(tǒng),包括:
劃分模塊,用于將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù),所述N為大于1的整數(shù),所述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像和第二目標(biāo)圖像,所述第一目標(biāo)圖像數(shù)據(jù)和所述第二目標(biāo)圖像數(shù)據(jù)為相鄰的所述目標(biāo)圖像數(shù)據(jù);
載入模塊,用于將所述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊;在所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將所述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
計(jì)算單元,用于讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;
第一數(shù)據(jù)緩沖模塊,用于存儲(chǔ)所述第一目標(biāo)圖像數(shù)據(jù);
第二數(shù)據(jù)緩沖模塊,用于存儲(chǔ)所述第二目標(biāo)圖像數(shù)據(jù);
上傳模塊,用于將所述計(jì)算單元得到的計(jì)算結(jié)果上傳到外部存儲(chǔ)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述劃分模塊,具體用于將所述圖像數(shù)據(jù)分成所述N個(gè)數(shù)據(jù)量相等的所述目標(biāo)圖像數(shù)據(jù);
所述載入模塊,具體用于為所述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與所述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,將所述第一目標(biāo)圖像數(shù)據(jù)載入所述第一數(shù)據(jù)緩沖模塊。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述上傳模塊,具體用于在所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,得到所述計(jì)算結(jié)果后,將所述計(jì)算結(jié)果上傳到所述外部存儲(chǔ);
或者,具體用于在所述計(jì)算單元存儲(chǔ)到緩存中的計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件后,將所述計(jì)算結(jié)果上傳到所述外部存儲(chǔ)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述計(jì)算單元,具體用于從緩存中讀取所述圖像數(shù)據(jù)的權(quán)重參數(shù)以及讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后,進(jìn)行卷積計(jì)算,得到計(jì)算結(jié)果,將所述計(jì)算結(jié)果存儲(chǔ)到所述緩存。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述系統(tǒng)還包括:
確定模塊,用于根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間,所述第一數(shù)據(jù)緩沖模塊和所述第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間相同;確定若將所述圖像數(shù)據(jù)分成所述N個(gè)數(shù)據(jù)量相等的所述目標(biāo)圖像數(shù)據(jù)后,所述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于所述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
所述劃分模塊,還用于在所述確定模塊確定所述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于所述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間后,將所述圖像數(shù)據(jù)分成所述N個(gè)所述目標(biāo)圖像數(shù)據(jù)。
三方面本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,包括:
存儲(chǔ)器,存儲(chǔ)可執(zhí)行指令以及圖像數(shù)據(jù);
一個(gè)或多個(gè)處理器,與存儲(chǔ)器通信以執(zhí)行可執(zhí)行指令從而完成以下操作:
將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù),所述N為大于1的整數(shù),所述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像數(shù)據(jù),所述第一目標(biāo)圖像數(shù)據(jù)和所述第二目標(biāo)圖像數(shù)據(jù)為相鄰的目標(biāo)圖像數(shù)據(jù);
將所述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊,計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;在所述計(jì)算單元讀取所述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的所述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將所述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
所述計(jì)算單元得到計(jì)算結(jié)果后將所述計(jì)算結(jié)果上傳到外部存儲(chǔ)。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):將圖像數(shù)據(jù)拆分成多個(gè)所需存儲(chǔ)空間較小的目標(biāo)圖像數(shù)據(jù),處理該目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間較少,解決了卷積神經(jīng)網(wǎng)絡(luò)硬件設(shè)計(jì)中存儲(chǔ)空間的限制問題,可以提高計(jì)算能力;在進(jìn)行卷積計(jì)算的過程中,動(dòng)態(tài)地載入和上傳數(shù)據(jù)可以有效地減少數(shù)據(jù)的載入和上傳的時(shí)間。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法流程示意圖;
圖2為本發(fā)明實(shí)施例圖像數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例載入目標(biāo)圖像數(shù)據(jù)的流程示意圖;
圖4為本發(fā)明實(shí)施例另一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法流程示意圖;
圖5為本發(fā)明實(shí)施例卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度系統(tǒng)結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度系統(tǒng)結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例計(jì)算機(jī)設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法,如圖1所示,包括:
101、將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù);
上述N為大于1的整數(shù),上述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像數(shù)據(jù),上述第一目標(biāo)圖像數(shù)據(jù)和上述第二目標(biāo)圖像數(shù)據(jù)為相鄰的上述目標(biāo)圖像數(shù)據(jù)。如圖2所示,左半圖可以表示整個(gè)圖像數(shù)據(jù)的存儲(chǔ)情況,該圖像數(shù)據(jù)的存儲(chǔ)地址可以是連續(xù)的也可以不是連續(xù)的,該圖像數(shù)據(jù)是按照相鄰順序依次存儲(chǔ)的,右半圖可以表示該圖像數(shù)據(jù)分成4個(gè)目標(biāo)圖像數(shù)據(jù)的情況,上述4目標(biāo)圖像數(shù)據(jù)是相鄰的即第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像相鄰、第二目標(biāo)圖像數(shù)據(jù)和第三目標(biāo)圖像相鄰、第三目標(biāo)圖像數(shù)據(jù)和第四目標(biāo)圖像相鄰。上述圖像數(shù)據(jù)是對(duì)采集到的原始圖像數(shù)據(jù)進(jìn)行預(yù)處理后得到的,每個(gè)目標(biāo)圖像數(shù)據(jù)可以表示該原始圖像數(shù)據(jù)經(jīng)過預(yù)處理后的一部分連續(xù)的數(shù)據(jù)。上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是相同的。上述圖像數(shù)據(jù)分成上述N個(gè)目標(biāo)數(shù)據(jù)圖像后,每個(gè)目標(biāo)數(shù)據(jù)圖像所需占據(jù)的存儲(chǔ)空間是相等。
102、將上述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊,計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將上述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊都是緩存的一部分,且占據(jù)的緩存空間的大小相同。例如上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊都為緩存中的100MB的存儲(chǔ)區(qū)域。由于緩存空間有限,圖像數(shù)據(jù)可以存儲(chǔ)在外部存儲(chǔ)設(shè)備中,當(dāng)需要處理上述圖像數(shù)據(jù)時(shí),將上述圖像數(shù)據(jù)從上述外部存儲(chǔ)設(shè)備中載入到上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊。上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊為乒乓緩存,可以進(jìn)行輸入和輸出切換,如圖3所示,圖3中表示了上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊以及計(jì)算單元在三個(gè)時(shí)間段執(zhí)行的操作,在第一時(shí)間段將上述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊,在這一時(shí)間段第二數(shù)據(jù)緩沖模塊不執(zhí)行載入目標(biāo)圖像數(shù)據(jù)的操作,也未存儲(chǔ)有目標(biāo)圖像數(shù)據(jù);在第二時(shí)間段,上述第二數(shù)據(jù)緩沖模塊載入上述第二目標(biāo)圖像數(shù)據(jù),并行地上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊中的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,并將計(jì)算結(jié)果上述到緩存;在第三時(shí)間段,上述第一數(shù)據(jù)緩沖模塊載入第三目標(biāo)圖像數(shù)據(jù),并行地上述計(jì)算單元讀取上述第二數(shù)據(jù)緩沖模塊中的上述第二目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,并將計(jì)算結(jié)果上述到上述緩存。上述三個(gè)時(shí)間段的時(shí)間長(zhǎng)短可以是不同的。從圖3可以看出,計(jì)算單元在讀取目標(biāo)圖像數(shù)據(jù)進(jìn)行卷積計(jì)算的過程中,上述第一數(shù)據(jù)緩沖模塊或上述第二數(shù)據(jù)緩沖模塊可以載入上述計(jì)算單元下一次計(jì)算所需的目標(biāo)圖像數(shù)據(jù),節(jié)省了載入目標(biāo)圖像數(shù)據(jù)的時(shí)間。
103、上述計(jì)算單元得到計(jì)算結(jié)果后將上述計(jì)算結(jié)果上傳到外部存儲(chǔ)。
上述計(jì)算單元可以將每次計(jì)算得到的計(jì)算結(jié)果先上傳到緩存,當(dāng)緩存中存儲(chǔ)的計(jì)算結(jié)果達(dá)到預(yù)設(shè)條件時(shí),再上傳到外部存儲(chǔ)中;也可以直接上傳到外部存儲(chǔ)。例如,當(dāng)緩存中的計(jì)算結(jié)果的數(shù)量達(dá)到100個(gè)時(shí),將這100個(gè)計(jì)算結(jié)果上傳到上述外部存儲(chǔ)。
本發(fā)明實(shí)施例中,將圖像數(shù)據(jù)拆分成多個(gè)所需存儲(chǔ)空間較小的目標(biāo)圖像數(shù)據(jù),處理該目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間較少,解決了卷積神經(jīng)網(wǎng)絡(luò)硬件設(shè)計(jì)中存儲(chǔ)空間的限制問題,可以提高計(jì)算能力;在進(jìn)行卷積計(jì)算的過程中,動(dòng)態(tài)地載入和上傳數(shù)據(jù)可以有效地減少數(shù)據(jù)的載入和上傳的時(shí)間。
本發(fā)明實(shí)施例中,提出了一種將圖像數(shù)據(jù)劃分為多個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:上述將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)包括:
將上述圖像數(shù)據(jù)分成上述N個(gè)所需存儲(chǔ)空間相等的上述目標(biāo)圖像數(shù)據(jù);
上述將上述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊包括:
為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,將上述第一目標(biāo)圖像數(shù)據(jù)載入上述第一數(shù)據(jù)緩沖模塊。
上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是相等且上述每個(gè)目標(biāo)圖像數(shù)據(jù)中的數(shù)據(jù)都是連續(xù)的。在確定上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間后,檢測(cè)緩存中可用的存儲(chǔ)空間,為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊交替執(zhí)行載入操作,即當(dāng)上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊中的目標(biāo)圖像數(shù)據(jù)時(shí),上述第二數(shù)據(jù)緩沖模塊載入上述計(jì)算單元所需讀取的下一個(gè)目標(biāo)圖像數(shù)據(jù),這樣可以有效節(jié)省數(shù)據(jù)的載入時(shí)間。另外,只需上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊就可以完成計(jì)算任務(wù),所需的存儲(chǔ)空間較少。將上述圖像數(shù)據(jù)劃分為多少個(gè)目標(biāo)圖像數(shù)據(jù),即上述N的確定,可以根據(jù)上述圖像數(shù)據(jù)的數(shù)據(jù)量確定。
本發(fā)明實(shí)施例中,先將圖像數(shù)據(jù)分成N個(gè)所需存儲(chǔ)空間相同的目標(biāo)圖像數(shù)據(jù),再根據(jù)目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間為第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配緩存空間,可以有效地減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上提出了一種將計(jì)算結(jié)果上傳到外部存儲(chǔ)的方法,具體如下:上述計(jì)算單元得到計(jì)算結(jié)果后將上述計(jì)算結(jié)果上傳到外部存儲(chǔ)包括:
上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,得到上述計(jì)算結(jié)果后將上述計(jì)算結(jié)果上傳到上述外部存儲(chǔ);
或者,上述計(jì)算單元將計(jì)算出的計(jì)算結(jié)果存儲(chǔ)到緩存中,若上述緩存中存儲(chǔ)的上述計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件,則上傳到上述外部存儲(chǔ)。
上述計(jì)算單元可以得到一個(gè)計(jì)算結(jié)果就進(jìn)行一次上傳,這樣可以節(jié)省緩存空間。上述計(jì)算結(jié)果也可以暫時(shí)存儲(chǔ)在緩存中,當(dāng)上述緩存中存儲(chǔ)的上述計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件時(shí),再將上述結(jié)果上傳到上述外部存儲(chǔ)。由于得到一個(gè)計(jì)算結(jié)果就上傳一次需要上傳的次數(shù)較多,可以先將計(jì)算結(jié)果存儲(chǔ)在緩存中,當(dāng)上述緩存中的計(jì)算結(jié)果達(dá)到預(yù)設(shè)條件時(shí),一次上傳給上述外部存儲(chǔ)。上述預(yù)設(shè)條件可以根據(jù)將計(jì)算結(jié)果上述到外部存儲(chǔ)的速度以及計(jì)算單元將計(jì)算結(jié)果上傳到緩存的速度確定。例如,計(jì)算單元每1秒上傳5個(gè)計(jì)算結(jié)果到上述緩存中,上述緩存每1秒上傳500個(gè)計(jì)算結(jié)果到上述外部存儲(chǔ)中,上述緩存可以在存儲(chǔ)的計(jì)算結(jié)果的數(shù)量達(dá)到500后,進(jìn)行一次上傳。
本發(fā)明實(shí)施例中提出了兩種將計(jì)算單元得到的計(jì)算結(jié)果進(jìn)行上傳的方法,一種可以節(jié)省緩存空間,另一種可以減少上傳的次數(shù)。
本發(fā)明實(shí)施例中,提出了計(jì)算單元進(jìn)行卷積計(jì)算的方法,具體如下:
上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)后進(jìn)行卷積計(jì)算包括:
上述計(jì)算單元從緩存中讀取上述圖像數(shù)據(jù)的權(quán)重參數(shù)以及讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后,進(jìn)行卷積計(jì)算,得到計(jì)算結(jié)果,將上述計(jì)算結(jié)果存儲(chǔ)到上述緩存。
上述權(quán)重參數(shù)存儲(chǔ)在緩存中,上述圖像數(shù)據(jù)僅對(duì)應(yīng)一份權(quán)重參數(shù)且權(quán)重參數(shù)的數(shù)據(jù)量較少。上述權(quán)重參數(shù)和上述目標(biāo)圖像數(shù)據(jù)是行數(shù)和列數(shù)都相同的矩陣。上述計(jì)算單元在讀取上述目標(biāo)圖像數(shù)據(jù)和上述權(quán)重參數(shù)后,進(jìn)行矩陣點(diǎn)乘計(jì)算,如果目標(biāo)圖像數(shù)據(jù)有多個(gè)輸入層,那么需要將每一輸入層的中間結(jié)果算出后,進(jìn)行求和運(yùn)算得到一個(gè)輸出層的一個(gè)點(diǎn)的最終結(jié)果。上述中間結(jié)果為一個(gè)輸入層和權(quán)重參數(shù)進(jìn)行矩陣點(diǎn)乘計(jì)算后得到的。
本發(fā)明實(shí)施例中,每次計(jì)算一個(gè)目標(biāo)圖像數(shù)據(jù)可以有效減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上,提出了另一種將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:在上述將上述圖像數(shù)據(jù)分成N個(gè)上述目標(biāo)圖像數(shù)據(jù)之前,上述方法還包括:
根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間相同;
上述將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)包括:
確定若將上述圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的上述目標(biāo)圖像數(shù)據(jù)后,上述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
若是,將上述圖像數(shù)據(jù)分成上述N個(gè)上述目標(biāo)圖像數(shù)據(jù)。
本發(fā)明實(shí)施例可以先確定當(dāng)前緩存中可用的存儲(chǔ)空間,即可以分配給上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間;再確定上述圖像數(shù)據(jù)分成多少個(gè)目標(biāo)圖像數(shù)據(jù);最后為上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊分配緩存空間。
舉例來(lái)說(shuō),當(dāng)前緩存的可用存儲(chǔ)空間為100MB、計(jì)算單元的數(shù)量為10個(gè)、圖像數(shù)據(jù)所需的存儲(chǔ)空間為200MB,每個(gè)計(jì)算單元可以分配的最大存儲(chǔ)空間為100MB/10即10MB,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間為10MB/2即5MB,上述圖像數(shù)據(jù)可以分成40、45、50、100、200等多個(gè)目標(biāo)圖像數(shù)據(jù)。若上述圖像數(shù)據(jù)分為50個(gè)目標(biāo)圖像數(shù)據(jù),每個(gè)目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間為4MB,需要為上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的都分配4MB的緩存。上述圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)后,只需保證目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于即可,分成的目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù)不作限定。
本發(fā)明實(shí)施例中,根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量確定圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù),可以充分利用緩存空間,提高計(jì)算能力。
本發(fā)明實(shí)施例中,提出了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度方法,如圖4所示,可以包括以下步驟:
401、根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
402、確定若將圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的目標(biāo)圖像數(shù)據(jù)后,第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
上述圖像數(shù)據(jù)包含第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像數(shù)據(jù),上述第一目標(biāo)圖像數(shù)據(jù)和上述第二目標(biāo)圖像數(shù)據(jù)為相鄰的上述目標(biāo)圖像數(shù)據(jù)。
403、若是,將上述圖像數(shù)據(jù)分成上述N個(gè)上述目標(biāo)圖像數(shù)據(jù);
404、將上述第一目標(biāo)圖像數(shù)據(jù)載入上述第一數(shù)據(jù)緩沖模塊;
405、計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將上述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
406、將上述計(jì)算單元得到的計(jì)算結(jié)果存儲(chǔ)到上述緩存;
407、檢測(cè)上述緩存中存儲(chǔ)的上述計(jì)算結(jié)果的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)條件,若達(dá)到上述預(yù)設(shè)條件,執(zhí)行408,否則,執(zhí)行406;
408、將上述計(jì)算結(jié)果上傳到外部存儲(chǔ);
409、調(diào)整上述N,執(zhí)行405。
可以增大上述N,例如上述N原來(lái)為8,可以將N調(diào)整為9、10或者其他整數(shù)。
本發(fā)明實(shí)施例中,將圖像數(shù)據(jù)拆分成多個(gè)所需存儲(chǔ)空間較小的目標(biāo)圖像數(shù)據(jù),處理該目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間較少,解決了卷積神經(jīng)網(wǎng)絡(luò)硬件設(shè)計(jì)中存儲(chǔ)空間的限制問題,可以提高計(jì)算能力;在進(jìn)行卷積計(jì)算的過程中,動(dòng)態(tài)地載入和上傳數(shù)據(jù)可以有效地減少數(shù)據(jù)的載入和上傳的時(shí)間。
本發(fā)明實(shí)施例中,提出了一種卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)調(diào)度系統(tǒng),如圖5所示,包括:
劃分模塊501,用于將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù),上述N為大于1的整數(shù),上述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像和第二目標(biāo)圖像,上述第一目標(biāo)圖像數(shù)據(jù)和上述第二目標(biāo)圖像數(shù)據(jù)為相鄰的上述目標(biāo)圖像數(shù)據(jù);
載入模塊502,用于將上述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊;在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將上述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
計(jì)算單元503,用于讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;
第一數(shù)據(jù)緩沖模塊504,用于存儲(chǔ)上述第一目標(biāo)圖像數(shù)據(jù);
第二數(shù)據(jù)緩沖模塊505,用于存儲(chǔ)上述第二目標(biāo)圖像數(shù)據(jù);
上傳模塊506,用于將上述計(jì)算單元得到的計(jì)算結(jié)果上傳到外部存儲(chǔ)。
實(shí)現(xiàn)方法和圖1中的方法相同,這里不作詳述。
本發(fā)明實(shí)施例中,提出了一種將圖像數(shù)據(jù)劃分為多個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:進(jìn)一步地,上述劃分501模塊,具體用于將上述圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的上述目標(biāo)圖像數(shù)據(jù);
上述載入模塊502,具體用于為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,將上述第一目標(biāo)圖像數(shù)據(jù)載入上述第一數(shù)據(jù)緩沖模塊。
上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是相等且上述每個(gè)目標(biāo)圖像數(shù)據(jù)中的數(shù)據(jù)都是連續(xù)的。在確定上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間后,檢測(cè)緩存中可用的存儲(chǔ)空間,為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊交替執(zhí)行載入操作,即當(dāng)上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊中的目標(biāo)圖像數(shù)據(jù)時(shí),上述第二數(shù)據(jù)緩沖模塊載入上述計(jì)算單元所需讀取的下一個(gè)目標(biāo)圖像數(shù)據(jù),這樣可以有效節(jié)省數(shù)據(jù)的載入時(shí)間。另外,只需上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊就可以完成計(jì)算任務(wù),所需的存儲(chǔ)空間較少。將上述圖像數(shù)據(jù)劃分為多少個(gè)目標(biāo)圖像數(shù)據(jù),即上述N的確定,可以根據(jù)上述圖像數(shù)據(jù)的數(shù)據(jù)量確定。
本發(fā)明實(shí)施例中,先將圖像數(shù)據(jù)分成N個(gè)上述存儲(chǔ)空間相同的目標(biāo)圖像數(shù)據(jù),再根據(jù)目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間為第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配緩存空間,可以有效地減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上提出了一種將計(jì)算結(jié)果上傳到外部存儲(chǔ)的方法,具體如下:上述上傳模塊506,具體用于在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,得到上述計(jì)算結(jié)果后,將上述計(jì)算結(jié)果上傳到上述外部存儲(chǔ);
或者,具體用于在上述計(jì)算單元存儲(chǔ)到緩存中的計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件后,將上述計(jì)算結(jié)果上傳到上述外部存儲(chǔ)。
上述計(jì)算單元可以得到一個(gè)計(jì)算結(jié)果就進(jìn)行一次上傳,可以節(jié)省緩存空間。上述計(jì)算結(jié)果可以暫時(shí)存儲(chǔ)在緩存中,當(dāng)上述緩存中存儲(chǔ)的上述計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件時(shí),再將上述結(jié)果上傳到上述外部存儲(chǔ)。由于得到一個(gè)計(jì)算結(jié)果就上傳一次需要上傳的次數(shù)較多,可以先將計(jì)算結(jié)果存儲(chǔ)在緩存中,當(dāng)上述緩存中的計(jì)算結(jié)果達(dá)到預(yù)設(shè)條件時(shí),一次上傳給上述外部存儲(chǔ)。上述預(yù)設(shè)條件可以根據(jù)將計(jì)算結(jié)果上述到外部存儲(chǔ)的速度以及計(jì)算單元將計(jì)算結(jié)果上傳到緩存的速度確定。例如,計(jì)算單元每1秒上傳5個(gè)計(jì)算結(jié)果到上述緩存中,上述緩存每1秒上傳500個(gè)計(jì)算結(jié)果到上述外部存儲(chǔ)中,上述緩存可以在存儲(chǔ)的計(jì)算結(jié)果的數(shù)量達(dá)到500后,進(jìn)行一次上傳。
本發(fā)明實(shí)施例中提出了兩種將計(jì)算單元得到的計(jì)算結(jié)果進(jìn)行上傳的方法,一種可以節(jié)省緩存空間,另一種可以減少上傳的次數(shù)。
本發(fā)明實(shí)施例中,提出了計(jì)算單元進(jìn)行卷積計(jì)算的方法,具體如下:
上述計(jì)算單元503,具體用于從緩存中讀取上述圖像數(shù)據(jù)的權(quán)重參數(shù)以及讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后,進(jìn)行卷積計(jì)算,得到計(jì)算結(jié)果,將上述計(jì)算結(jié)果存儲(chǔ)到上述緩存。
上述權(quán)重參數(shù)存儲(chǔ)在緩存中,上述圖像數(shù)據(jù)僅對(duì)應(yīng)一份權(quán)重參數(shù)且權(quán)重參數(shù)的數(shù)據(jù)量較少。上述權(quán)重參數(shù)和上述目標(biāo)圖像數(shù)據(jù)是行數(shù)和列數(shù)都相同的矩陣。上述計(jì)算單元在讀取上述目標(biāo)圖像數(shù)據(jù)和上述權(quán)重參數(shù)后,進(jìn)行矩陣點(diǎn)乘計(jì)算,如果目標(biāo)圖像數(shù)據(jù)有多個(gè)輸入層,那么需要將每一輸入層的中間結(jié)果算出后,進(jìn)行求和運(yùn)算得到一個(gè)輸出層的一個(gè)點(diǎn)的最終結(jié)果。上述中間結(jié)果為一個(gè)輸入層和權(quán)重參數(shù)進(jìn)行矩陣點(diǎn)乘計(jì)算后得到的。
本發(fā)明實(shí)施例中,每次計(jì)算一個(gè)目標(biāo)圖像數(shù)據(jù)可以有效減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上,提出了另一種將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:進(jìn)一步地,如圖6所示,上述系統(tǒng)還包括:
確定模塊601,用于根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間相同;確定若將上述圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的上述目標(biāo)圖像數(shù)據(jù)后,上述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;
上述劃分模塊501,還用于在上述確定模塊確定上述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間后,將上述圖像數(shù)據(jù)分成上述N個(gè)上述目標(biāo)圖像數(shù)據(jù)。
本發(fā)明實(shí)施例可以先確定當(dāng)前緩存中可用的存儲(chǔ)空間,即可以分配給上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間;再確定上述圖像數(shù)據(jù)分成多少個(gè)目標(biāo)圖像數(shù)據(jù);最后為上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊分配緩存空間。
舉例來(lái)說(shuō),當(dāng)前緩存的可用存儲(chǔ)空間為100MB、計(jì)算單元的數(shù)量為10個(gè)、圖像數(shù)據(jù)所需的存儲(chǔ)空間為200MB,每個(gè)計(jì)算單元可以分配的最大存儲(chǔ)空間為100MB/10即10MB,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間為10MB/2即5MB,上述圖像數(shù)據(jù)可以分成40、50、100、200等多個(gè)目標(biāo)圖像數(shù)據(jù)。若上述圖像數(shù)據(jù)分為50個(gè)目標(biāo)圖像數(shù)據(jù),每個(gè)目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間為4MB,需要為上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的都分配4MB的緩存。上述圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)后,只需保證目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于即可,分成的目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù)不作限定。
本發(fā)明實(shí)施例中,根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量確定圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù),可以充分利用緩存空間,提高計(jì)算能力。
本發(fā)明實(shí)施例提出了一種計(jì)算機(jī)設(shè)備,如圖7所示,包括:
存儲(chǔ)器701,存儲(chǔ)可執(zhí)行指令以及圖像數(shù)據(jù);
處理器702,與存儲(chǔ)器701通信以執(zhí)行可執(zhí)行指令從而完成以下操作:
將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù),上述N為大于1的整數(shù),上述N個(gè)目標(biāo)圖像數(shù)據(jù)中包含第一目標(biāo)圖像數(shù)據(jù)和第二目標(biāo)圖像數(shù)據(jù),上述第一目標(biāo)圖像數(shù)據(jù)和上述第二目標(biāo)圖像數(shù)據(jù)為相鄰的目標(biāo)圖像數(shù)據(jù);
將上述第一目標(biāo)圖像數(shù)據(jù)載入第一數(shù)據(jù)緩沖模塊,計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算;在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算的過程中,將上述第二目標(biāo)圖像數(shù)據(jù)載入第二數(shù)據(jù)緩沖模塊;
上述計(jì)算單元得到計(jì)算結(jié)果后將上述計(jì)算結(jié)果上傳到外部存儲(chǔ)。
實(shí)現(xiàn)方法和圖1中的方法相同,這里不做詳述。
本發(fā)明實(shí)施例中,提出了一種將圖像數(shù)據(jù)劃分為多個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:進(jìn)一步地,上述處理器702,具體用于將上述圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的上述目標(biāo)圖像數(shù)據(jù);為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,將上述第一目標(biāo)圖像數(shù)據(jù)載入上述第一數(shù)據(jù)緩沖模塊。
上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是相等且上述每個(gè)目標(biāo)圖像數(shù)據(jù)中的數(shù)據(jù)都是連續(xù)的。在確定上述目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間后,檢測(cè)緩存中可用的存儲(chǔ)空間,為上述第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配與上述目標(biāo)圖像數(shù)據(jù)所需存儲(chǔ)空間相等的存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊交替執(zhí)行載入操作,即當(dāng)上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊中的目標(biāo)圖像數(shù)據(jù)時(shí),上述第二數(shù)據(jù)緩沖模塊載入上述計(jì)算單元所需讀取的下一個(gè)目標(biāo)圖像數(shù)據(jù),這樣可以有效節(jié)省數(shù)據(jù)的載入時(shí)間。另外,只需上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊就可以完成計(jì)算任務(wù),所需的存儲(chǔ)空間較少。將上述圖像數(shù)據(jù)劃分為多少個(gè)目標(biāo)圖像數(shù)據(jù),即上述N的確定,可以根據(jù)上述圖像數(shù)據(jù)的數(shù)據(jù)量確定。
本發(fā)明實(shí)施例中,先將圖像數(shù)據(jù)分成N個(gè)上述存儲(chǔ)空間相同的目標(biāo)圖像數(shù)據(jù),再根據(jù)目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間為第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊分配緩存空間,可以有效地減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上提出了一種將計(jì)算結(jié)果上傳到外部存儲(chǔ)的方法,具體如下:上述處理器702,具體用于在上述計(jì)算單元讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后進(jìn)行卷積計(jì)算,得到上述計(jì)算結(jié)果后,將上述計(jì)算結(jié)果上傳到上述外部存儲(chǔ);或者,具體用于在上述計(jì)算單元存儲(chǔ)到緩存中的計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件后,將上述計(jì)算結(jié)果上傳到上述外部存儲(chǔ)。
上述計(jì)算單元可以得到一個(gè)計(jì)算結(jié)果就進(jìn)行一次上傳,可以節(jié)省緩存空間。上述計(jì)算結(jié)果可以暫時(shí)存儲(chǔ)在緩存中,當(dāng)上述緩存中存儲(chǔ)的上述計(jì)算結(jié)果的數(shù)據(jù)量達(dá)到預(yù)設(shè)條件時(shí),再將上述結(jié)果上傳到上述外部存儲(chǔ)。由于得到一個(gè)計(jì)算結(jié)果就上傳一次需要上傳的次數(shù)較多,可以先將計(jì)算結(jié)果存儲(chǔ)在緩存中,當(dāng)上述緩存中的計(jì)算結(jié)果達(dá)到預(yù)設(shè)條件時(shí),一次上傳給上述外部存儲(chǔ)。上述預(yù)設(shè)條件可以根據(jù)將計(jì)算結(jié)果上述到外部存儲(chǔ)的速度以及計(jì)算單元將計(jì)算結(jié)果上傳到緩存的速度確定。例如,計(jì)算單元每1秒上傳5個(gè)計(jì)算結(jié)果到上述緩存中,上述緩存每1秒上傳500個(gè)計(jì)算結(jié)果到上述外部存儲(chǔ)中,上述緩存可以在存儲(chǔ)的計(jì)算結(jié)果的數(shù)量達(dá)到500后,進(jìn)行一次上傳。
本發(fā)明實(shí)施例中提出了兩種將計(jì)算單元得到的計(jì)算結(jié)果進(jìn)行上傳的方式,一種可以節(jié)省緩存空間,另一種可以減少上傳的次數(shù)。
本發(fā)明實(shí)施例中,提出了計(jì)算單元進(jìn)行卷積計(jì)算的方法,具體如下:
上述處理器702,具體用于從緩存中讀取上述圖像數(shù)據(jù)的權(quán)重參數(shù)以及讀取上述第一數(shù)據(jù)緩沖模塊存儲(chǔ)的上述第一目標(biāo)圖像數(shù)據(jù)后,進(jìn)行卷積計(jì)算,得到計(jì)算結(jié)果,將上述計(jì)算結(jié)果存儲(chǔ)到上述緩存。
上述權(quán)重參數(shù)存儲(chǔ)在緩存中,上述圖像數(shù)據(jù)僅對(duì)應(yīng)一份權(quán)重參數(shù)且權(quán)重參數(shù)的數(shù)據(jù)量較少。上述權(quán)重參數(shù)和上述目標(biāo)圖像數(shù)據(jù)是行數(shù)和列數(shù)都相同的矩陣。上述計(jì)算單元在讀取上述目標(biāo)圖像數(shù)據(jù)和上述權(quán)重參數(shù)后,進(jìn)行矩陣點(diǎn)乘計(jì)算,如果目標(biāo)圖像數(shù)據(jù)有多個(gè)輸入層,那么需要將每一輸入層的中間結(jié)果算出后,進(jìn)行求和運(yùn)算得到一個(gè)輸出層的一個(gè)點(diǎn)的最終結(jié)果。上述中間結(jié)果為一個(gè)輸入層和權(quán)重參數(shù)進(jìn)行矩陣點(diǎn)乘計(jì)算后得到的。
本發(fā)明實(shí)施例中,每次計(jì)算一個(gè)目標(biāo)圖像數(shù)據(jù)可以有效減少占用的存儲(chǔ)空間。
本發(fā)明實(shí)施例在前實(shí)施例的基礎(chǔ)上,提出了另一種將圖像數(shù)據(jù)分成N個(gè)目標(biāo)圖像數(shù)據(jù)的方法,具體如下:上述處理器702,還用于根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量,確定第一數(shù)據(jù)緩沖模塊和第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間相同;確定若將上述圖像數(shù)據(jù)分成上述N個(gè)數(shù)據(jù)量相等的上述目標(biāo)圖像數(shù)據(jù)后,上述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間是否小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間;在上述確定模塊確定上述第一目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于上述第一數(shù)據(jù)緩沖模塊可分配的最大存儲(chǔ)空間后,將上述圖像數(shù)據(jù)分成上述N個(gè)上述目標(biāo)圖像數(shù)據(jù)。
本發(fā)明實(shí)施例可以先確定當(dāng)前緩存中可用的存儲(chǔ)空間,即可以分配給上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間;再確定上述圖像數(shù)據(jù)分成多少個(gè)目標(biāo)圖像數(shù)據(jù);最后為上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊分配緩存空間。
舉例來(lái)說(shuō),當(dāng)前緩存的可用存儲(chǔ)空間為100MB、計(jì)算單元的數(shù)量為10個(gè)、圖像數(shù)據(jù)所需的存儲(chǔ)空間為200MB,每個(gè)計(jì)算單元可以分配的最大存儲(chǔ)空間為100MB/10即10MB,上述第一數(shù)據(jù)緩沖模塊和上述第二數(shù)據(jù)緩沖模塊的最大存儲(chǔ)空間為10MB/2即5MB,上述圖像數(shù)據(jù)可以分成40、50、100、200等多個(gè)目標(biāo)圖像數(shù)據(jù)。上述圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)后,只需保證目標(biāo)圖像數(shù)據(jù)所需的存儲(chǔ)空間小于或等于即可,分成的目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù)不作限定。
本發(fā)明實(shí)施例中,根據(jù)緩存當(dāng)前可用的存儲(chǔ)空間以及計(jì)算單元的數(shù)量確定圖像數(shù)據(jù)分成目標(biāo)圖像數(shù)據(jù)的個(gè)數(shù),可以充分利用緩存空間,提高計(jì)算能力。
以上僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。