日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

處理數(shù)據(jù)的電路、圖像處理系統(tǒng)、處理數(shù)據(jù)的方法和裝置與流程

文檔序號:11865457閱讀:240來源:國知局
處理數(shù)據(jù)的電路、圖像處理系統(tǒng)、處理數(shù)據(jù)的方法和裝置與流程

本發(fā)明涉及卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN),尤其涉及CNN中的一種處理數(shù)據(jù)的電路、圖像處理系統(tǒng)、處理數(shù)據(jù)的方法和裝置。



背景技術(shù):

神經(jīng)網(wǎng)絡(luò)及深度學(xué)習(xí)算法已經(jīng)獲得了非常成功的應(yīng)用,并處于迅速發(fā)展的過程中,業(yè)界普遍預(yù)期新的計(jì)算方式有助于實(shí)現(xiàn)更為普遍,復(fù)雜的智能應(yīng)用。CNN近年來在圖像識別應(yīng)用領(lǐng)域取得了非常突出的成就,因此業(yè)界對CNN算法的優(yōu)化及高效率實(shí)現(xiàn)開始關(guān)注并重視,諸如臉書facebook,高通qualcomm,百度baidu,谷歌google等公司都投入了CNN優(yōu)化算法的研究。

一般地,CNN中的卷積運(yùn)算是采用傳統(tǒng)流水線的方案來實(shí)現(xiàn)的。具體步驟為:N個乘法器在一個時(shí)鐘同時(shí)并行對N個數(shù)據(jù)進(jìn)行乘法運(yùn)算,采用一個樹型結(jié)構(gòu)的加法單元把這些乘法結(jié)果通過加法器累加起來。在這種常規(guī)的卷積運(yùn)算中,當(dāng)輸入的數(shù)據(jù)為稀疏向量時(shí),即有大量0的存在,并且由于0和有效數(shù)據(jù)混合存在,因此所有電路都需要處于工作狀態(tài)。分別關(guān)閉不同的電路在控制電路上的開銷比較大,實(shí)施效益相對小,因此,亟待一種更有效率的電路布局來實(shí)現(xiàn)降低功耗的控制。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明提供了一種處理數(shù)據(jù)的電路、圖像處理系統(tǒng)、處理數(shù)據(jù)的方法和裝置,能夠在實(shí)現(xiàn)卷積運(yùn)算的時(shí)候降低電路功耗。

第一方面,提供了一種處理數(shù)據(jù)的電路,該電路包括控制單元和N個處理單元,該控制單元和該N個處理單元中的每個處理單元分別與數(shù)據(jù)傳輸單元相連,該每個處理單元分別用于對該數(shù)據(jù)傳輸單元依次輸出的同一數(shù)據(jù)進(jìn)行處理,該N個處理單元中的第i個處理單元的輸出端與第i+1個處理單元的輸入端相連,其中,N為大于1的整數(shù),i的取值范圍為1至N-1中的整數(shù),該控制單元用于:當(dāng)確定該數(shù)據(jù)傳輸單元輸出的待處理數(shù)據(jù)為0時(shí),控制該N個處理單元都處于關(guān)閉狀態(tài)。

多個處理單元在同一時(shí)刻接收同一數(shù)據(jù),當(dāng)輸入數(shù)據(jù)為0時(shí),同時(shí)關(guān)閉多個處理單元,從而能夠降低功耗。

結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,該電路還包括N個移位寄存器,該N個移位寄存器中的第i個移位寄存器的輸入端與該第i個處理單元的輸出端相連,該第i個移位寄存器的輸出端與該第i+1個處理單元的輸入端相連,該控制單元還用于:當(dāng)確定該待處理數(shù)據(jù)為0時(shí),控制該第i個移位寄存器的值輸出到該第i+1個處理單元;當(dāng)確定該待處理數(shù)據(jù)不為0時(shí),控制該N個處理單元對該待處理數(shù)據(jù)進(jìn)行處理,并控制該第i個處理單元的值輸出到該第i個移位寄存器。

當(dāng)輸入數(shù)據(jù)為0時(shí),電路僅需保存最后的移位寄存器即可,換句話說,當(dāng)輸入數(shù)據(jù)為0時(shí),所有處理單元關(guān)閉,所有寄存器將存儲的值輸出到下一級處理單元,即在稀疏向量輸入的前提下,電路基本處于關(guān)閉狀態(tài),只有移位寄存器處于工作狀態(tài),功耗極低。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,該電路還包括存儲單元,該存儲單元用于存儲權(quán)值,該第i+1個處理單元具體用于:對該存儲單元輸出的與該第i+1個處理單元對應(yīng)的權(quán)值和該待處理數(shù)據(jù)進(jìn)行乘法運(yùn)算,以及對由該乘法運(yùn)算獲得的結(jié)果和該第i個處理單元輸出的值進(jìn)行加法運(yùn)算。

