一種卷積神經網路的數據調度方法、系統及計算機設備

一種卷積神經網路的數據調度方法、系統及計算機設備

《一種卷積神經網路的數據調度方法、系統及計算機設備》是深圳雲天勵飛技術有限公司於2016年12月23日申請的專利,該專利的公布號為CN106874219A,授權公布日為2017年6月20日,發明人是蔣文。

《一種卷積神經網路的數據調度方法、系統及計算機設備》該方法包括:將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據;將所述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;所述計算單元得到計算結果後將所述計算結果上傳到外部存儲。該發明實施例可以減少處理圖像數據時所需的存儲空間以及圖像數據的載入和上傳時間。

2020年7月14日,《一種卷積神經網路的數據調度方法、系統及計算機設備》獲得第二十一屆中國專利獎優秀獎。

(概述圖為《一種卷積神經網路的數據調度方法、系統及計算機設備》摘要附圖)

基本介紹

  • 中文名:一種卷積神經網路的數據調度方法、系統及計算機設備
  • 申請人:深圳雲天勵飛技術有限公司
  • 申請日:2016年12月23日
  • 申請號:2016112054872
  • 公布號:CN106874219A
  • 公布日:2017年6月20日
  • 發明人:蔣文
  • 地址:廣東省深圳市福田區上步中路1003號科學館701
  • Int.Cl.:G06F12/0871(2016.01)I、G06N3/06(2006.01)I
  • 代理機構:廣州三環專利代理有限公司
  • 代理人:郝傳鑫、熊永強
  • 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,技術領域,權利要求,實施方式,榮譽表彰,

專利背景

卷積神經網路(Convolutional Neural Network,CNN)是一種常見的深度學習架構,受生物自然視覺認知機制啟發而來。20世紀90年代,LeCun et al等人發表論文,確立了CNN的現代架構。CNN能夠得出原始圖像的有效表征,這使得CNN能夠直接從原始像素中,經過極少的預處理,識別視覺上面的規律。然而,由於當時缺乏大規模訓練數據,計算機的計算能力也跟不上,CNN對於複雜問題的處理結果並不理想。
進入二十一世紀,隨著計算機能力的大幅度提升,以及大數據的廣泛套用,CNN的套用能力取得了重大突破,同時,CNN的平台也從中央處理器(Central Processing Unit,CPU)擴展到了圖形處理器(Graphic Processing Unit,GPU)、現場可程式門級陣列(Field-Programmable Gate Array,FPGA)以及專用積體電路(Application Specific Integrated Circuit,ASIC)。常見的CNN的組成部分有:卷積層、池化層、全連線層。
卷積神經網路的硬體實現設計中,常見的是採用通用的計算單元來計算卷積,需要針對每個計算單元設計一塊存儲空間,用來存儲數據和權重參數。存儲空間大小由數據大小來決定。隨著CNN模型複雜程度的提高,存儲空間的限制問題越來越突出,限制了計算單元的增加,從而限制了計算能力的提高。另外,這種設計對數據的頻寬要求也比較高,每次都必須把數據全部載入才能開始計算,而且還需要保存中間數據。

發明內容

專利目的

《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例提供了一種卷積神經網路的數據調度方法、系統及計算機設備,用於減少處理圖像數據時所需的存儲空間以及圖像數據的載入和上傳時間。

技術方案

