[發(fā)明專利]一種混合式神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法、系統(tǒng)、設(shè)備及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 202110520730.4 | 申請日: | 2021-05-13 |
| 公開(公告)號: | CN112990444B | 公開(公告)日: | 2021-09-24 |
| 發(fā)明(設(shè)計(jì))人: | 彭世辰;周軍 | 申請(專利權(quán))人: | 電子科技大學(xué) |
| 主分類號: | G06N3/04 | 分類號: | G06N3/04;G06N3/08 |
| 代理公司: | 電子科技大學(xué)專利中心 51203 | 代理人: | 周劉英 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 混合式 神經(jīng)網(wǎng)絡(luò) 訓(xùn)練 方法 系統(tǒng) 設(shè)備 存儲 介質(zhì) | ||
1.一種用于基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的混合式神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,其特征在于,包括下列步驟:
步驟S1,獲取待訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,基于神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)確定網(wǎng)絡(luò)的各層間權(quán)重矩陣,隨機(jī)初始化各權(quán)重矩陣的元素,再將各層間權(quán)重矩陣存入基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的權(quán)重?cái)?shù)據(jù)存儲單元;
步驟S2,獲取訓(xùn)練數(shù)據(jù)集,其中訓(xùn)練數(shù)據(jù)集的各訓(xùn)練數(shù)據(jù)包括訓(xùn)練樣本的數(shù)據(jù)向量和樣本標(biāo)簽;
步驟S3,從訓(xùn)練數(shù)據(jù)集中讀取當(dāng)前的批數(shù)據(jù),所述批數(shù)據(jù)包括至少一個訓(xùn)練數(shù)據(jù);
步驟S4,將批數(shù)據(jù)中的各訓(xùn)練樣本的數(shù)據(jù)向量存入基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的特征圖數(shù)據(jù)存儲單元,基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的計(jì)算單元讀取特征圖數(shù)據(jù)存儲單元和權(quán)重?cái)?shù)據(jù)存儲單元中的數(shù)據(jù),進(jìn)行神經(jīng)網(wǎng)絡(luò)的前向推理運(yùn)算,得到前向推理運(yùn)算結(jié)果并存入基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的結(jié)果數(shù)據(jù)存儲單元中;并基于結(jié)果數(shù)據(jù)存儲單元中的前向推理運(yùn)算結(jié)果得到當(dāng)前批數(shù)據(jù)中的各訓(xùn)練樣本的預(yù)測值;
步驟S5,基于預(yù)設(shè)的損失函數(shù)計(jì)算當(dāng)前批數(shù)據(jù)的訓(xùn)練樣本的預(yù)測值與樣本標(biāo)簽之間的損失值,若損失值大于或等于預(yù)設(shè)的損失閾值,則執(zhí)行步驟S6和S7;否則執(zhí)行步驟S9;
步驟S6,基于隨機(jī)梯度下降法,計(jì)算神經(jīng)模型的各網(wǎng)絡(luò)層的權(quán)重梯度,若所述權(quán)重梯度小于預(yù)設(shè)的梯度閾值,則直接執(zhí)行步驟S9;若所述權(quán)重梯度大于或等于預(yù)設(shè)的梯度閾值,則基于各網(wǎng)絡(luò)層的權(quán)重梯度的正負(fù)符號確定對應(yīng)權(quán)重的梯度更新方向;
步驟S7,確定當(dāng)前的權(quán)重更新的步進(jìn)值:
判斷權(quán)重更新的步進(jìn)值的更新間隔是否達(dá)到預(yù)設(shè)的間隔閾值,若否,則權(quán)重更新的步進(jìn)值保持不變;若是,則將當(dāng)前損失值與預(yù)設(shè)的至少兩個損失取值段進(jìn)行匹配,確定當(dāng)前損失值所對應(yīng)的損失取值段,并基于該損失取值段所對應(yīng)的步進(jìn)值,確定當(dāng)前的權(quán)重更新的步進(jìn)值;
所述至少兩個損失取值段為:[0,L1),[L1,L2),…,[Lk-1,Lk)、[Lk,+∞),其中L1~Lk表示k個不同的損失取值;并分別為每個損失取值段配置一個權(quán)重更新的步進(jìn)值;
步驟S8,基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路的權(quán)值更新單元按照步驟S6得到的權(quán)重的梯度更新方向和步驟S7得到的權(quán)重更新的步進(jìn)值對權(quán)重?cái)?shù)據(jù)存儲單元中的各權(quán)重值進(jìn)行更新,更新完成后執(zhí)行步驟S9;
其中,權(quán)值更新單元對權(quán)重?cái)?shù)據(jù)存儲單元中的各權(quán)重值進(jìn)行更新為:若梯度更新方向的符號為正,則執(zhí)行SET操作;若梯度更新方向的符號為負(fù),則執(zhí)行RESET操作,其中SET操作或RESET操作執(zhí)行的次數(shù)取決于步進(jìn)值所對應(yīng)的器件阻值;
步驟S9,確定是否達(dá)到預(yù)設(shè)的訓(xùn)練結(jié)束條件,若是,則訓(xùn)練結(jié)束,否則,返回執(zhí)行步驟S3。
2.一種混合式神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng),其特征在于,包括:第一處理設(shè)備和第二處理設(shè)備;
其中,第一處理設(shè)備包括控制處理單元和和固定步進(jìn)值選擇單元;
第二處理設(shè)備包括第一、第二和第三存儲單元,以及計(jì)算單元和權(quán)值更新單元;
所述第一處理設(shè)備的控制處理單元,用于:
獲取待訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,并基于神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)確定網(wǎng)絡(luò)的各層間權(quán)重矩陣,隨機(jī)初始化各權(quán)重矩陣的元素,再將各層間權(quán)重矩陣存入第二處理設(shè)備的第一存儲單元;
獲取訓(xùn)練數(shù)據(jù)集,其中訓(xùn)練數(shù)據(jù)集的各訓(xùn)練數(shù)據(jù)包括訓(xùn)練樣本的數(shù)據(jù)向量和樣本標(biāo)簽;
從訓(xùn)練數(shù)據(jù)集中讀取當(dāng)前的批數(shù)據(jù),所述批數(shù)據(jù)包括至少一個訓(xùn)練數(shù)據(jù),并將當(dāng)前的批數(shù)據(jù)的各訓(xùn)練樣本的數(shù)據(jù)向量存入第二處理設(shè)備的第二存儲單元;
所述第二處理設(shè)備的計(jì)算單元,用于基于批數(shù)據(jù)中的每個訓(xùn)練樣本的數(shù)據(jù)向量和層間權(quán)重矩陣進(jìn)行神經(jīng)網(wǎng)絡(luò)的前向推理運(yùn)算,得到前向推理運(yùn)算結(jié)果并存入第三存儲單元;
所述第一處理設(shè)備的控制處理單元還用于:
從第二處理設(shè)備的第三存儲單元中讀取前向推理運(yùn)算結(jié)果,并基于該前向推理運(yùn)算結(jié)果得到訓(xùn)練樣本的預(yù)測值;
基于預(yù)設(shè)的損失函數(shù)計(jì)算當(dāng)前批數(shù)據(jù)的訓(xùn)練樣本的預(yù)測值與樣本標(biāo)簽之間的損失值,當(dāng)損失值小于預(yù)設(shè)的損失閾值時,執(zhí)行訓(xùn)練收斂檢測;當(dāng)損失值大于或等于預(yù)設(shè)的損失閾值時,將損失值發(fā)送至固定步進(jìn)值選擇單元,同時基于隨機(jī)梯度下降法,計(jì)算神經(jīng)模型的各網(wǎng)絡(luò)層的權(quán)重梯度;當(dāng)權(quán)重梯度大于或等于預(yù)設(shè)的梯度閾值時,則基于各網(wǎng)絡(luò)層的權(quán)重梯度的正負(fù)符號確定對應(yīng)權(quán)重的梯度更新方向;當(dāng)權(quán)重梯度小于預(yù)設(shè)的梯度閾值時,執(zhí)行訓(xùn)練收斂檢測;
所述固定步進(jìn)值選擇單元用于確定當(dāng)前的權(quán)重更新的步進(jìn)值并發(fā)送至第一處理設(shè)備的控制處理單元,其中確定當(dāng)前的權(quán)重更新的步進(jìn)值為:判斷權(quán)重更新的步進(jìn)值的更新間隔是否達(dá)到預(yù)設(shè)的間隔閾值,若否,則權(quán)重更新的步進(jìn)值保持不變;若是,則將當(dāng)前損失值與預(yù)設(shè)的至少兩個損失取值段進(jìn)行匹配,確定當(dāng)前損失值所對應(yīng)的損失取值段,并基于該損失取值段所對應(yīng)的步進(jìn)值,確定當(dāng)前的權(quán)重更新的步進(jìn)值;
所述至少兩個損失取值段為:[0,L1),[L1,L2),…,[Lk-1,Lk)、[Lk,+∞),其中L1~Lk表示k個不同的損失取值;并分別為每個損失取值段配置一個權(quán)重更新的步進(jìn)值;
第一處理設(shè)備的控制處理單元基于當(dāng)前的權(quán)重的梯度更新方向和權(quán)重更新的步進(jìn)值生成權(quán)重更新策略并發(fā)送至第二處理設(shè)備的權(quán)值更新單元,所述權(quán)重更新策略為:若權(quán)重的梯度更新方向的符號為正,則權(quán)重增加一個步進(jìn)值,若權(quán)重的梯度更新方向的符號為負(fù),則權(quán)重減小一個步進(jìn)值;
第二處理設(shè)備的權(quán)值更新單元基于當(dāng)前收到的權(quán)重更新策略對第一存儲單元中的層間權(quán)重矩陣進(jìn)行更新,并向第一處理設(shè)備的控制處理單元反饋更新完成消息,當(dāng)收到更新完成消息時,控制處理單元執(zhí)行訓(xùn)練收斂檢測;
所述訓(xùn)練收斂檢測為:確定是否達(dá)到預(yù)設(shè)的訓(xùn)練結(jié)束條件,若是,則結(jié)束訓(xùn)練,否則,繼續(xù)從訓(xùn)練數(shù)據(jù)集中讀取當(dāng)前的批數(shù)據(jù),并將當(dāng)前的批數(shù)據(jù)的各訓(xùn)練樣本的數(shù)據(jù)向量存入第二處理設(shè)備的第二存儲單元,以使得第二處理設(shè)備的計(jì)算單元進(jìn)行下一批次的前向推理運(yùn)算;
所述第二處理設(shè)備為基于電阻式隨機(jī)存取存儲器ReRAM的神經(jīng)網(wǎng)絡(luò)計(jì)算電路,且權(quán)值更新單元基于當(dāng)前收到的權(quán)重更新策略對第一存儲單元中的層間權(quán)重矩陣進(jìn)行更新的方式為:若梯度更新方向的符號為正,則執(zhí)行SET操作;若梯度更新方向的符號為負(fù),則執(zhí)行RESET操作,其中SET操作或RESET操作執(zhí)行的次數(shù)取決于步進(jìn)值所對應(yīng)的器件阻值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于電子科技大學(xué),未經(jīng)電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110520730.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 硬件神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法、計(jì)算裝置、軟硬件協(xié)作系統(tǒng)
- 生成較大神經(jīng)網(wǎng)絡(luò)
- 神經(jīng)網(wǎng)絡(luò)的生成方法、生成裝置和電子設(shè)備
- 一種舌診方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲介質(zhì)
- 學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 脈沖神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法及相關(guān)轉(zhuǎn)換芯片
- 圖像處理方法、裝置、可讀存儲介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種適應(yīng)目標(biāo)數(shù)據(jù)集的網(wǎng)絡(luò)模型微調(diào)方法、系統(tǒng)、終端和存儲介質(zhì)
- 用于重構(gòu)人工神經(jīng)網(wǎng)絡(luò)的處理器及其操作方法、電氣設(shè)備
- 一種圖像神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法及裝置