將權(quán)值存儲在電路中,當(dāng)輸入數(shù)據(jù)較多時(shí),既可以實(shí)現(xiàn)卷積運(yùn)算,還可以通過輪換權(quán)值來實(shí)現(xiàn)全連接運(yùn)算,能夠達(dá)到硬件資源共享,從而提高芯片資源的利用率。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,該N個處理單元包括N個乘法器和N個累加器,其中,該N個乘法器中的第i個乘法器的輸出端和該N個累加器中的第i個累加器的輸入端相連,該第i個累加器的輸出端與該第i個移位寄存器的輸入端相連,該第i個乘法器用于對該存儲單元輸出的與該第i個乘法器對應(yīng)的權(quán)值和該待處理數(shù)據(jù)進(jìn)行乘法運(yùn)算;i+1個累加器用于對第i+1個乘法器輸出的值和該第i個移位寄存器輸出的值進(jìn)行加法運(yùn)算。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,該待處理數(shù)據(jù)和/或該存儲單元存儲的權(quán)值為2的冪次方,該N個處理單元包括N個移位處理單元和N個累加器,其中,該N個移位處理單元中的第i個移位處理單元的輸出端和該N個累加器中的第i個累加器的輸入端相連,該第i個累加器的輸出端與該第i個移位寄存器的輸入端相連,該第i個移位處理單元用于根據(jù)該待處理數(shù)據(jù),對與該第i個移位處理單元對應(yīng)的權(quán)值進(jìn)行移位操作,以完成乘法運(yùn)算,或該第i個移位處理單元用于根據(jù)與該第i個移位處理單元對應(yīng)的權(quán)值,對該待處理數(shù)據(jù)進(jìn)行移位操作,以完成乘法運(yùn)算;i+1個累加器用于對第i+1個移位處理單元輸出的值和該第i個移位寄存器輸出的值進(jìn)行加法運(yùn)算。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,該控制單元還用于:當(dāng)確定該待處理數(shù)據(jù)為0時(shí),控制該存儲單元處于關(guān)閉狀態(tài)。

當(dāng)輸入數(shù)據(jù)為0時(shí),控制存儲單元處于關(guān)閉狀態(tài),能夠進(jìn)一步降低功耗。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,該控制單元包括開關(guān)單元和選路單元,該開關(guān)單元用于控制該N個處理單元的開啟和關(guān)閉,該選路單元用于選擇該N個移位寄存器的工作模式,該工作模式包括移位累加模式和移位寄存模式。

結(jié)合上述第一方面的一些實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,該電路還包括解壓縮單元,該解壓縮單元用于對該存儲單元存儲的權(quán)值進(jìn)行壓縮和解壓。

在很多應(yīng)用場景下,權(quán)是稀疏分布的,因此壓縮存放可以提高存儲和處理的效率。

也可以通過將接收到的數(shù)據(jù)先進(jìn)行壓縮存儲,使用時(shí),從存儲單元依次輸出數(shù)據(jù),處理單元再進(jìn)行處理,可以降低來源數(shù)據(jù)的變化率,降低電路的功耗。

第二方面,提供了一種圖像處理系統(tǒng),該系統(tǒng)包括:M個如第一方面任一種電路、圖像輸入單元、非線性映射單元以及輸出單元,該M個電路中的第k個電路的輸出端與第k+1個電路的輸入端相連,其中,M為正整數(shù),i的取值范圍為1至M-1中的整數(shù),該圖像輸入單元用于對不同圖像行的數(shù)據(jù)進(jìn)行延遲處理,依次輸出數(shù)據(jù);該非線性映射單元用于對該第M個電路中的第N個處理單元輸出的結(jié)果進(jìn)行非線性運(yùn)算;該輸出單元用于輸出該非線性映射單元輸出的結(jié)果。

結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,該系統(tǒng)還包括:至少一個緩存單元,該至少一個緩存單元中的每個緩存單元對應(yīng)多個電路,該每個緩存單元用于存儲對應(yīng)電路的第N個處理單元輸出的值。

通過緩存到緩存的處理模式,使得硬件資源的靈活使用成為可能,CNN卷積及全連接運(yùn)算規(guī)律中包含了非常高的并行度,通過緩存并行展開數(shù)據(jù),可以使得后續(xù)的電路同時(shí)處理大規(guī)模的數(shù)據(jù),提高極限性能。

第三方面,提供了一種處理數(shù)據(jù)的方法,該方法是采用第一方面任一種電路對輸入數(shù)據(jù)進(jìn)行處理,該方法包括:該控制單元判斷該數(shù)據(jù)傳輸單元輸出的待處理數(shù)據(jù)是否為0;在確定該待處理數(shù)據(jù)為0時(shí),該控制單元控制該N個處理單元都處于關(guān)閉狀態(tài)。

結(jié)合第三方面,在第三面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:該控制單元在確定該待處理數(shù)據(jù)為0時(shí),控制該第i個移位寄存器的值輸出到該第i+1個處理單元;該控制單元在確定該待處理數(shù)據(jù)不為0時(shí),控制該N個處理單元對該待處理數(shù)據(jù)進(jìn)行處理,并控制該第i個處理單元的值輸出到該第i個移位寄存器。