一方面《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例還提供了一種卷積神經網路的數據調度方法,包括:將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據,所述第一目標圖像數據和所述第二目標圖像數據為相鄰的所述目標圖像數據;將所述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;所述計算單元得到計算結果後將所述計算結果上傳到外部存儲。
在一個可選的實現方式中,所述將圖像數據分成N個目標圖像數據包括:將所述圖像數據分成所述N個所需存儲空間相等的所述目標圖像數據;
所述將所述第一目標圖像數據載入第一數據緩衝模組包括:為所述第一數據緩衝模組和第二數據緩衝模組分配與所述目標圖像數據所需存儲空間相等的存儲空間,將所述第一目標圖像數據載入所述第一數據緩衝模組。
在一個可選的實現方式中,所述計算單元得到計算結果後將所述計算結果上傳到外部存儲包括:所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算,得到所述計算結果後將所述計算結果上傳到所述外部存儲;或者,所述計算單元將計算出的計算結果存儲到快取中,若所述快取中存儲的所述計算結果的數據量達到預設條件,則上傳到所述外部存儲。
在一個可選的實現方式中,所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數後進行卷積計算包括:所述計算單元從快取中讀取所述圖像數據的權重參數以及讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後,進行卷積計算,得到計算結果,將所述計算結果存儲到所述快取。
在一個可選的實現方式中,在所述將所述圖像數據分成N個所述目標圖像數據之前,所述方法還包括:根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,所述第一數據緩衝模組和所述第二數據緩衝模組可分配的最大存儲空間相同;
所述將圖像數據分成N個目標圖像數據包括:確定若將所述圖像數據分成所述N個數據量相等的所述目標圖像數據後,所述第一目標圖像數據所需的存儲空間是否小於或等於所述第一數據緩衝模組可分配的最大存儲空間;若是,將所述圖像數據分成所述N個所述目標圖像數據。
二方面《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例還提供了一種卷積神經網路的數據調度系統,包括:劃分模組,用於將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像和第二目標圖像,所述第一目標圖像數據和所述第二目標圖像數據為相鄰的所述目標圖像數據;載入模組,用於將所述第一目標圖像數據載入第一數據緩衝模組;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;計算單元,用於讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;第一數據緩衝模組,用於存儲所述第一目標圖像數據;第二數據緩衝模組,用於存儲所述第二目標圖像數據;上傳模組,用於將所述計算單元得到的計算結果上傳到外部存儲。
在一個可選的實現方式中,所述劃分模組,具體用於將所述圖像數據分成所述N個數據量相等的所述目標圖像數據;所述載入模組,具體用於為所述第一數據緩衝模組和第二數據緩衝模組分配與所述目標圖像數據所需存儲空間相等的存儲空間,將所述第一目標圖像數據載入所述第一數據緩衝模組。
在一個可選的實現方式中,所述上傳模組,具體用於在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算,得到所述計算結果後,將所述計算結果上傳到所述外部存儲;或者,具體用於在所述計算單元存儲到快取中的計算結果的數據量達到預設條件後,將所述計算結果上傳到所述外部存儲。
在一個可選的實現方式中,所述計算單元,具體用於從快取中讀取所述圖像數據的權重參數以及讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後,進行卷積計算,得到計算結果,將所述計算結果存儲到所述快取。
在一個可選的實現方式中,所述系統還包括:確定模組,用於根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,所述第一數據緩衝模組和所述第二數據緩衝模組可分配的最大存儲空間相同;確定若將所述圖像數據分成所述N個數據量相等的所述目標圖像數據後,所述第一目標圖像數據所需的存儲空間是否小於或等於所述第一數據緩衝模組可分配的最大存儲空間;所述劃分模組,還用於在所述確定模組確定所述第一目標圖像數據所需的存儲空間小於或等於所述第一數據緩衝模組可分配的最大存儲空間後,將所述圖像數據分成所述N個所述目標圖像數據。
三方面《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例還提供了一種計算機設備,包括:存儲器,存儲可執行指令以及圖像數據;一個或多個處理器,與存儲器通信以執行可執行指令從而完成以下操作:
將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據,所述第一目標圖像數據和所述第二目標圖像數據為相鄰的目標圖像數據;將所述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;所述計算單元得到計算結果後將所述計算結果上傳到外部存儲。

改善效果

《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例具有以下優點:將圖像數據拆分成多個所需存儲空間較小的目標圖像數據,處理該目標圖像數據所需的存儲空間較少,解決了卷積神經網路硬體設計中存儲空間的限制問題,可以提高計算能力;在進行卷積計算的過程中,動態地載入和上傳數據可以有效地減少數據的載入和上傳的時間。

附圖說明

圖1為《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例一種卷積神經網路的數據調度方法流程示意圖;
圖2為該發明實施例圖像數據存儲的結構示意圖;
圖3為該發明實施例載入目標圖像數據的流程示意圖;
圖4為該發明實施例另一種卷積神經網路的數據調度方法流程示意圖;
圖5為該發明實施例卷積神經網路的數據調度系統結構示意圖;
圖6為該發明實施例卷積神經網路的數據調度系統結構示意圖;
圖7為該發明實施例計算機設備結構示意圖。

技術領域

《一種卷積神經網路的數據調度方法、系統及計算機設備》涉及卷積神經網路技術領域,尤其涉及一種卷積神經網路的數據調度方法、系統及計算機設備。

權利要求

