TW202145079A - 執行操作的方法、電子設備、裝置及儲存媒介 - Google Patents
執行操作的方法、電子設備、裝置及儲存媒介 Download PDFInfo
- Publication number
- TW202145079A TW202145079A TW110116092A TW110116092A TW202145079A TW 202145079 A TW202145079 A TW 202145079A TW 110116092 A TW110116092 A TW 110116092A TW 110116092 A TW110116092 A TW 110116092A TW 202145079 A TW202145079 A TW 202145079A
- Authority
- TW
- Taiwan
- Prior art keywords
- neural network
- network
- information
- processing chip
- dedicated processing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000013528 artificial neural network Methods 0.000 claims abstract description 186
- 238000012545 processing Methods 0.000 claims abstract description 168
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000010276 construction Methods 0.000 claims description 14
- 238000013135 deep learning Methods 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 5
- 210000004556 brain Anatomy 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000003012 network analysis Methods 0.000 description 3
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
一種執行操作的方法、電子設備、裝置及儲存媒介,屬於電腦技術領域,本申請實施例能夠在包括專用處理晶片的電子設備中,指示中央處理器接收第一神經網路待處理的訊息,指示專用處理晶片根據預先建立的第二神經網路處理目標訊息,獲得目標結果數據,並將該目標結果數據回傳至中央處理器。其中,第二神經網路是根據網路訊息建立的神經網路,網路訊息是指示第一神經網路的網路結構。克服了頻繁調用專用處理晶片執行神經網路中的運算元計算,帶來的時間開銷大和計算效率低的問題,提高了神經網路的處理效能,有效地提升了運算效率。
Description
本申請實施例涉及電腦技術領域,特別涉及一種執行操作的方法、電子設備、裝置及儲存媒介。
隨著神經網路的快速發展,基於神經網路的應用也在生活中快速應用和普及。
相關技術中,電子設備可以基於神經網路對應指定的數據進行處理,並據此執行指定的操作。首先,電子設備需要在接收到指定的數據後,在中央處理器(英文:Central Processing Unit,縮寫:CPU)中對該神經網路進行網路推理。而針對神經網路的運算元計算部分,需要在專用處理晶片中執行。由於中央處理器對神經網路中的每一個運算元進行一次計算,均需要調用一次專用處理晶片,並將數據在中央處理器和專用處理晶片之間來回轉移一次。因此,電子設備在該場景中的時間開銷較大,處理效率較低。
本申請實施例提供了一種執行操作的方法、電子設備、裝置及儲存媒介。所述技術方案如下:
根據本申請的一方面內容,提供了一種執行操作的方法,應用於電子設備中,所述電子設備包括專用處理晶片,所述方法包括:
指示中央處理器接收目標訊息,所述目標訊息是第一神經網路待處理的訊息;
指示所述專用處理晶片根據預先建立的第二神經網路處理所述目標訊息,獲取目標結果數據,所述第二神經網路是根據網路訊息建立的神經網路,所述網路訊息用於指示所述第一神經網路的網路結構;
將所述目標結果數據傳回所述中央處理器;
根據所述目標結果數據,執行對應的操作。
根據本申請的另一方面內容,提供了一種執行操作的裝置,應用於電子設備中,所述電子設備包括專用處理晶片,所述裝置包括:
訊息接收模組,用於指示中央處理器接收目標訊息,所述目標訊息是第一神經網路待處理的訊息;
數據獲得模組,用於指示所述專用處理晶片根據預先建立的第二神經網路處理所述目標訊息,獲得目標結果數據,所述第二神經網路是根據網路訊息建立的神經網路,所述網路訊息用於指示所述第一神經網路的網路結構;
數據傳回模組,用於將所述目標結果數據傳回所述中央處理器;
操作執行模組,用於根據所述目標結果數據,執行對應的操作。
根據本申請的另一方面內容,提供了一種電子設備,所述電子設備包括處理器和記憶體,所述記憶體中儲存有至少一條指令,所述指令由所述處理器載入並執行以實現如本申請實施提供的執行操作的方法。
根據本申請的另一方面內容,提供了一種電腦可讀儲存媒介,所述儲存媒介中儲存有至少一條指令,所述指令由處理器載入並執行以實現如本申請實施提供的執行操作的方法。
本申請實施例提供的技術方案帶來的有益效果可以包括:
本申請實施例能夠在包括專用處理晶片的電子設備中,指示中央處理器接收第一神經網路待處理的訊息,指示專用處理晶片根據預先建立的第二神經網路處理目標訊息,獲得目標結果數據,並將該目標結果數據回傳至中央處理器,令電子設備根據目標結果數據執行對應的操作。其中,第二神經網路是根據網路訊息建立的神經網路,網路訊息是指示第一神經網路的網路結構,克服了本領域中通常透過中央處理器建立並解析神經網路,頻繁調用專用處理晶片執行神經網路中的運算元計算,帶來的時間開銷大和計算效率低的問題,在不改變硬體架構的基礎上提高了神經網路的處理效能,有效地提升了執行操作前的運算效率。
為使本申請的目的、技術方案和優點更加清楚,下面將結合附圖對本申請實施方式作進一步地詳細描述。
下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請的描述中,需要理解的是,術語“第一”、“第二”等僅用於描述目的,而不能理解為指示或暗示相對重要性。在本申請的描述中,需要說明的是,除非另有明確的規定和限定,術語“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以透過中間媒介間接相連。對於本領域的普通技術人員而言,可以具體情況理解上述術語在本申請中的具體含義。此外,在本申請的描述中,除非另有說明,“多個”是指兩個或兩個以上。“和/或”,描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。字元“/”一般表示前後關聯物件是一種“或”的關係。
在本申請實施例中,涉及深度學習計算框架。深度學習計算框架包括兩個主要的模組,分別是網路推理模組和運算元實現模組。其中,網路推理模組用於實現網路推理,運算元實現模組用於實現運算元計算。
相關技術中,電子設備通常在CPU實現網路推理,在GPU側實現運算元計算。在該處理方式中,CPU每計算一個運算元,均需要調用一次GPU,同時使得數據在CPU的記憶體和GPU的記憶體之間頻繁搬移和拷貝,使得透過神經網路處理數據的效率較差,時間開銷較高。
示意性的,一個深度學習神經網路計算過程中,時間消耗較多的階段是運算元實現模組執行的運算元計算過程。在一種可能的方式中,一個深度學習網路可能由幾十層或幾百層運算元組成。基於該應用場景,本申請實施例設計有一種提高運算元計算效率的方法。
概括而言,本申請實施例提出一種深度學習計算框架,該深度學習計算框架能夠在CPU與專用處理晶片之間進行異構計算時,減小CPU與專用處理晶片之間的頻繁調用次數以及記憶體搬移次數。本申請能夠在CPU側解析第一神經網路的網路模型,然後不斷向專用處理晶片側傳遞運算元訊息。整個網路解析完成之後,專用處理晶片側將成功構建出第二神經網路。其中,專用處理晶片側還可以將第二神經網路中能夠相互融合的運算元進行融合。然後,在運算過程中,CPU側僅需發送一條指令,在專用處理晶片側完成整個第二神經網路的推理,然後把最後的計算結果返回到CPU側,從而完成整個處理流程。
為了本申請實施例所示方案易於理解,下面對本申請實施例中出現的若干名詞進行介紹。
專用處理晶片:用於執行本申請實施例中指示的第二神經網路的構建,以及根據中央處理器轉發的目標訊息,使用第二神經網路進行網路推理過程。
可選地,專用處理晶片可以是影像處理器(英文:Graphics Processing Unit,縮寫:GPU)、數位訊號處理器(英文:Digital Signal Processing,縮寫:DSP)、神經網路處理器(英文:Neural network Processing Unit,縮寫:NPU)、張量處理器(英文:Tensor Processing Unit,縮寫:TPU)、深度學習處理器或大腦處理器(英文:Brain Processing Unit,縮寫:BPU)中的一項或多項。
示意性的,GPU被設計為處理圖像領域的運算加速。在實現過程中,GPU需要在CPU的控制調用下進行工作。因此,在實際應用過程中,神經網路在處理數據時,總是透過CPU和GPU結合的異構計算框架進行計算。
例如,若第一神經網路中的運算元層級是200層(也即該第一神經網路包括200個運算元),則在現有的深度學習計算框架中,CPU對第一神經網路進行解析。在CPU需要對每一個運算元進行計算時,調用一次GPU。在該場景中,CPU調用GPU的次數為201次。其中,200次調用用於調用GPU執行運算元計算,1次調用用於初始化GPU。
若使用本申請實施例提供的方法,則CPU在接收目標訊息後,能夠在初始化階段將第一神經網路的網路訊息解析出,以初始化指令的方式發送至GPU。GPU根據該網路訊息建立第二神經網路,並在下一次CPU發送包括目標訊息的運行指令時,將自動在GPU完成整個目標訊息的處理,並將目標結果數據回饋給CPU。在該場景中,CPU全程僅需要發送一次初始化指令和一次運行指令,大幅減少了調用GPU帶來的時間開銷和記憶體搬遷。
示意性的,DSP的工作原理是透過接收類比訊號,將類比訊號轉換為數位訊號,對數位訊號進行修改、刪除或強化,並在其它系統晶片中把數位數據解譯回類比數據或實際環境格式。
示意性的,NPU在電路層類比人類神經元和突觸,並且用深度學習指令集直接處理大規模的神經元和突觸。NPU能夠透過突觸權重實現儲存和計算一體化,從而提高了運行效率。
示意性的,TPU能夠提供高輸送量的低精度計算,用於神經網路的前向運算。在實際應用中,TPU的運行需要按照CPU的控制。
示意性的,BPU能夠透過多種架構實現晶片結構。其中,BPU支援的架構包括高斯架構、伯努利架構或貝葉斯架構中至少一種。BPU在當前的應用方式中,需要按照CPU的指令執行。
目標訊息:是第一神經網路待處理的訊息。例如,該目標訊息可以是圖像訊息,也可以是音訊訊息。
可選地,當電子設備是終端時,目標訊息是終端中的應用層發送的訊息。
可選地,當電子設備是伺服器時,目標訊息是終端轉發至伺服器中的終端中的應用層發送的訊息。
在一種可能的落地實現方案中,例如,當第一神經網路是一個人臉檢測網路,則目標訊息可以是待檢測的圖片。
示例性地,本申請實施例所示的執行操作的方法,可以應用在電子設備中,該電子設備具備顯示螢幕且具備運算功能。電子設備可以包括手機、平板電腦、膝上型電腦、臺式電腦、電腦一體機、伺服器、工作站、電視、機上盒、智慧眼鏡、智慧手錶、數碼相機、MP4播放電子設備、MP5播放電子設備、學習機、點讀機、電子書、電子詞典或車載電子設備等。
請參見圖1,圖1是本申請一個示例性實施例提供的一種電子設備的結構方塊圖,如圖1所示,該電子設備包括處理器120、記憶體140和匯流排160,所述記憶體140中儲存有至少一條指令,所述指令由所述處理器120載入並執行以實現如本申請各個方法實施例所述的執行操作的方法。其中,處理器120包括中央處理器121和專用處理晶片122。需要說明的是,中央處理器121中包括記憶體,專用處理晶片122中同樣包括記憶體。
處理器120可以包括一個或者多個處理核心。處理器120利用各種介面和線路連接整個電子設備100內的各個部分,透過運行或執行儲存在記憶體140內的指令、程式、代碼集或指令集,以及調用儲存在記憶體140內的數據,執行電子設備100的各種功能和處理數據。可選的,處理器120可以採用數位訊號處理器、場域可程式閘陣列(Field-Programmable Gate Array,FPGA)、可程式邏輯陣列(Programmable Logic Array,PLA)中的至少一種硬體形式來實現。處理器120可集成中央處理器、影像處理器和數據機等中的一種或幾種的組合。其中,CPU主要處理作業系統、使用者介面和應用程式等;GPU用於負責顯示螢幕所需要顯示的內容的渲染和繪製;數據機用於處理無線通訊。可以理解的是,上述數據機也可以不集成到處理器120中,單獨透過一塊晶片進行實現。
記憶體140可以包括隨機記憶體(Random Access Memory,RAM),也可以包括唯讀記憶體(Read-Only Memory,ROM)。可選的,該記憶體140包括非暫態性電腦可讀媒介(non-transitory computer-readable storage medium)。記憶體140可用於儲存指令、程式、代碼、代碼集或指令集。記憶體140可包括儲存程式區和儲存數據區,其中,儲存程式區可儲存用於實現作業系統的指令、用於至少一個功能的指令(比如觸控功能、聲音播放功能、圖像播放功能等)、用於實現下述各個方法實施例的指令等;儲存數據區可儲存下面各個方法實施例中涉及到的數據等。
匯流排160用於連接電子設備中各個硬體元件,便於各個硬體元件進行數據交互。在本申請實施例中,匯流排160用於連接處理器120和記憶體140,以便上述兩個硬體進行數據交換。
請參考圖2,圖2是本申請一個示例性實施例提供的一種執行操作的方法的流程圖。該執行操作的方法可以應用在上述圖1所示的電子設備中。在圖2中,該執行操作的方法包括:
步驟210,指示中央處理器接收目標訊息,目標訊息是第一神經網路待處理的訊息。
在本申請實施例中,電子設備作為整個方案的執行主體。在一些應用場景中,系統服務或者第三方應用將使用第一神經網路處理目標訊息。當上述應用或服務需要使用第一神經網路時,電子設備將能夠初始化第一神經網路。其中,電子設備能夠指示中央處理器接收目標訊息。目標訊息可以是應用或服務發送至CPU的訊息,該訊息是第一神經網路待處理的訊息。
例如,當第一神經網路是人臉模型時,目標訊息可以是相機應用採集的每一幀圖像。
步驟220,指示專用處理晶片根據預先建立的第二神經網路處理目標訊息,獲取目標結果數據,第二神經網路是網路訊息建立的神經網路,網路訊息是指示第一神經網路的網路結構。
可選的,本申請實施例中的專用處理晶片將根據預先建立的第二神經網路,處理目標訊息。其中,專用處理晶片可以在接收到CPU發出的網路訊息時,在專用處理晶片側建立第二神經網路。
例如,電子設備中內置有5種各不相同的第一神經網路,分別為A神經網路、B神經網路、C神經網路、D神經網路和E神經網路。每種神經網路具有指定的功能,詳情請參見表一。
表一
A神經網路 | B神經網路 | C神經網路 | D神經網路 | E神經網路 |
人臉檢測 | 車輛號牌識別 | 知識問答 | 商品識圖 | 終端模式判定 |
在表一所示的5種不同的第一神經網路中,當電子設備執行相應的功能時,處理器中才會初始化相應的第一神經網路並處理數據。例如,電子設備中以相機應用開啟作為A神經網路初始化的觸發事件。當電子設備中的相機應用開啟時,電子設備指示CPU載入A神經網路的訊息。此時,CPU將A神經網路的網路訊息發送至專用處理晶片,專用處理晶片將根據網路訊息建立A神經網路對應的第二神經網路。
請參見圖3,圖3是本申請實施例涉及的一種相關技術中運算方式的示意圖。在圖3中,包括中央處理器121和專用處理晶片122。中央處理器121構建了包括n個運算元的第一神經網路,並在調用操作310中對專用處理晶片122進行初始化。在中央處理器121運用第一神經網路處理目標訊息時,每一個運算元進行運算時,需要調用一次專用處理晶片122。即在運算元計算操作320中,中央處理器121調用專用處理晶片122一共n次。在該過程中,電子設備為得到結果數據,共令中央處理器121調用專用處理晶片122(n+1)次。
請參見圖4,圖4是本申請實施例涉及的一種運算方式的示意圖。在圖4中,包括中央處理器121和專用處理晶片122。中央處理器121可以執行步驟410和步驟420。在步驟410中,中央處理器121在接收到網路構建指令時,解析第一神經網路,獲得網路訊息。其中,網路訊息用於指示第一神經網路的圖形結構訊息和權值訊息。在步驟420中,中央處理器121向專用處理晶片122發送網路訊息。在步驟430中,專用處理晶片122根據網路訊息建立第二神經網路。在步驟440中,中央處理器121處理目標訊息時,僅需將目標訊息和運行指令一併發送專用處理晶片122,完成一次運行調用。中央處理器121即可獲得目標結果數據。在該過程中,電子設備為得到結果數據,共令中央處理器121調用專用處理晶片122的次數是2次。
由上述圖3和圖4運行情況的對比可知,本申請實施例提供的執行操作的方法,能夠有效減少CPU調用專用處理晶片的次數,使得電子設備在運行同樣的第一神經網路時,縮短得出目標結果數據的時長。
步驟230,將目標結果數據傳回中央處理器。
在本申請實施例中,電子設備能夠在專用處理晶片計算得到目標結果數據後,將目標結果數據傳回到中央處理器中。
步驟240,根據目標結果數據,執行對應的操作。
在本申請實施例中,電子設備還能夠根據目標結果數據,執行對應的應用操作。其中,對應的應用操作既可以是可視的應用操作,也可以是後臺不可視的數據處理流程,本申請實施例對此不作限定。
在一種可能的實現方式中,電子設備可以在人臉識別場景中,在圖像中顯示被識別出來的人臉區域。
在另一種可能的實現方式中,電子設備還可以播放合成後的人工智慧語音或顯示合成後的人工智慧文本。
綜上所述,本實施例提供的執行操作的方法,能夠在包括專用處理晶片的電子設備中,指示中央處理器接收第一神經網路待處理的訊息,指示專用處理晶片根據預先建立的第二神經網路處理目標訊息,獲得目標結果數據,並將該目標結果數據回傳至中央處理器。其中,第二神經網路是根據網路訊息建立的神經網路,網路訊息是指示第一神經網路的網路結構,克服了本領域中通常透過中央處理器建立並解析神經網路,頻繁調用專用處理晶片執行神經網路中的運算元計算,帶來的時間開銷大和計算效率低的問題,在不改變硬體架構的基礎上提高了神經網路的處理效能,有效地提升了執行操作前的運算效率。
基於上一個實施例所公開的方案,電子設備還能夠在專用處理晶片中建立第二神經網路,從而減少CPU與專用處理晶片之間的調用次數,請參考如下實施例。
請參見圖5,圖5是本申請另一個示例性實施例提供的一種執行操作的方法流程圖。該執行操作的方法可以應用在上述圖1所示的電子設備中。在圖5中,該執行操作的方法包括:
步驟511,當接收到網路構建指令時,解析第一神經網路,獲得網路訊息,網路訊息用於指示第一神經網路的圖形結構訊息和權值訊息。
示意性的,電子設備能夠在應用啟動時或者功能被調用時,觸發網路構建指令。此時,電子設備將指示CPU解析指定的第一神經網路,獲得網路訊息。其中,由於網路訊息包括圖形結構訊息和權值訊息。
步驟512,指示專用處理晶片根據網路訊息建立第二神經網路。
示意性的,電子設備能夠指示專用處理晶片根據網路訊息,建立第二神經網路。
在本申請實施例中,電子設備還可以透過執行步驟(a1)、步驟(a2)和步驟(a3)來實現指示專用處理晶片根據網路訊息建立第二神經網路的流程。介紹如下:
步驟(a1),在專用處理晶片中獲取預定儲存空間的全域記憶體。
可選地,電子設備能夠在專用處理晶片中獲得預定大小的預定儲存空間。並且,該預定儲存空間是全域記憶體,從而有利於專用處理晶片中的各個元件順利連接到網路訊息。
步驟(a2),按照專用處理晶片的數據規範,將網路訊息儲存在全域記憶體中。
可選地,為了專用處理晶片中的各個元件順利連接到網路訊息,電子設備可以在儲存網路訊息時,按照專用晶片的數據規範,對該網路訊息進行儲存。
可選地,數據規範是專用處理晶片中對於第二神經網路的定義。在該定義中,第二神經網路包括運算元的定義和張量的定義。詳情如下:
NetDef { //第二神經網路的定義
repeated OperatorDef op; //可重複的多個運算元
repeated TensorDef tensor; //可重複的多個張量
}
OperatorDef { //運算元的定義
uint32 opType ; //運算元的類型,包括卷積、池化和啟動中的一種
uint32 layerName ; //運算元的唯一識別碼
repeated uint32 inputName ; //表示運算元的輸入張量的標識
uint32 outputName ; //表示運算元的輸出張量的標識
}
TensorDef { //張量的定義
uint32 name ; //張量的標識
uint32 dims ; //張量中矩陣的維度
uint32 weightValType ; //張量中儲存的權值的數據類型
uint32 weightValOffset ; //張量中儲存的權值在全域記憶體中的偏移
uint32 weightValLength ; //表示張量的數據長度
}
其中,NetDef表示整個第二神經網路,該網路由若干個張量和運算元組成。針對張量維度dims而言,數據1,224,224,3表示該矩陣維度中的BATCH=1,HEIGHT =224,WIDTH=224,CHANNLE = 3。
在本申請實施例中,專用處理晶片將網路訊息按照上述第一神經網路中提供的數據規範的格式,重新構建第二神經網路。
在一種第二神經網路的運算元串接方式中,電子設備獲取所述網路訊息中的圖形結構訊息和權值訊息;根據所述圖形結構訊息,確定各個運算元的輸入張量和輸出張量;根據各個運算元的所述輸入張量的標識和所述輸出張量的標識,將所述第二神經網路中的運算元完成串接;根據所述權值訊息,確定對應的卷積核,所述卷積核是對應的運算元的輸入張量。
需要說明的是,圖形結構訊息可以指示哪一個運算元的輸入張量是另一個運算元的輸入張量。電子設備能夠根據該圖形結構訊息,完成各個運算元的輸入張量和輸出張量的位置的確定。
在一種可能的方式中,專用處理晶片還能夠在運算元具備融合條件時,將第二神經網路中的第一運算元和第二運算元進行融合。當第一運算元和第二運算元融合後,電子設備可以將第一運算元的輸出張量的名稱更改為第二運算元的輸出張量的名稱,同時,按照融合後的運算元的訊息,更新第一運算元在第二神經網路中的定義。
另一方面,當第二神經網路中的運算元之前不能融合時,專用處理晶片將保留各個運算元。
在一種執行方式中,當專用處理晶片構建完成第一運算元時,檢測第一運算元是否具備與第二運算元融合的條件,第二運算元是第二神經網路中已經完成構建的運算元;當第一運算元具備與第二運算元融合的條件時,將第一運算元和第二運算元融合;根據融合後的運算元,更新全域記憶體中的網路訊息。
步驟(a3),指示專用處理晶片按照網路訊息建立第二神經網路。
在另一種可能的實現方式中,電子設備還可以透過執行步驟(b1)、步驟(b2)和步驟(b3)來實現指示專用處理晶片根據網路訊息建立第二神經網路的流程。介紹如下:
步驟(b1),獲取網路訊息中的圖形結構訊息和權值訊息。
步驟(b2),根據圖形結構訊息,將第二神經網路中的運算元完成串接。
步驟(b3),根據權值訊息,確定運算元之間的權值。
步驟520,接收目標訊息。
在本申請實施例中,步驟520的執行過程和步驟210的執行過程相同,此處不再贅述。
步驟531,根據圖形結構訊息,確定第一神經網路的運算元層數。
步驟532,當運算元層數大於等於層數閾值時,指示專用處理晶片根據預先建立的第二神經網路處理目標訊息,獲取目標結果數據。
在本申請實施例中,電子設備能夠根據運算元層數選擇是否開啟本申請所示的執行操作的方法。即當運算元層數大於等於層數閾值時,啟動執行本申請所示的執行操作的方法。示意性的,層數閾值可以是10、15、20或50等,本申請實施例對此不作限定。
步驟541,當目標結果數據是圖像識別數據時,在被識別的目標圖像中顯示被框選的結果區域。
步驟542,當目標結果數據是語音辨識數據時,播放合成後的人工智慧語音或顯示合成後的人工智慧文本。
可選的,在一種可能的應用場景中,電子設備能夠透過執行步驟(c1)、步驟(c2)、步驟(c3)和步驟(c4)來實現本申請實施例介紹的執行操作的方法,介紹如下:
步驟(c1),電子設備能夠在CPU側解析第一神經網路。第一神經網路輸入到電子設備的深度學習計算框架後,先在CPU側進行模型的解析,解析的內容包括模型的圖形結構和模型的權值數據。請參見圖6,圖6是基於圖5所示實施例提供的一種第一神經網路的圖形結構。在圖6中,第一神經網路600包括運算元610、運算元620和運算元630。其中,運算元610包括輸入張量611和輸出張量612。運算元620包括輸入張量621和輸出張量622。運算元630包括輸入張量631和輸出張量632。其中,第一神經網路600由若干個運算元串接而成,每個運算元有若干個輸入和一個輸出。需要說明的是,除了最終輸出結果的運算元外,其餘每一個運算元的輸出一定是其它指定的運算元的輸入。第二神經網路的權值數據是第一神經網路完成訓練時保存的數據。在一種可能的方式中,該權值數據可以是卷積核。示意性的,權值數據可以作為運算元的一個輸入。
步驟(c2),CPU側向專用處理晶片傳遞網路訊息。其中,CPU將已經解析好的第一神經網路的圖形結構和權值數據一次性傳遞到專用處理晶片側。由於專用處理晶片側表達第一神經網路的方式不同於CPU的表達方式。在本申請實施例中,專用處理晶片在構建第二神經網路時,每構建一個運算元,就需要完成一個運算元的融合。換言之,本申請實施例能夠按照專用處理晶片的計算框架能夠理解的方式,完成運算元之間的串接,直至將所有運算元完成融合,從而構建出第二神經網路。
步驟(c3),CPU側向專用處理晶片發送運行指令,令專用處理晶片側完成網路推理。電子設備在專用處理晶片完成網路構建之後,令CPU向專用處理晶片發送一次運行指令,GPU直接透過第二神經網路計算出目標結果數據。
步驟(c4),專用處理晶片側將第二神經網路的目標結果數據返回到CPU側。在本步驟中,專用處理晶片獲得目標結果數據後,僅需要傳遞一次計算結果到CPU側。
綜上所述,本實施例根據在中央處理器解析出第一神經網路的網路訊息後,在專用處理晶片側根據該網路訊息構建第二神經網路,構建後的第二神經網路能夠被專用處理晶片識別,在構建的過程中,專用處理晶片能夠將網路訊息放置在預定儲存空間的全域記憶體中,使得本申請實施例能夠有效地在專用處理晶片中構建該專用處理晶片能夠識別的第二神經網路,提高了電子設備基於神經網路運行的穩定性。
本實施例提供的執行操作的方法,還能夠在神經網路層數較多的場景下,有效減少CPU與專用處理晶片之間的頻繁調用以及記憶體搬遷。
下述為本申請裝置實施例,可以用於執行本申請方法實施例。對於本申請裝置實施例中未披露的細節,請參照本申請方法實施例。
請參考圖7,圖7是本申請一個示例性實施例提供的一種執行操作的裝置的結構方塊圖。該執行操作的裝置可以透過軟體、硬體或者兩者的結合實現成為電子設備的全部或一部分。該裝置包括:
訊息接收模組710,用於指示中央處理器接收目標訊息,所述目標訊息是第一神經網路待處理的訊息;
數據獲得模組720,用於指示所述專用處理晶片根據預先建立的第二神經網路處理所述目標訊息,獲得目標結果數據,所述第二神經網路是根據網路訊息建立的神經網路,所述網路訊息是指示所述第一神經網路的網路結構;
數據傳回模組730,用於將所述目標結果數據傳回所述中央處理器。
操作執行模組740,用於根據所述目標結果數據,執行對應的操作。
在一個可選的實施例中,所述裝置還包括網路解析模組和建網指示模組。所述網路解析模組,用於當接收到網路構建指令時,解析所述第一神經網路,獲得所述網路訊息,所述網路訊息包括所述第一神經網路的圖形結構訊息和權值訊息;所述建網指示模組,用於指示所述專用處理晶片根據所述網路訊息建立所述第二神經網路。
在一個可選的實施例中,所述建網指示模組,用於在所述專用處理晶片中獲取預定儲存空間的全域記憶體;按照所述專用處理晶片的數據規範,將所述網路訊息儲存在所述全域記憶體中;指示所述專用處理晶片按照所述網路訊息建立所述第二神經網路。
在一個可選的實施例中,所述建網指示模組,用於獲取所述網路訊息中的圖形結構訊息和權值訊息;根據所述圖形結構訊息,確定各個運算元的輸入張量和輸出張量;根據各個運算元的所述輸入張量的標識和所述輸出張量的標識,將所述第二神經網路中的運算元完成串接;根據所述權值訊息,確定對應的卷積核,所述卷積核是對應的運算元的輸入張量。
在一個可選的實施例中,所述建網指示模組,用於當所述專用處理晶片構建完成第一運算元時,檢測所述第一運算元是否具備與第二運算元融合的條件,所述第二運算元是所述第二神經網路中已經完成構建的運算元;當所述第一運算元具備與第二運算元融合的條件時,將所述第一運算元和所述第二運算元融合;根據融合後的運算元,更新所述全域記憶體中的網路訊息。
在一個可選的實施例中,所述裝置還包括層數確定模組。所述層數確定模組,用於根據所述圖形結構訊息,確定所述第一神經網路的運算元層數;所述數據獲得模組720,用於當所述運算元層數大於等於層數閾值時,指示所述專用處理晶片根據預先建立的所述第二神經網路處理所述目標訊息,獲得目標結果數據。
在一個可選的實施例中,所述數據傳回模組730,用於當所述目標結果數據是圖像識別數據時,在被識別的目標圖像中顯示被框選的結果區域;或,所述數據傳回模組730,用於當所述目標結果數據是語音辨識數據時,播放合成後的人工智慧語音或顯示合成後的人工智慧文本。
在一個可選的實施例中,所述裝置涉及的所述專用處理晶片包括以下至少一項:影像處理器、數位訊號處理器、神經網路處理器、張量處理器、深度學習處理器或大腦處理器。
綜上所述,本實施例根據在中央處理器解析出第一神經網路的網路訊息後,在專用處理晶片側根據該網路訊息構建第二神經網路,構建後的第二神經網路能夠被專用處理晶片識別,在構建的過程中,專用處理晶片能夠將網路訊息放置在預定儲存空間的全域記憶體中,使得本申請實施例能夠有效地在專用處理晶片中構建該專用處理晶片能夠識別的第二神經網路,提高了電子設備基於神經網路運行的穩定性。
本實施例提供的執行操作的方法,還能夠在神經網路層數較多的場景下,有效減少CPU與專用處理晶片之間的頻繁調用以及記憶體搬遷。
本申請實施例還提供了一種電腦可讀媒介,該電腦可讀媒介儲存有至少一條指令,所述至少一條指令由所述處理器載入並執行以實現如上各個實施例所述的執行操作的方法。
需要說明的是:上述實施例提供的執行操作的裝置在執行操作的方法時,僅以上述各功能模組的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模組完成,即將設備的內部構造劃分成不同的功能模組,以完成以上描述的全部或者部分功能。另外,上述實施例提供的執行操作的裝置與執行操作的方法實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。
上述本申請實施例序號僅僅為了描述,不代表實施例的優劣。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以透過硬體來完成,也可以透過程式來指令相關的硬體完成,所述的程式可以儲存於一種電腦可讀儲存媒介中,上述提到的儲存媒介可以是唯讀記憶體,磁片或光碟等。
以上所述僅為本申請的能夠實現的示例性的實施例,並不用以限制本申請,凡在本申請的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本申請的保護範圍之內。
100:電子設備
120:處理器
121:中央處理器
122:專用處理晶片
140:記憶體
160:匯流排
310、320:操作
600:第一神經網路
610、620、630:運算元
611、621、631:輸入張量
612、622、632:輸出張量
710:訊息接收模組
720:數據獲得模組
730:數據傳回模組
740:操作執行模組
210~240:步驟
410~440:步驟
511~512:步驟
520:步驟
531~532:步驟
541~542:步驟
為了更清楚地介紹本申請實施例中的技術方案,下面將對本申請實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
圖1是本申請一個示例性實施例提供的一種電子設備的結構方塊圖;
圖2是本申請一個示例性實施例提供的一種執行操作的方法的流程圖;
圖3是本申請實施例涉及的一種相關技術中運算方式的示意圖;
圖4是本申請實施例涉及的一種運算方式的示意圖;
圖5是本申請另一個示例性實施例提供的一種執行操作的方法流程圖;
圖6是基於圖5所示實施例提供的一種第一神經網路的圖形結構;
圖7是本申請一個示例性實施例提供的一種執行操作的裝置的結構方塊圖。
210~240:步驟
Claims (11)
- 一種執行操作的方法,應用於電子設備中,所述電子設備包括專用處理晶片,所述方法包括: 指示中央處理器接收目標訊息,所述目標訊息是第一神經網路待處理的訊息; 指示所述專用處理晶片根據預先建立的第二神經網路處理所述目標訊息,獲取目標結果數據,所述第二神經網路是根據網路訊息建立的神經網路,所述網路訊息包括所述第一神經網路的網路結構和權值訊息; 將所述目標結果數據傳回所述中央處理器; 根據所述目標結果數據,執行對應的操作。
- 根據請求項1所述的方法,其中,在所述指示所述專用處理晶片根據所述預先建立的所述第二神經網路處理所述目標訊息,獲得目標結果數據之前,所述方法還包括: 當接收到網路構建指令時,解析所述第一神經網路,獲得所述網路訊息,所述網路訊息包括所述第一神經網路的圖形結構訊息和權值訊息; 指示所述專用處理晶片根據所述網路訊息建立所述第二神經網路。
- 根據請求項2所述的方法,其中,所述指示所述專用處理晶片根據所述網路訊息建立所述第二神經網路,包括: 在所述專用處理晶片中獲取預定儲存空間的全域記憶體; 按照所述專用處理晶片的數據規範,將所述網路訊息儲存在所述全域記憶體中; 指示所述專用處理晶片按照所述網路訊息建立所述第二神經網路。
- 根據請求項3所述的方法,其中,所述指示所述專用處理晶片按照所述網路訊息建立所述第二神經網路,包括: 獲取所述網路訊息中的圖形結構訊息和權值訊息; 根據所述圖形結構訊息,確定各個運算元的輸入張量和輸出張量; 根據各個運算元的所述輸入張量的標識和所述輸出張量的標識,將所述第二神經網路中的運算元完成串接; 根據所述權值訊息,確定對應的卷積核,所述卷積核是對應的運算元的輸入張量。
- 根據請求項4所述的方法,其中,所述根據各個運算元的所述輸入張量的標識和所述輸出張量的標識,將所述第二神經網路中的運算元完成串接,包括: 當所述專用處理晶片構建完成第一運算元時,檢測所述第一運算元是否具備與第二運算元融合的條件,所述第二運算元是所述第二神經網路中已經完成構建的運算元; 當所述第一運算元具備與第二運算元融合的條件時,將所述第一運算元和所述第二運算元融合; 根據融合後的運算元,更新所述全域記憶體中的網路訊息。
- 根據請求項4所述的方法,所述方法還包括: 根據所述圖形結構訊息,確定所述第一神經網路的運算元層數; 當所述運算元層數大於等於層數閾值時,執行所述指示所述專用處理晶片根據所述預先建立的所述第二神經網路處理所述目標訊息,獲得目標結果數據的步驟。
- 根據請求項1至6任一所述的方法,所述方法還包括: 當所述目標結果數據是圖像識別數據時,在被識別的目標圖像中顯示被框選的結果區域; 或, 當所述目標結果數據是語音辨識數據時,播放合成後的人工智慧語音或顯示合成後的人工智慧文本。
- 根據請求項1至6任一所述的方法,其中,所述專用處理晶片包括以下至少一項: 影像處理器、數位訊號處理器、神經網路處理器、張量處理器、深度學習處理器或大腦處理器。
- 一種執行操作的裝置,應用於電子設備中,所述電子設備包括專用處理晶片,所述裝置包括: 訊息接收模組,用於指示中央處理器接收目標訊息,所述目標訊息是第一神經網路待處理的訊息; 數據獲得模組,用於指示所述專用處理晶片根據預先建立的第二神經網路處理所述目標訊息,獲得目標結果數據,所述第二神經網路是根據網路訊息建立的神經網路,所述網路訊息是指示所述第一神經網路的網路結構; 數據傳回模組,用於將所述目標結果數據傳回所述中央處理器; 操作執行模組,用於根據所述目標結果數據,執行對應的操作。
- 一種電子設備,所述電子設備包括處理器、和與所述處理器相連的記憶體,以及儲存在所述記憶體上的程式指令,所述處理器執行所述程式指令時實現如請求項1至8任一所述的執行操作的方法。
- 一種電腦可讀儲存媒介,所述儲存媒介中儲存有程式指令,所述程式指令被處理器執行時實現如請求項1至8任一所述的執行操作的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010419847.9 | 2020-05-18 | ||
CN202010419847.9A CN111582459B (zh) | 2020-05-18 | 2020-05-18 | 执行操作的方法、电子设备、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202145079A true TW202145079A (zh) | 2021-12-01 |
Family
ID=72126875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110116092A TW202145079A (zh) | 2020-05-18 | 2021-05-04 | 執行操作的方法、電子設備、裝置及儲存媒介 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN111582459B (zh) |
TW (1) | TW202145079A (zh) |
WO (1) | WO2021232958A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111582459B (zh) * | 2020-05-18 | 2023-10-20 | Oppo广东移动通信有限公司 | 执行操作的方法、电子设备、装置及存储介质 |
CN112465116B (zh) * | 2020-11-25 | 2022-12-09 | 安徽寒武纪信息科技有限公司 | 编译方法、运算方法、电子设备和存储介质 |
CN114819084B (zh) * | 2022-04-26 | 2024-03-01 | 北京百度网讯科技有限公司 | 模型推理方法、装置、设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180075913A (ko) * | 2016-12-27 | 2018-07-05 | 삼성전자주식회사 | 신경망 연산을 이용한 입력 처리 방법 및 이를 위한 장치 |
CN108734288B (zh) * | 2017-04-21 | 2021-01-29 | 上海寒武纪信息科技有限公司 | 一种运算方法及装置 |
CN107766939A (zh) * | 2017-11-07 | 2018-03-06 | 维沃移动通信有限公司 | 一种数据处理方法、装置及移动终端 |
US20190180183A1 (en) * | 2017-12-12 | 2019-06-13 | Amazon Technologies, Inc. | On-chip computational network |
CN108122031B (zh) * | 2017-12-20 | 2020-12-15 | 杭州国芯科技股份有限公司 | 一种低功耗的神经网络加速器装置 |
US11494582B2 (en) * | 2018-02-08 | 2022-11-08 | Western Digital Technologies, Inc. | Configurable neural network engine of tensor arrays and memory cells |
CN109446996B (zh) * | 2018-10-31 | 2021-01-22 | 智慧眼科技股份有限公司 | 基于fpga的人脸识别数据处理装置及处理方法 |
CN110489344A (zh) * | 2019-08-02 | 2019-11-22 | Oppo广东移动通信有限公司 | 引擎测试方法及相关产品 |
CN110782029B (zh) * | 2019-10-25 | 2022-11-22 | 阿波罗智能技术(北京)有限公司 | 神经网络预测方法、装置、电子设备和自动驾驶系统 |
CN110942138B (zh) * | 2019-11-13 | 2022-02-15 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111582459B (zh) * | 2020-05-18 | 2023-10-20 | Oppo广东移动通信有限公司 | 执行操作的方法、电子设备、装置及存储介质 |
-
2020
- 2020-05-18 CN CN202010419847.9A patent/CN111582459B/zh active Active
-
2021
- 2021-04-01 WO PCT/CN2021/085028 patent/WO2021232958A1/zh active Application Filing
- 2021-05-04 TW TW110116092A patent/TW202145079A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN111582459A (zh) | 2020-08-25 |
WO2021232958A1 (zh) | 2021-11-25 |
CN111582459B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202145079A (zh) | 執行操作的方法、電子設備、裝置及儲存媒介 | |
US11307864B2 (en) | Data processing apparatus and method | |
CN111241985B (zh) | 一种视频内容识别方法、装置、存储介质、以及电子设备 | |
CN111340195B (zh) | 网络模型的训练方法及装置、图像处理方法及存储介质 | |
CN112434721A (zh) | 一种基于小样本学习的图像分类方法、系统、存储介质及终端 | |
JP7475772B2 (ja) | 画像生成方法、画像生成装置、コンピュータ機器、及びコンピュータプログラム | |
JP7358117B2 (ja) | イメージ自動分類方法及びシステム | |
CN109902548A (zh) | 一种对象属性识别方法、装置、计算设备及系统 | |
CN110378203B (zh) | 图像处理方法、装置、终端及存储介质 | |
CN111210005B (zh) | 设备运行方法、装置、存储介质及电子设备 | |
US20210304008A1 (en) | Speculative training using partial gradients update | |
US11468325B2 (en) | Multi-model training pipeline in distributed systems | |
US20210133854A1 (en) | Information processing method and terminal device | |
US10891471B2 (en) | Method and system for pose estimation | |
CN111695596A (zh) | 一种用于图像处理的神经网络以及相关设备 | |
WO2022105297A1 (zh) | 表格结构的还原方法、系统、计算机设备及存储介质 | |
CN112232889A (zh) | 一种用户兴趣画像扩展方法、装置、设备及存储介质 | |
JP7282474B2 (ja) | 暗号化マスク確定方法、暗号化マスク確定装置、電子機器、記憶媒体およびコンピュータプログラム | |
CN111428645A (zh) | 人体关键点的检测方法、装置、电子设备及存储介质 | |
US20230067934A1 (en) | Action Recognition Method, Apparatus and Device, Storage Medium and Computer Program Product | |
WO2020103606A1 (zh) | 模型处理方法、装置、终端及存储介质 | |
CN114332590B (zh) | 联合感知模型训练、联合感知方法、装置、设备和介质 | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN112037305B (zh) | 对图像中的树状组织进行重建的方法、设备及存储介质 | |
CN111598923B (zh) | 目标跟踪方法、装置、计算机设备及存储介质 |