第四方面,提供了一種處理數(shù)據(jù)的裝置,該裝置包括:處理器、收發(fā)器、存儲器、N個乘法器、N個累加器和總線系統(tǒng)。其中,該存儲器、該處理器、該收發(fā)器、該N個乘法器和該N個累加器通過該總線系統(tǒng)相連,該存儲器用于存儲指令,該處理器用于執(zhí)行該存儲器存儲的指令,以控制收發(fā)器接收信號或發(fā)送信號,并且當(dāng)該處理器執(zhí)行該存儲器存儲的指令時(shí),該執(zhí)行使得該處理器實(shí)現(xiàn)第一方面或第一方面的任意一種可能的實(shí)現(xiàn)方式中的控制單元。

第五方面,提供了一種計(jì)算機(jī)存儲介質(zhì),用于儲存為上述方法所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序。

本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會更加簡明易懂。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對本發(fā)明實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1示出了實(shí)現(xiàn)卷積運(yùn)算的傳統(tǒng)流水線方案的電路邏輯圖。

圖2示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的電路的示意性框圖。

圖3示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的電路的另一示意性框圖。

圖4示出了本發(fā)明實(shí)施例提供的圖像處理系統(tǒng)的示意性框圖。

圖5示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的方法的示意性框圖。

圖6示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的裝置的示意性框圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。

卷積神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的一種,已成為當(dāng)前語音分析和圖像識別領(lǐng)域的研究熱點(diǎn)。它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。該優(yōu)點(diǎn)在網(wǎng)絡(luò)的輸入是多維圖像時(shí)表現(xiàn)的更為明顯,使圖像可以直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。卷積網(wǎng)絡(luò)是為識別二維形狀而特殊設(shè)計(jì)的一個多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。

現(xiàn)有技術(shù)中的卷積運(yùn)算是采用如圖1所示的傳統(tǒng)流水線的方案來實(shí)現(xiàn)的。具體步驟為:采用流水線的方式,N個乘法器在一個時(shí)鐘同時(shí)并行對N個數(shù)據(jù)進(jìn)行乘法運(yùn)算,然后把這些乘法結(jié)果通過加法器累加起來,需要一個樹型結(jié)構(gòu)的加法單元,通過若干級流水線,才能獲得最終全部累加項(xiàng)的累加結(jié)果。舉例來說,如圖1所示,輸入數(shù)據(jù)為D00~D08,9個乘法器同時(shí)對D00~D08進(jìn)行乘法運(yùn)算,即乘法器輸出的結(jié)果分別為W0*D00,W1*D01,......W8*D08,通過樹形結(jié)構(gòu)的加法單元之后輸出的結(jié)果為R0=W0*D00+W1*D01+W8*D08,同樣地,當(dāng)輸入數(shù)據(jù)為D10~D18時(shí),輸出的結(jié)果為R1=W0*D10+W1*D11+W8*D18。

上述提到,卷積運(yùn)算的意義在于權(quán)值的共享,因此,在現(xiàn)有的傳統(tǒng)卷積電路中,該每個乘法器對應(yīng)的權(quán)值是固定配置的。而在現(xiàn)有的這種傳統(tǒng)電路結(jié)構(gòu)基礎(chǔ)上,當(dāng)同時(shí)輸入數(shù)據(jù)為0和有效數(shù)據(jù)混合時(shí),由于0的分布分散,不利于實(shí)現(xiàn)降低功耗的控制,或?qū)崿F(xiàn)控制所需的額外代價(jià)高。

應(yīng)理解,本發(fā)明實(shí)施例的技術(shù)方案可以應(yīng)用到各種信號處理領(lǐng)域中,例如,語音識別、地震勘探、超聲診斷、光學(xué)成像、系統(tǒng)辨識、圖像識別等。

圖2示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的電路100的結(jié)構(gòu)示意圖。如圖2所示,該電路包括控制單元120和N個處理單元,該控制單元120和該N個處理單元中的每個處理110單元分別與數(shù)據(jù)傳輸單元相連,該每個處理單元110分別用于對該數(shù)據(jù)傳輸單元依次輸出的同一數(shù)據(jù)進(jìn)行處理,該N個處理單元中的第i個處理單元110的輸出端與第i+1個處理單元110的輸入端相連,其中,N為大于1的整數(shù),i的取值范圍為1至N-1中的整數(shù),該控制單元120用于:當(dāng)確定該數(shù)據(jù)傳輸單元輸出的待處理數(shù)據(jù)為0時(shí),控制該N個處理單元都處于關(guān)閉狀態(tài)。

由于在CNN中,輸入的圖像數(shù)據(jù)通常是稀疏向量,即大量0和有效數(shù)據(jù)混合存在,無論輸入數(shù)據(jù)是否為0,傳統(tǒng)卷積運(yùn)算的電路需要所有的乘加運(yùn)算模塊都處于工作,如果采用分別關(guān)閉不同的運(yùn)算模塊來降低電路功耗,這在控制電路上的開銷比較大,實(shí)施效益相對較小。為此,在控制電路開銷的前提下,本發(fā)明實(shí)施例提供的電路通過N個處理單元同步接收同一數(shù)據(jù)來實(shí)現(xiàn)當(dāng)輸入數(shù)據(jù)為0時(shí),關(guān)閉所有處理單元,以達(dá)到在實(shí)現(xiàn)卷積運(yùn)算時(shí)降低電路功耗的目的。