1.一種卷積神經網路的數據調度方法,其特徵在於,包括:將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據,所述第一目標圖像數據和所述第二目標圖像數據為相鄰的所述目標圖像數據;將所述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;所述計算單元得到計算結果後將所述計算結果上傳到外部存儲。
2.根據權利要求1所述方法,所述將圖像數據分成N個目標圖像數據包括:將所述圖像數據分成所述N個所需存儲空間相等的所述目標圖像數據;所述將所述第一目標圖像數據載入第一數據緩衝模組包括:為所述第一數據緩衝模組和第二數據緩衝模組分配與所述目標圖像數據所需存儲空間相等的存儲空間,將所述第一目標圖像數據載入所述第一數據緩衝模組。
3.根據權利要求1或2所述方法,所述計算單元得到計算結果後將所述計算結果上傳到外部存儲包括:所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算,得到所述計算結果後將所述計算結果上傳到所述外部存儲;或者,所述計算單元將計算出的計算結果存儲到快取中,若所述快取中存儲的所述計算結果的數據量達到預設條件,則上傳到所述外部存儲。
4.根據權利要求1所述方法,所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數後進行卷積計算包括:所述計算單元從快取中讀取所述圖像數據的權重參數以及讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後,進行卷積計算,得到計算結果,將所述計算結果存儲到所述快取。
5.根據權利要求1所述方法,在所述將所述圖像數據分成N個所述目標圖像數據之前,所述方法還包括:根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,所述第一數據緩衝模組和所述第二數據緩衝模組可分配的最大存儲空間相同;所述將圖像數據分成N個目標圖像數據包括:確定若將所述圖像數據分成所述N個數據量相等的所述目標圖像數據後,所述第一目標圖像數據所需的存儲空間是否小於或等於所述第一數據緩衝模組可分配的最大存儲空間;若是,將所述圖像數據分成所述N個所述目標圖像數據。
6.一種卷積神經網路的數據調度系統,其特徵在於,包括:劃分模組,用於將圖像數據分成N個目標圖像數據,所述N為大於1的整數,所述N個目標圖像數據中包含第一目標圖像和第二目標圖像,所述第一目標圖像數據和所述第二目標圖像數據為相鄰的所述目標圖像數據;載入模組,用於將所述第一目標圖像數據載入第一數據緩衝模組;在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算的過程中,將所述第二目標圖像數據載入第二數據緩衝模組;計算單元,用於讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算;第一數據緩衝模組,用於存儲所述第一目標圖像數據;第二數據緩衝模組,用於存儲所述第二目標圖像數據;上傳模組,用於將所述計算單元得到的計算結果上傳到外部存儲。
7.根據權利要求6所述系統,其特徵在於,所述劃分模組,具體用於將所述圖像數據分成所述N個數據量相等的所述目標圖像數據;所述載入模組,具體用於為所述第一數據緩衝模組和第二數據緩衝模組分配與所述目標圖像數據所需存儲空間相等的存儲空間,將所述第一目標圖像數據載入所述第一數據緩衝模組。
8.根據權利要求6或7所述系統,其特徵在於,所述上傳模組,具體用於在所述計算單元讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後進行卷積計算,得到所述計算結果後,將所述計算結果上傳到所述外部存儲;或者,具體用於在所述計算單元存儲到快取中的計算結果的數據量達到預設條件後,將所述計算結果上傳到所述外部存儲。
9.根據權利要求6所述系統,其特徵在於,所述計算單元,具體用於從快取中讀取所述圖像數據的權重參數以及讀取所述第一數據緩衝模組存儲的所述第一目標圖像數據後,進行卷積計算,得到計算結果,將所述計算結果存儲到所述快取。
10.根據權利要求6所述系統,其特徵在於,所述系統還包括:確定模組,用於根據當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,所述第一數據緩衝模組和所述第二數據緩衝模組可分配的最大存儲空間相同;確定若將所述圖像數據分成所述N個數據量相等的所述目標圖像數據後,所述第一目標圖像數據所需的存儲空間是否小於或等於所述第一數據緩衝模組可分配的最大存儲空間;所述劃分模組,還用於在所述確定模組確定所述第一目標圖像數據所需的存儲空間小於或等於所述第一數據緩衝模組可分配的最大存儲空間後,將所述圖像數據分成所述N個所述目標圖像數據。

實施方式