因此,本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的電路,在實(shí)現(xiàn)卷積運(yùn)算時(shí)能夠降低電路的功耗。

本領(lǐng)域技術(shù)人員理解,卷積運(yùn)算要完成的工作是:y=w1*x1+w2*x2+......wn*xn,即兩個向量的點(diǎn)乘。這種運(yùn)算通常有兩種做法:一種是由n個并行的單元完成乘法運(yùn)算,采用流水線的方式,通常可以做到一個時(shí)鐘同時(shí)并行給出n個乘法運(yùn)算的結(jié)果,然后,把所有這些結(jié)果加起來,需要一個樹型結(jié)構(gòu)的加法單元,通過若干級流水線,才能獲得最終全部累加項(xiàng)的累加結(jié)果;另一種是在一個計(jì)算單元上逐次完成乘法,及累加,經(jīng)過n個時(shí)鐘后,乘加和完成,最后輸出,這種做法使用一個計(jì)算單元完成該計(jì)算,總共需要n個節(jié)拍的時(shí)間。

關(guān)于第一種做法的缺點(diǎn)上述我們已經(jīng)提到,這種電路的功耗較大,不利于提高圖像識別網(wǎng)絡(luò)的效率;關(guān)于第二種做法,由于卷積運(yùn)算的意義在于權(quán)值的共享,因此,可以將n個計(jì)算單元級聯(lián)累加。經(jīng)過這樣的調(diào)整,對應(yīng)的乘法運(yùn)算仍然按要求完成,只是同一輸出所對應(yīng)的n個乘法運(yùn)算可以在不同的時(shí)間節(jié)拍上完成。這種調(diào)整不但沒使計(jì)算過程復(fù)雜化,反而使得累加運(yùn)算可以逐次完成,并在最后一個時(shí)鐘輸出。例如,可以對如圖1所示的第一組數(shù)據(jù)做相應(yīng)的延遲處理,即每個時(shí)鐘輸出一個數(shù)據(jù)。

我們知道,一個基本的卷積運(yùn)算是一組特定的權(quán)對應(yīng)到不同的數(shù)據(jù),因此,在原始的數(shù)據(jù)格式里,數(shù)據(jù)本質(zhì)上是不同的,隨機(jī)的,這使得面向稀疏數(shù)據(jù)的處理單元難以做歸一化的設(shè)計(jì)。經(jīng)過調(diào)整后,不同的數(shù)據(jù)被調(diào)整到了不同的時(shí)間位置上,這使得在一些不同的計(jì)算模式下,同一時(shí)間位置上,放置相同的數(shù)據(jù)成為可能,而對應(yīng)的權(quán)存放在存儲單元里,可以根據(jù)需要做任意的調(diào)整,這種數(shù)據(jù)組織方式,使得數(shù)據(jù)對應(yīng)的數(shù)據(jù)處理環(huán)節(jié)可以做歸一化的,統(tǒng)一的設(shè)計(jì),使得數(shù)據(jù)為0時(shí)的低功耗電路設(shè)計(jì)更加容易。

應(yīng)理解,對于一次卷積所涉及的不同圖像行的數(shù)據(jù),可以通過行延遲的延遲處理確保逐次輸出的數(shù)據(jù)并行地輸入到N個處理單元,也可以通過同步地不同的數(shù)據(jù)指針來實(shí)現(xiàn)。通過這種處理,使得相同的數(shù)據(jù)同時(shí)被所有處理單元復(fù)用,提高數(shù)據(jù)復(fù)用率,簡化降低功耗的控制電路設(shè)計(jì)。

可選地,該電路還包括N個移位寄存器,該N個移位寄存器中的第i個移位寄存器的輸入端與該N個處理單元中的第i個處理單元的輸出端相連,該第i個移位寄存器的輸出端與該第i+1個處理單元的輸入端相連,該控制單元還用于在確定該待處理數(shù)據(jù)不為0時(shí),控制該N個處理單元對該待處理數(shù)據(jù)進(jìn)行處理,并控制該第i個處理單元的值輸出到該第i個移位寄存器。

根據(jù)移位寄存器的原理,移位寄存器不僅能存儲數(shù)據(jù),而且還能在時(shí)鐘信號的作用下使其中的數(shù)據(jù)依次左移或右移。本發(fā)明實(shí)施例中的移位寄存器包括兩種工作模式,一種是移位累加模式,即將移位寄存器中存儲的值輸出到下一級處理單元中;另一種是移位存儲模式,即將相應(yīng)的處理單元輸出的值進(jìn)行存儲。

當(dāng)輸入數(shù)據(jù)為0時(shí),電路僅需保存最后的移位寄存器即可,換句話說,當(dāng)輸入數(shù)據(jù)為0時(shí),所有處理單元關(guān)閉,所有寄存器將存儲的值輸出到下一級處理單元,即在稀疏向量輸入的前提下,電路基本處于關(guān)閉狀態(tài),只有移位寄存器處于工作狀態(tài),能耗極低。

可選地,該電路還包括存儲單元,該存儲單元用于存儲權(quán)值,該第i+1個處理單元具體用于:對該存儲單元輸出的與該第i+1個處理單元對應(yīng)的權(quán)值和該待處理數(shù)據(jù)進(jìn)行乘法運(yùn)算,以及對由該乘法運(yùn)算獲得的結(jié)果和該第i個處理單元輸出的值進(jìn)行加法運(yùn)算。

具體地,若存儲單元里存儲一組權(quán)值,即N個權(quán)值,當(dāng)待處理數(shù)據(jù)不為0時(shí),控制單元控制存儲單元輸出該N個權(quán)值,該N個權(quán)值中的每個權(quán)值與該每個處理單元一一對應(yīng),當(dāng)輸入數(shù)據(jù)有多組時(shí),例如有M組即M*N個數(shù)據(jù)時(shí),每組數(shù)據(jù)對應(yīng)的權(quán)值均為該N個權(quán)值,每N個數(shù)據(jù)即可輸出一個卷積結(jié)果。

若存儲單元里存儲M組權(quán)值時(shí),即M*N個權(quán)值,當(dāng)對應(yīng)的輸入數(shù)據(jù)為M*N個數(shù)據(jù)時(shí),將N個數(shù)據(jù)作為一組,同一組數(shù)據(jù)對應(yīng)同一組權(quán)值,每N個數(shù)據(jù)輪換一組權(quán)值,并且每N個數(shù)據(jù)輸出一個結(jié)果,該結(jié)果即為全連接運(yùn)算輸出。

因此,由于本發(fā)明實(shí)施例提供的電路中的每個處理單元可以接收到所有的輸入數(shù)據(jù),并且可以通過對存儲單元存儲的權(quán)值進(jìn)行調(diào)整,使得每一組輸入數(shù)據(jù)對應(yīng)的權(quán)值不同,從而可以實(shí)現(xiàn)全連接運(yùn)算,避免了采用不同的電路分別來實(shí)現(xiàn)卷積運(yùn)算和全連接運(yùn)算的問題,能夠?qū)崿F(xiàn)全連接網(wǎng)絡(luò)與卷積網(wǎng)絡(luò)在硬件上共享,從而提高了芯片資源利用率。

圖3示出了本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的電路200。如圖3所示,該電路200包括:N個乘法器210、N個累加器220、N個移位寄存器230、存儲單元240以及控制單元250,舉例來說,N為9。一個處理單元包括一個乘法器和一個累加器,乘法器的輸出端和相應(yīng)的累加器的輸入端相連,累加器的輸出端和相應(yīng)的移位寄存器的輸入端相連,而移位寄存器的輸出端則與下一級的累加器的輸入端相連,乘法器用于對該存儲單元輸出的與該乘法器對應(yīng)的權(quán)值和該待處理數(shù)據(jù)進(jìn)行乘法運(yùn)算;累加器用于對該乘法器輸出的值和上一級移位寄存器輸出的值進(jìn)行加法運(yùn)算。

應(yīng)理解,本發(fā)明實(shí)施例中的處理單元包括的乘法器和累加器的個數(shù)不受限制,例如,第一級處理單元中可以只包括乘法器,不包括加法器,還可以是每個處理單元包括兩個乘法器,其中一個乘法器的一個輸入被固定為1,還可以是其他組合方式,本發(fā)明并不限于此。

當(dāng)電路進(jìn)行卷積運(yùn)算或全連接運(yùn)算時(shí),將輸入數(shù)據(jù)作為每個乘法器210的第一輸入值,將存儲單元240輸出的N個權(quán)值作為N個乘法器210的第二輸入值,N個權(quán)值中的每個權(quán)值與每個乘法器一一對應(yīng),每個乘法器210在控制單元250判斷輸入數(shù)據(jù)不為0的情況下同時(shí)對第一輸入值和相應(yīng)的第二輸入值進(jìn)行乘法運(yùn)算,類似地,相應(yīng)的第二輸入值由存儲單元240在控制單元250判斷輸入數(shù)據(jù)不為0的情況下控制輸出。并且在輸入數(shù)據(jù)不為0時(shí),每個累加器220對上一級移位寄存器230輸出的值以及相應(yīng)的乘法器210輸出的值進(jìn)行加法運(yùn)算,其中,第一個累加器的一個輸入端可以設(shè)置為0。同時(shí),當(dāng)輸入數(shù)據(jù)不為0時(shí),每個移位寄存器230存儲相應(yīng)累加器220輸出的值。而當(dāng)輸入的數(shù)據(jù)為0時(shí),控制單元240控制所有乘法器210、所有累加器220以及存儲單元240等都處于關(guān)閉狀態(tài),控制每個移位寄存器230將存儲的值輸入到下一級累加器220。