《一種卷積神經網路的數據調度方法、系統及計算機設備》實施例提供了一種卷積神經網路的數據調度方法,如圖1所示,包括:
101、將圖像數據分成N個目標圖像數據;上述N為大於1的整數,上述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據,上述第一目標圖像數據和上述第二目標圖像數據為相鄰的上述目標圖像數據。如圖2所示,左半圖可以表示整個圖像數據的存儲情況,該圖像數據的存儲地址可以是連續的也可以不是連續的,該圖像數據是按照相鄰順序依次存儲的,右半圖可以表示該圖像數據分成4個目標圖像數據的情況,上述4目標圖像數據是相鄰的即第一目標圖像數據和第二目標圖像相鄰、第二目標圖像數據和第三目標圖像相鄰、第三目標圖像數據和第四目標圖像相鄰。上述圖像數據是對採集到的原始圖像數據進行預處理後得到的,每個目標圖像數據可以表示該原始圖像數據經過預處理後的一部分連續的數據。上述目標圖像數據所需的存儲空間是相同的。上述圖像數據分成上述N個目標數據圖像後,每個目標數據圖像所需占據的存儲空間是相等。
102、將上述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算;在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算的過程中,將上述第二目標圖像數據載入第二數據緩衝模組;上述第一數據緩衝模組和上述第二數據緩衝模組都是快取的一部分,且占據的快取空間的大小相同。例如上述第一數據緩衝模組和上述第二數據緩衝模組都為快取中的100兆的存儲區域。由於快取空間有限,圖像數據可以存儲在外部存儲設備中,當需要處理上述圖像數據時,將上述圖像數據從上述外部存儲設備中載入到上述第一數據緩衝模組和上述第二數據緩衝模組。上述第一數據緩衝模組和上述第二數據緩衝模組為桌球快取,可以進行輸入和輸出切換,如圖3所示,圖3中表示了上述第一數據緩衝模組和上述第二數據緩衝模組以及計算單元在三個時間段執行的操作,在第一時間段將上述第一目標圖像數據載入第一數據緩衝模組,在這一時間段第二數據緩衝模組不執行載入目標圖像數據的操作,也未存儲有目標圖像數據;在第二時間段,上述第二數據緩衝模組載入上述第二目標圖像數據,並行地上述計算單元讀取上述第一數據緩衝模組中的上述第一目標圖像數據後進行卷積計算,並將計算結果上述到快取;在第三時間段,上述第一數據緩衝模組載入第三目標圖像數據,並行地上述計算單元讀取上述第二數據緩衝模組中的上述第二目標圖像數據後進行卷積計算,並將計算結果上述到上述快取。上述三個時間段的時間長短可以是不同的。從圖3可以看出,計算單元在讀取目標圖像數據進行卷積計算的過程中,上述第一數據緩衝模組或上述第二數據緩衝模組可以載入上述計算單元下一次計算所需的目標圖像數據,節省了載入目標圖像數據的時間。
103、上述計算單元得到計算結果後將上述計算結果上傳到外部存儲。上述計算單元可以將每次計算得到的計算結果先上傳到快取,當快取中存儲的計算結果達到預設條件時,再上傳到外部存儲中;也可以直接上傳到外部存儲。例如,當快取中的計算結果的數量達到100個時,將這100個計算結果上傳到上述外部存儲。
該發明實施例中,將圖像數據拆分成多個所需存儲空間較小的目標圖像數據,處理該目標圖像數據所需的存儲空間較少,解決了卷積神經網路硬體設計中存儲空間的限制問題,可以提高計算能力;在進行卷積計算的過程中,動態地載入和上傳數據可以有效地減少數據的載入和上傳的時間。
該發明實施例中,提出了一種將圖像數據劃分為多個目標圖像數據的方法,具體如下:上述將圖像數據分成N個目標圖像數據包括:將上述圖像數據分成上述N個所需存儲空間相等的上述目標圖像數據;
上述將上述第一目標圖像數據載入第一數據緩衝模組包括:為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,將上述第一目標圖像數據載入上述第一數據緩衝模組。
上述目標圖像數據所需的存儲空間是相等且上述每個目標圖像數據中的數據都是連續的。在確定上述目標圖像數據所需的存儲空間後,檢測快取中可用的存儲空間,為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組交替執行載入操作,即當上述計算單元讀取上述第一數據緩衝模組中的目標圖像數據時,上述第二數據緩衝模組載入上述計算單元所需讀取的下一個目標圖像數據,這樣可以有效節省數據的載入時間。另外,只需上述第一數據緩衝模組和上述第二數據緩衝模組就可以完成計算任務,所需的存儲空間較少。將上述圖像數據劃分為多少個目標圖像數據,即上述N的確定,可以根據上述圖像數據的數據量確定。
該發明實施例中,先將圖像數據分成N個所需存儲空間相同的目標圖像數據,再根據目標圖像數據所需的存儲空間為第一數據緩衝模組和第二數據緩衝模組分配快取空間,可以有效地減少占用的存儲空間。
該發明實施例在前實施例的基礎上提出了一種將計算結果上傳到外部存儲的方法,具體如下:上述計算單元得到計算結果後將上述計算結果上傳到外部存儲包括:上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算,得到上述計算結果後將上述計算結果上傳到上述外部存儲;或者,上述計算單元將計算出的計算結果存儲到快取中,若上述快取中存儲的上述計算結果的數據量達到預設條件,則上傳到上述外部存儲。
上述計算單元可以得到一個計算結果就進行一次上傳,這樣可以節省快取空間。上述計算結果也可以暫時存儲在快取中,當上述快取中存儲的上述計算結果的數據量達到預設條件時,再將上述結果上傳到上述外部存儲。由於得到一個計算結果就上傳一次需要上傳的次數較多,可以先將計算結果存儲在快取中,當上述快取中的計算結果達到預設條件時,一次上傳給上述外部存儲。上述預設條件可以根據將計算結果上述到外部存儲的速度以及計算單元將計算結果上傳到快取的速度確定。例如,計算單元每1秒上傳5個計算結果到上述快取中,上述快取每1秒上傳500個計算結果到上述外部存儲中,上述快取可以在存儲的計算結果的數量達到500後,進行一次上傳。
該發明實施例中提出了兩種將計算單元得到的計算結果進行上傳的方法,一種可以節省快取空間,另一種可以減少上傳的次數。
該發明實施例中,提出了計算單元進行卷積計算的方法,具體如下:上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數後進行卷積計算包括:上述計算單元從快取中讀取上述圖像數據的權重參數以及讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後,進行卷積計算,得到計算結果,將上述計算結果存儲到上述快取。
上述權重參數存儲在快取中,上述圖像數據僅對應一份權重參數且權重參數的數據量較少。上述權重參數和上述目標圖像數據是行數和列數都相同的矩陣。上述計算單元在讀取上述目標圖像數據和上述權重參數後,進行矩陣點乘計算,如果目標圖像數據有多個輸入層,那么需要將每一輸入層的中間結果算出後,進行求和運算得到一個輸出層的一個點的最終結果。上述中間結果為一個輸入層和權重參數進行矩陣點乘計算後得到的。
該發明實施例中,每次計算一個目標圖像數據可以有效減少占用的存儲空間。
該發明實施例在前實施例的基礎上,提出了另一種將圖像數據分成N個目標圖像數據的方法,具體如下:在上述將上述圖像數據分成N個上述目標圖像數據之前,上述方法還包括:根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組可分配的最大存儲空間相同;上述將圖像數據分成N個目標圖像數據包括:確定若將上述圖像數據分成上述N個數據量相等的上述目標圖像數據後,上述第一目標圖像數據所需的存儲空間是否小於或等於上述第一數據緩衝模組可分配的最大存儲空間;若是,將上述圖像數據分成上述N個上述目標圖像數據。
該發明實施例可以先確定當前快取中可用的存儲空間,即可以分配給上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間;再確定上述圖像數據分成多少個目標圖像數據;最後為上述第一數據緩衝模組和上述第二數據緩衝模組分配快取空間。
舉例來說,當前快取的可用存儲空間為100兆、計算單元的數量為10個、圖像數據所需的存儲空間為200兆,每個計算單元可以分配的最大存儲空間為100兆/10即10兆,上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間為10兆/2即5兆,上述圖像數據可以分成40、45、50、100、200等多個目標圖像數據。若上述圖像數據分為50個目標圖像數據,每個目標圖像數據所需的存儲空間為4兆,需要為上述第一數據緩衝模組和上述第二數據緩衝模組的都分配4兆的快取。上述圖像數據分成目標圖像數據後,只需保證目標圖像數據所需的存儲空間小於或等於即可,分成的目標圖像數據的個數不作限定。
該發明實施例中,根據快取當前可用的存儲空間以及計算單元的數量確定圖像數據分成目標圖像數據的個數,可以充分利用快取空間,提高計算能力。
該發明實施例中,提出了一種卷積神經網路的數據調度方法,如圖4所示,可以包括以下步驟:
401、根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間;
402、確定若將圖像數據分成上述N個數據量相等的目標圖像數據後,第一目標圖像數據所需的存儲空間是否小於或等於上述第一數據緩衝模組可分配的最大存儲空間;上述圖像數據包含第一目標圖像數據和第二目標圖像數據,上述第一目標圖像數據和上述第二目標圖像數據為相鄰的上述目標圖像數據。
403、若是,將上述圖像數據分成上述N個上述目標圖像數據;
404、將上述第一目標圖像數據載入上述第一數據緩衝模組;
405、計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算,在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算的過程中,將上述第二目標圖像數據載入第二數據緩衝模組;
406、將上述計算單元得到的計算結果存儲到上述快取;
407、檢測上述快取中存儲的上述計算結果的數據量是否達到預設條件,若達到上述預設條件,執行408,否則,執行406;
408、將上述計算結果上傳到外部存儲;
409、調整上述N,執行405。
可以增大上述N,例如上述N原來為8,可以將N調整為9、10或者其他整數。
該發明實施例中,將圖像數據拆分成多個所需存儲空間較小的目標圖像數據,處理該目標圖像數據所需的存儲空間較少,解決了卷積神經網路硬體設計中存儲空間的限制問題,可以提高計算能力;在進行卷積計算的過程中,動態地載入和上傳數據可以有效地減少數據的載入和上傳的時間。
該發明實施例中,提出了一種卷積神經網路的數據調度系統,如圖5所示,包括:劃分模組501,用於將圖像數據分成N個目標圖像數據,上述N為大於1的整數,上述N個目標圖像數據中包含第一目標圖像和第二目標圖像,上述第一目標圖像數據和上述第二目標圖像數據為相鄰的上述目標圖像數據;載入模組502,用於將上述第一目標圖像數據載入第一數據緩衝模組;在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算的過程中,將上述第二目標圖像數據載入第二數據緩衝模組;計算單元503,用於讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算;第一數據緩衝模組504,用於存儲上述第一目標圖像數據;第二數據緩衝模組505,用於存儲上述第二目標圖像數據;上傳模組506,用於將上述計算單元得到的計算結果上傳到外部存儲。
實現方法和圖1中的方法相同,這裡不作詳述。
該發明實施例中,提出了一種將圖像數據劃分為多個目標圖像數據的方法,具體如下:進一步地,上述劃分501模組,具體用於將上述圖像數據分成上述N個數據量相等的上述目標圖像數據;上述載入模組502,具體用於為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,將上述第一目標圖像數據載入上述第一數據緩衝模組。
上述目標圖像數據所需的存儲空間是相等且上述每個目標圖像數據中的數據都是連續的。在確定上述目標圖像數據所需的存儲空間後,檢測快取中可用的存儲空間,為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組交替執行載入操作,即當上述計算單元讀取上述第一數據緩衝模組中的目標圖像數據時,上述第二數據緩衝模組載入上述計算單元所需讀取的下一個目標圖像數據,這樣可以有效節省數據的載入時間。另外,只需上述第一數據緩衝模組和上述第二數據緩衝模組就可以完成計算任務,所需的存儲空間較少。將上述圖像數據劃分為多少個目標圖像數據,即上述N的確定,可以根據上述圖像數據的數據量確定。
該發明實施例中,先將圖像數據分成N個上述存儲空間相同的目標圖像數據,再根據目標圖像數據所需的存儲空間為第一數據緩衝模組和第二數據緩衝模組分配快取空間,可以有效地減少占用的存儲空間。
該發明實施例在前實施例的基礎上提出了一種將計算結果上傳到外部存儲的方法,具體如下:上述上傳模組506,具體用於在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算,得到上述計算結果後,將上述計算結果上傳到上述外部存儲;或者,具體用於在上述計算單元存儲到快取中的計算結果的數據量達到預設條件後,將上述計算結果上傳到上述外部存儲。
上述計算單元可以得到一個計算結果就進行一次上傳,可以節省快取空間。上述計算結果可以暫時存儲在快取中,當上述快取中存儲的上述計算結果的數據量達到預設條件時,再將上述結果上傳到上述外部存儲。由於得到一個計算結果就上傳一次需要上傳的次數較多,可以先將計算結果存儲在快取中,當上述快取中的計算結果達到預設條件時,一次上傳給上述外部存儲。上述預設條件可以根據將計算結果上述到外部存儲的速度以及計算單元將計算結果上傳到快取的速度確定。例如,計算單元每1秒上傳5個計算結果到上述快取中,上述快取每1秒上傳500個計算結果到上述外部存儲中,上述快取可以在存儲的計算結果的數量達到500後,進行一次上傳。
該發明實施例中提出了兩種將計算單元得到的計算結果進行上傳的方法,一種可以節省快取空間,另一種可以減少上傳的次數。
該發明實施例中,提出了計算單元進行卷積計算的方法,具體如下:上述計算單元503,具體用於從快取中讀取上述圖像數據的權重參數以及讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後,進行卷積計算,得到計算結果,將上述計算結果存儲到上述快取。
上述權重參數存儲在快取中,上述圖像數據僅對應一份權重參數且權重參數的數據量較少。上述權重參數和上述目標圖像數據是行數和列數都相同的矩陣。上述計算單元在讀取上述目標圖像數據和上述權重參數後,進行矩陣點乘計算,如果目標圖像數據有多個輸入層,那么需要將每一輸入層的中間結果算出後,進行求和運算得到一個輸出層的一個點的最終結果。上述中間結果為一個輸入層和權重參數進行矩陣點乘計算後得到的。
該發明實施例中,每次計算一個目標圖像數據可以有效減少占用的存儲空間。
該發明實施例在前實施例的基礎上,提出了另一種將圖像數據分成N個目標圖像數據的方法,具體如下:進一步地,如圖6所示,上述系統還包括:確定模組601,用於根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組可分配的最大存儲空間相同;確定若將上述圖像數據分成上述N個數據量相等的上述目標圖像數據後,上述第一目標圖像數據所需的存儲空間是否小於或等於上述第一數據緩衝模組可分配的最大存儲空間;上述劃分模組501,還用於在上述確定模組確定上述第一目標圖像數據所需的存儲空間小於或等於上述第一數據緩衝模組可分配的最大存儲空間後,將上述圖像數據分成上述N個上述目標圖像數據。
該發明實施例可以先確定當前快取中可用的存儲空間,即可以分配給上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間;再確定上述圖像數據分成多少個目標圖像數據;最後為上述第一數據緩衝模組和上述第二數據緩衝模組分配快取空間。
舉例來說,當前快取的可用存儲空間為100兆、計算單元的數量為10個、圖像數據所需的存儲空間為200兆,每個計算單元可以分配的最大存儲空間為100兆/10即10兆,上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間為10兆/2即5兆,上述圖像數據可以分成40、50、100、200等多個目標圖像數據。若上述圖像數據分為50個目標圖像數據,每個目標圖像數據所需的存儲空間為4兆,需要為上述第一數據緩衝模組和上述第二數據緩衝模組的都分配4兆的快取。上述圖像數據分成目標圖像數據後,只需保證目標圖像數據所需的存儲空間小於或等於即可,分成的目標圖像數據的個數不作限定。
該發明實施例中,根據快取當前可用的存儲空間以及計算單元的數量確定圖像數據分成目標圖像數據的個數,可以充分利用快取空間,提高計算能力。
該發明實施例提出了一種計算機設備,如圖7所示,包括:存儲器701,存儲可執行指令以及圖像數據;
處理器702,與存儲器701通信以執行可執行指令從而完成以下操作:將圖像數據分成N個目標圖像數據,上述N為大於1的整數,上述N個目標圖像數據中包含第一目標圖像數據和第二目標圖像數據,上述第一目標圖像數據和上述第二目標圖像數據為相鄰的目標圖像數據;將上述第一目標圖像數據載入第一數據緩衝模組,計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算;在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算的過程中,將上述第二目標圖像數據載入第二數據緩衝模組;上述計算單元得到計算結果後將上述計算結果上傳到外部存儲。
實現方法和圖1中的方法相同,這裡不做詳述。
該發明實施例中,提出了一種將圖像數據劃分為多個目標圖像數據的方法,具體如下:進一步地,上述處理器702,具體用於將上述圖像數據分成上述N個數據量相等的上述目標圖像數據;為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,將上述第一目標圖像數據載入上述第一數據緩衝模組。
上述目標圖像數據所需的存儲空間是相等且上述每個目標圖像數據中的數據都是連續的。在確定上述目標圖像數據所需的存儲空間後,檢測快取中可用的存儲空間,為上述第一數據緩衝模組和第二數據緩衝模組分配與上述目標圖像數據所需存儲空間相等的存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組交替執行載入操作,即當上述計算單元讀取上述第一數據緩衝模組中的目標圖像數據時,上述第二數據緩衝模組載入上述計算單元所需讀取的下一個目標圖像數據,這樣可以有效節省數據的載入時間。另外,只需上述第一數據緩衝模組和上述第二數據緩衝模組就可以完成計算任務,所需的存儲空間較少。將上述圖像數據劃分為多少個目標圖像數據,即上述N的確定,可以根據上述圖像數據的數據量確定。
該發明實施例中,先將圖像數據分成N個上述存儲空間相同的目標圖像數據,再根據目標圖像數據所需的存儲空間為第一數據緩衝模組和第二數據緩衝模組分配快取空間,可以有效地減少占用的存儲空間。
該發明實施例在前實施例的基礎上提出了一種將計算結果上傳到外部存儲的方法,具體如下:上述處理器702,具體用於在上述計算單元讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後進行卷積計算,得到上述計算結果後,將上述計算結果上傳到上述外部存儲;或者,具體用於在上述計算單元存儲到快取中的計算結果的數據量達到預設條件後,將上述計算結果上傳到上述外部存儲。
上述計算單元可以得到一個計算結果就進行一次上傳,可以節省快取空間。上述計算結果可以暫時存儲在快取中,當上述快取中存儲的上述計算結果的數據量達到預設條件時,再將上述結果上傳到上述外部存儲。由於得到一個計算結果就上傳一次需要上傳的次數較多,可以先將計算結果存儲在快取中,當上述快取中的計算結果達到預設條件時,一次上傳給上述外部存儲。上述預設條件可以根據將計算結果上述到外部存儲的速度以及計算單元將計算結果上傳到快取的速度確定。例如,計算單元每1秒上傳5個計算結果到上述快取中,上述快取每1秒上傳500個計算結果到上述外部存儲中,上述快取可以在存儲的計算結果的數量達到500後,進行一次上傳。
該發明實施例中提出了兩種將計算單元得到的計算結果進行上傳的方式,一種可以節省快取空間,另一種可以減少上傳的次數。
該發明實施例中,提出了計算單元進行卷積計算的方法,具體如下:上述處理器702,具體用於從快取中讀取上述圖像數據的權重參數以及讀取上述第一數據緩衝模組存儲的上述第一目標圖像數據後,進行卷積計算,得到計算結果,將上述計算結果存儲到上述快取。
上述權重參數存儲在快取中,上述圖像數據僅對應一份權重參數且權重參數的數據量較少。上述權重參數和上述目標圖像數據是行數和列數都相同的矩陣。上述計算單元在讀取上述目標圖像數據和上述權重參數後,進行矩陣點乘計算,如果目標圖像數據有多個輸入層,那么需要將每一輸入層的中間結果算出後,進行求和運算得到一個輸出層的一個點的最終結果。上述中間結果為一個輸入層和權重參數進行矩陣點乘計算後得到的。
該發明實施例中,每次計算一個目標圖像數據可以有效減少占用的存儲空間。
該發明實施例在前實施例的基礎上,提出了另一種將圖像數據分成N個目標圖像數據的方法,具體如下:上述處理器702,還用於根據快取當前可用的存儲空間以及計算單元的數量,確定第一數據緩衝模組和第二數據緩衝模組可分配的最大存儲空間,上述第一數據緩衝模組和上述第二數據緩衝模組可分配的最大存儲空間相同;確定若將上述圖像數據分成上述N個數據量相等的上述目標圖像數據後,上述第一目標圖像數據所需的存儲空間是否小於或等於上述第一數據緩衝模組可分配的最大存儲空間;在上述確定模組確定上述第一目標圖像數據所需的存儲空間小於或等於上述第一數據緩衝模組可分配的最大存儲空間後,將上述圖像數據分成上述N個上述目標圖像數據。
該發明實施例可以先確定當前快取中可用的存儲空間,即可以分配給上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間;再確定上述圖像數據分成多少個目標圖像數據;最後為上述第一數據緩衝模組和上述第二數據緩衝模組分配快取空間。
舉例來說,當前快取的可用存儲空間為100兆、計算單元的數量為10個、圖像數據所需的存儲空間為200兆,每個計算單元可以分配的最大存儲空間為100兆/10即10兆,上述第一數據緩衝模組和上述第二數據緩衝模組的最大存儲空間為10兆/2即5兆,上述圖像數據可以分成40、50、100、200等多個目標圖像數據。上述圖像數據分成目標圖像數據後,只需保證目標圖像數據所需的存儲空間小於或等於即可,分成的目標圖像數據的個數不作限定。
該發明實施例中,根據快取當前可用的存儲空間以及計算單元的數量確定圖像數據分成目標圖像數據的個數,可以充分利用快取空間,提高計算能力。

榮譽表彰

2020年7月14日,《一種卷積神經網路的數據調度方法、系統及計算機設備》獲得第二十一屆中國專利獎優秀獎。

相關詞條

熱門詞條

聯絡我們