可選地,該待處理數(shù)據(jù)和/或該存儲單元存儲的權(quán)值為2的冪次方,該N個處理單元包括N個移位處理單元和N個累加器,其中,該N個移位處理單元中的第i個移位處理單元的輸出端和該N個累加器中的第i個累加器的輸入端相連,該第i個累加器的輸出端與該第i個移位寄存器的輸入端相連,該第i個移位處理單元用于根據(jù)該待處理數(shù)據(jù),對與該第i個移位處理單元對應(yīng)的權(quán)值進(jìn)行移位操作,以完成乘法運(yùn)算,或該第i個移位處理單元用于根據(jù)與該第i個移位處理單元對應(yīng)的權(quán)值,對該待處理數(shù)據(jù)進(jìn)行移位操作,以完成乘法運(yùn)算;i+1個累加器用于對第i+1個移位處理單元輸出的值和該第i個移位寄存器輸出的值進(jìn)行加法運(yùn)算。

相對浮點(diǎn)表示,或高精度定點(diǎn)表示的權(quán)值和數(shù)據(jù)而言,可以對權(quán)值和數(shù)據(jù)進(jìn)行量化,量化后能降低存儲需求,同時(shí)也大大降低計(jì)算量。其中權(quán)值或數(shù)據(jù)可以量化為2的冪次方,這使得后續(xù)的乘法運(yùn)算簡化為移位加法計(jì)算。具體地,可以根據(jù)輸入數(shù)據(jù),對相應(yīng)的權(quán)值進(jìn)行移位處理,從而完成乘法運(yùn)算;還可以根據(jù)相應(yīng)的權(quán)值,每個移位處理單元對輸入數(shù)據(jù)進(jìn)行移位處理,來實(shí)現(xiàn)乘法運(yùn)算,權(quán)值或數(shù)據(jù)可以通過非線性量化降低碼率,其中2的冪的量化是其中最簡單的情形,權(quán)量化的一種極限情況是:{-1,0,1}),或者{-1,1},這種極限情況下,即使數(shù)據(jù)是高精度的定點(diǎn)數(shù),后續(xù)的處理也只需要加法運(yùn)算。

還可以將多Bit特征圖像,直接按Bit平面放到不同的特征平面去,這直接完成了最簡單的輸入數(shù)據(jù)的Binary量化,使得面向Binary計(jì)算的網(wǎng)絡(luò)可以處理多Bit數(shù)據(jù)。

應(yīng)理解,在本發(fā)明實(shí)施例中,處理單元可以是對輸入數(shù)據(jù)進(jìn)行乘加運(yùn)算的單元,也就是只要能實(shí)現(xiàn)乘加運(yùn)算的單元都可以本發(fā)明實(shí)施例的方案,本發(fā)明實(shí)施例僅以乘法器和移位處理單元實(shí)現(xiàn)乘法運(yùn)算為例,本發(fā)明不限于此。

可選地,該控制單元還用于:當(dāng)確定該待處理數(shù)據(jù)為0時(shí),控制該存儲單元處于關(guān)閉狀態(tài)。

當(dāng)輸入數(shù)據(jù)為0時(shí),控制存儲單元處于關(guān)閉狀態(tài),能夠進(jìn)一步降低功耗。

應(yīng)理解,該控制單元250可以包括簡單的開關(guān)單元或選路單元,也可以包括時(shí)鐘產(chǎn)生單元以及時(shí)鐘控制單元等。例如,時(shí)鐘產(chǎn)生單元用于產(chǎn)生一個時(shí)鐘信號,該時(shí)鐘信號的周期應(yīng)該大于一個處理單元處理一個數(shù)據(jù)的時(shí)間,并且每個時(shí)鐘周期輸出一個數(shù)據(jù)。該時(shí)鐘控制單元可以根據(jù)輸入數(shù)據(jù)控制時(shí)鐘產(chǎn)生單元產(chǎn)生的時(shí)鐘信號,當(dāng)數(shù)據(jù)為0時(shí),關(guān)閉時(shí)鐘產(chǎn)生單元,在數(shù)據(jù)不為0時(shí),開啟時(shí)鐘產(chǎn)生單元。選路單元則用來根據(jù)輸入數(shù)據(jù)來選擇移位寄存器的工作模式,即當(dāng)數(shù)據(jù)為0時(shí),移位寄存器僅工作在移位寄存模式,當(dāng)數(shù)據(jù)不為0時(shí),則移位寄存器工作在移位累加模式,還可以通過開關(guān)單元來控制所有處理單元的開啟或關(guān)閉。例如,可以在數(shù)據(jù)為0時(shí),關(guān)閉所有的處理單元,在輸入數(shù)據(jù)不為0時(shí),開啟所有的處理單元。

可選地,作為本發(fā)明的一個實(shí)施例,該存儲單元為動態(tài)隨機(jī)存儲器DRAM。該存儲單元還可以用于存儲數(shù)據(jù)??梢詫⒁淮尉矸e涉及的數(shù)據(jù)存儲在存儲單元,該電路還可以包括延遲單元,在使用時(shí),將存儲單元存儲的數(shù)據(jù)通過延遲單元逐個輸出,作為N個處理單元的輸入。

具體地,在CNN卷積及全連接計(jì)算過程中,數(shù)據(jù)和權(quán)值都存在重復(fù)使用的情況,并且數(shù)據(jù)和權(quán)都是有規(guī)律順序存放,順序使用的。因此實(shí)際使用的數(shù)據(jù)都存在隨機(jī)存儲器(random access memory,RAM)中,但邏輯上數(shù)據(jù)和權(quán)的容量可以非常大,因此可以采用大容量的DRAM。從而實(shí)現(xiàn)大容量的網(wǎng)絡(luò),高性能的計(jì)算。

可選地,作為本發(fā)明的一個實(shí)施例,該電路還包括解壓縮單元,該解壓縮單元用于對該存儲單元存儲的數(shù)據(jù)和/或權(quán)值進(jìn)行壓縮和解壓。

根據(jù)數(shù)據(jù)稀疏性的特點(diǎn),數(shù)據(jù)緩存也可以壓縮存放,提高數(shù)據(jù)緩存的利用率。使用時(shí),從數(shù)據(jù)緩存解壓縮輸出數(shù)據(jù)序列。在很多應(yīng)用場景下,權(quán)也是稀疏分布的,因此壓縮存放可以提高存儲和處理的效率。采用存儲單元實(shí)現(xiàn)對數(shù)據(jù)和權(quán)值的存儲,使得數(shù)據(jù)和權(quán)值能夠重復(fù)使用,數(shù)據(jù)或權(quán)的復(fù)用,能夠進(jìn)一步降低功耗。

在本發(fā)明實(shí)施例中,上述電路可以應(yīng)用于云計(jì)算場景,該場景中上述電路可以由云設(shè)備中某一單元實(shí)現(xiàn),例如:由云設(shè)備中的處理器單元實(shí)現(xiàn)上述電路。另外,上述電路還可以應(yīng)用于終端設(shè)備上,該場景中,上述電路可以由終端設(shè)備中與圖像傳感器連接或者拉近的部件實(shí)現(xiàn),例如:由終端設(shè)備的處理芯片實(shí)現(xiàn)上述電路。且這里的終端設(shè)備包括平板電腦、手機(jī)、電子閱讀器、遙控器、PC、筆記本電腦、車載設(shè)備、網(wǎng)絡(luò)電視、可穿戴設(shè)備等具有圖像識別功能的智能設(shè)備。

本發(fā)明實(shí)施例還提供了一種圖像處理系統(tǒng)。如圖4所示,該系統(tǒng)包括:M個上述電路、圖像輸入單元、非線性映射單元以及輸出單元,M個電路中的第k個電路的輸出端與第k+1個電路的輸入端相連,其中,M為正整數(shù),k的取值范圍為1至M-1中的整數(shù)。該圖像輸入單元用于對不同圖像行的數(shù)據(jù)進(jìn)行延遲處理,依次輸出數(shù)據(jù);該非線性映射單元用于對第M個電路的第N個處理單元輸出的結(jié)果進(jìn)行非線性運(yùn)算;該輸出單元用于輸出該非線性映射單元輸出的結(jié)果。

每個電路包括級聯(lián)輸入和級聯(lián)輸出,可以級聯(lián)應(yīng)用。使得不同規(guī)模的計(jì)算具體體現(xiàn)為不同規(guī)模的累加,通過級聯(lián)輸入輸出的運(yùn)用,使得累加可以級聯(lián),既固定的陣列可以處理不同長度的累加運(yùn)算。

應(yīng)理解,在圖像輸入單元中,可以將一個大尺寸的圖像平面直接轉(zhuǎn)換為多個小尺寸的圖像平面。例如,一個256*256的圖像,可以轉(zhuǎn)換為4個64*64的圖像,其中小圖像的相同位置4個像素,分別對應(yīng)大圖像2*2窗口數(shù)據(jù)中的每一個。這種映射方式,可以直接將大圖像的卷積運(yùn)算,轉(zhuǎn)換為多個小圖像的卷積運(yùn)算。使得CNN卷積運(yùn)算各層參數(shù)變化范圍變小,有利于硬件實(shí)施的效率。

應(yīng)理解,可以在每個電路的最后一個處理單元后面都設(shè)置非線性映射單元,也可以只在整個系統(tǒng)的最后一個處理單元后面設(shè)置非線性映射單元,該非線性映射單元中可以存儲高效實(shí)現(xiàn)神經(jīng)計(jì)算中的Sigmoid映射,ReLU映射,或其他映射。例如,對數(shù)、指數(shù)、或基于直方圖分布的圖像增強(qiáng)映射。

可選地,作為本發(fā)明的一個實(shí)施例,該系統(tǒng)還包括:至少一個緩存單元,該至少一個緩存單元中的每個緩存單元對應(yīng)多個電路,該每個緩存單元用于存儲對應(yīng)電路的第N個處理單元輸出的值。

涉及多特征的卷積計(jì)算量非常大,往往超過一個物理陣列處理能力的范圍,需要通過緩存中間結(jié)果,多次計(jì)算累加后才能完成。支持這種計(jì)算的方式為:每次計(jì)算的累加輸入取自緩存,同時(shí)計(jì)算結(jié)果也存至緩存。緩存可以允許存在多個,可以根據(jù)需要,從指定累加緩存讀入,并輸出到不同的指定累加緩沖寫入。

通過緩存到緩存的處理模式,使得硬件資源的靈活使用成為可能;統(tǒng)一的緩存結(jié)構(gòu)確保同一硬件架構(gòu)支持CNN卷積與全連接計(jì)算;緩存的寫入與讀出可以采取不同的方式,適配數(shù)據(jù)處理規(guī)律的需要,降低緩存用量。并且一個緩存單元可以對應(yīng)多個電路,能夠提高數(shù)據(jù)輸入的并行度,使得大規(guī)模,高性能并行處理成為可能。

圖4所示的系統(tǒng)可以在圖2或圖3所示的電路100或電路200的基礎(chǔ)上進(jìn)行擴(kuò)展得到。并且電路100或電路200中的各個模塊實(shí)現(xiàn)的操作和功能與上述技術(shù)方案相同,為了簡潔,在此不再贅述。

下面將結(jié)合圖5對本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的方法300進(jìn)行描述。該方法采用上述描述的電路100或電路200對輸入數(shù)據(jù)進(jìn)行處理,例如可以由控制單元執(zhí)行,如圖5所示,該方法300包括:

S310,判斷該數(shù)據(jù)傳輸單元輸出的待處理數(shù)據(jù)是否為0;

S320,在確定該待處理數(shù)據(jù)為0時(shí),控制該N個處理單元都處于關(guān)閉狀態(tài)。

因此,本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的方法,能夠在實(shí)現(xiàn)卷積運(yùn)算時(shí)降低電路的功耗。

可選地,作為本發(fā)明一個實(shí)施例,該方法還包括:該控制單元在確定該待處理數(shù)據(jù)為0時(shí),控制該第i個移位寄存器的值輸出到該第i+1個處理單元;該控制單元在確定該待處理數(shù)據(jù)不為0時(shí),控制該N個處理單元對該待處理數(shù)據(jù)進(jìn)行處理,并控制該第i個處理單元的值輸出到該第i個移位寄存器。

圖6示出了根據(jù)本發(fā)明實(shí)施例的裝置500。該裝置包括:處理器520、收發(fā)器530、存儲器510、N個乘法器540、N個累加器550和總線系統(tǒng)560。其中,該存儲器、該處理器、該收發(fā)器、該N個乘法器和該N個累加器通過該總線系統(tǒng)相連,該存儲器用于存儲指令,該處理器用于執(zhí)行該存儲器存儲的指令,以控制收發(fā)器依次輸出同一數(shù)據(jù),并且當(dāng)該處理器執(zhí)行該存儲器存儲的指令時(shí),該處理器用于:當(dāng)確定該收發(fā)器接收的待處理數(shù)據(jù)為0時(shí),控制該N個乘法器和N個累加器都處于關(guān)閉狀態(tài)。

因此,本發(fā)明實(shí)施例提供的處理數(shù)據(jù)的裝置,能夠在實(shí)現(xiàn)卷積運(yùn)算的時(shí)候降低電路功耗。

應(yīng)理解,在本發(fā)明實(shí)施例中,該處理器520可以是CPU,該處理器520還可以是其他通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、FPGA或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器。

該存儲器510可以包括只讀存儲器和隨機(jī)存取存儲器,并向處理器520提供指令和數(shù)據(jù)。存儲器510的一部分還可以包括非易失性隨機(jī)存取存儲器。例如,存儲器510還可以存儲設(shè)備類型的信息。

該總線系統(tǒng)560除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。但是為了清楚說明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)560。

在實(shí)現(xiàn)過程中,上述方法300的各步驟可以通過處理器520中的硬件的集成邏輯電路或者軟件形式的指令完成。結(jié)合本發(fā)明實(shí)施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器510,處理器520讀取存儲器510中的信息,結(jié)合其硬件完成上述方法300的步驟。為避免重復(fù),這里不再詳細(xì)描述。

應(yīng)理解,在本發(fā)明實(shí)施例中,根據(jù)本發(fā)明實(shí)施例的裝置500可以用于實(shí)現(xiàn)圖3所示的電路200。為了簡潔,在此不再贅述。

應(yīng)理解,在本發(fā)明實(shí)施例中,“與A相應(yīng)的B”表示B與A相關(guān)聯(lián),根據(jù)A可以確定B。但還應(yīng)理解,根據(jù)A確定B并不意味著僅僅根據(jù)A確定B,還可以根據(jù)A和/或其它信息確定B。

本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。

在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,該單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機(jī)械的或其它的形式連接。

該作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本發(fā)明實(shí)施例方案的目的。

另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

該集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分,或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例該方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1