CN113255877B 神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì) (阿里巴巴集團(tuán)控股有限公司)_第1頁
CN113255877B 神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì) (阿里巴巴集團(tuán)控股有限公司)_第2頁
CN113255877B 神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì) (阿里巴巴集團(tuán)控股有限公司)_第3頁
CN113255877B 神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì) (阿里巴巴集團(tuán)控股有限公司)_第4頁
CN113255877B 神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì) (阿里巴巴集團(tuán)控股有限公司)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

(19)國家知識產(chǎn)權(quán)局(12)發(fā)明專利地址英屬開曼群島大開曼資本大廈一座四(72)發(fā)明人謝宏偉張爍丁煌浩蔡嶺胡聰鋼李名楊有限公司11610及存儲介質(zhì)本申請實(shí)施例提供一種神經(jīng)網(wǎng)絡(luò)模型的量頻次確定用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練2獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù),所述計(jì)算數(shù)據(jù)是指第一神經(jīng)網(wǎng)絡(luò)層完成本層計(jì)算所需的一種或多種數(shù)據(jù),在使用所述神經(jīng)網(wǎng)絡(luò)模型處理圖像數(shù)據(jù)或視頻時,所述計(jì)算數(shù)據(jù)包括圖像數(shù)據(jù)或視頻,所述計(jì)算數(shù)據(jù)為浮點(diǎn)數(shù),所述計(jì)算數(shù)據(jù)存在所屬的數(shù)值范圍且所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍可被放大;根據(jù)所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍,確定用于將所述計(jì)算數(shù)據(jù)轉(zhuǎn)換為設(shè)定位數(shù)定點(diǎn)數(shù)的量化映射關(guān)系,其中,所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍中的最大浮點(diǎn)數(shù)用于映射到設(shè)定位數(shù)定點(diǎn)數(shù)的最大值,所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍中的最小浮點(diǎn)數(shù)用于映射到設(shè)定位數(shù)定點(diǎn)數(shù)的最小值;根據(jù)所述計(jì)算數(shù)據(jù)及所述量化映射關(guān)系,預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練;其中,根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)包括:若所述算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值,則按照設(shè)定的倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行放大處理,并根據(jù)調(diào)整后的數(shù)值范圍重新執(zhí)行所述確定用于將所述計(jì)算數(shù)據(jù)轉(zhuǎn)換為設(shè)定位數(shù)定點(diǎn)數(shù)的量化映射關(guān)系以及根據(jù)所述量化映射關(guān)系預(yù)測的步驟。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述計(jì)算數(shù)據(jù)以及所述量化映射關(guān)根據(jù)所述量化映射關(guān)系,將所述計(jì)算數(shù)據(jù)映射為所述設(shè)定位數(shù)定點(diǎn)數(shù),得到量化后的根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程,得到所述第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果以及輸出數(shù)據(jù);根據(jù)所述中間計(jì)算結(jié)果、所述輸出數(shù)據(jù)以及設(shè)定的數(shù)據(jù)存儲范圍,計(jì)算所述算術(shù)溢出3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述計(jì)算數(shù)據(jù)包括:模型參數(shù)以及輸入數(shù)根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程,包括:根據(jù)量化后的模型參數(shù)和量化后的輸入數(shù)據(jù),按照第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算邏輯,對所述第一神經(jīng)網(wǎng)絡(luò)層量化后的計(jì)算過程進(jìn)行整數(shù)計(jì)算。4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述設(shè)定的數(shù)據(jù)存儲范圍包括1-64位任意整型數(shù)據(jù)對應(yīng)的數(shù)值范圍。5.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),還包括:若所述算術(shù)溢出的頻次小于或者等于設(shè)定溢出頻次閾值,則將所述計(jì)算數(shù)據(jù)作為所述目標(biāo)計(jì)算數(shù)據(jù)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行放大處理,包括以下至少一種:3按照第一縮放倍數(shù),對所述第一神經(jīng)網(wǎng)絡(luò)層的模型參數(shù)所屬的數(shù)值范圍進(jìn)行放大處按照第二縮放倍數(shù)對所述第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行放大處理。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一縮放倍數(shù)和/或所述第二縮放倍數(shù),根據(jù)所述算術(shù)溢出的頻次確定。8.一種神經(jīng)網(wǎng)絡(luò)模型的量化處理裝置,其特輸入模塊,用于:獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù),所述計(jì)算數(shù)據(jù)是指第一神經(jīng)網(wǎng)絡(luò)層完成本層計(jì)算所需的一種或多種數(shù)據(jù),在使用所述神經(jīng)網(wǎng)絡(luò)模型處理圖像數(shù)據(jù)或視頻時,所述計(jì)算數(shù)據(jù)包括圖像數(shù)據(jù)或視頻,所述計(jì)算數(shù)據(jù)為浮點(diǎn)數(shù),所述計(jì)算數(shù)據(jù)存在所屬的數(shù)值范圍且所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍可被放大;溢出預(yù)測模塊,用于:根據(jù)所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍,確定用于將所述計(jì)算數(shù)據(jù)轉(zhuǎn)換為設(shè)定位數(shù)定點(diǎn)數(shù)的量化映射關(guān)系,其中,所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍中的最大浮點(diǎn)數(shù)用于映射到設(shè)定位數(shù)定點(diǎn)數(shù)的最大值,所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍中的最小浮點(diǎn)數(shù)用于映射到設(shè)定位數(shù)定點(diǎn)數(shù)的最小值;根據(jù)所述計(jì)算數(shù)據(jù)及所述量化映射關(guān)系,預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次,所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍用于確定量化映射關(guān)系,所述量化映射關(guān)系用于將所述計(jì)算數(shù)據(jù)轉(zhuǎn)換為設(shè)定位數(shù)的整型數(shù)據(jù);量化訓(xùn)練模塊,用于:根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練;其中,根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)包括:若所述算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值,則按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行放大處理,并根據(jù)調(diào)整后的數(shù)值范圍重新執(zhí)行所述確定用于將所述計(jì)算數(shù)據(jù)轉(zhuǎn)換為設(shè)定位數(shù)定點(diǎn)數(shù)的量化映射關(guān)系以及根據(jù)所述量化映射關(guān)系預(yù)測的步驟。量化子模塊,用于:根據(jù)所述量化映射關(guān)系,將所述計(jì)算數(shù)據(jù)映射為所述設(shè)定位數(shù)定點(diǎn)計(jì)算子模塊,用于根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程,得到所述第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果以及輸出數(shù)據(jù);以及,根據(jù)所述中間計(jì)算結(jié)果、所述輸出數(shù)據(jù)以及設(shè)定的數(shù)據(jù)存儲范圍,計(jì)算所述算術(shù)溢出的頻次。所述存儲器用于存儲一條或多條計(jì)算機(jī)指令;所述處理器用于執(zhí)行所述一條或多條計(jì)算機(jī)指令以用于:執(zhí)行權(quán)利要求1-7任一項(xiàng)所述的方法。11.一種存儲有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,計(jì)算機(jī)程序被執(zhí)行時能夠?qū)崿F(xiàn)權(quán)利要求1-7任一項(xiàng)所述的方法。4神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì)技術(shù)領(lǐng)域[0001]本申請涉及深度學(xué)習(xí)技術(shù)領(lǐng)域,尤其涉及一種神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝背景技術(shù)[0002]神經(jīng)網(wǎng)絡(luò)模型包含大量的模型參數(shù),這些模型參數(shù)多為浮點(diǎn)型,占用較多的存儲空間。同時,神經(jīng)網(wǎng)絡(luò)模型基于浮點(diǎn)型的模型參數(shù)進(jìn)行浮點(diǎn)運(yùn)算,也會占用較多的計(jì)算資[0003]通常,可對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行量化,以降低神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)量并提升神經(jīng)網(wǎng)絡(luò)模型的計(jì)算速度。[0004]但是,現(xiàn)有技術(shù)提供的神經(jīng)網(wǎng)絡(luò)模型的量化方法具有靈活性較差的缺陷。因此,有待提出一種新的解決方案。發(fā)明內(nèi)容[0005]本申請的多個方面提供一種神經(jīng)網(wǎng)絡(luò)模型的量化處理方法、裝置、設(shè)備及存儲介質(zhì),用以提升神經(jīng)網(wǎng)絡(luò)模型的量化操作的靈活性。[0006]本申請實(shí)施例提供一種神經(jīng)網(wǎng)絡(luò)模型的量化處理方法,包括:獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù);根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次;根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練。[0007]本申請實(shí)施例還提供一種神經(jīng)網(wǎng)絡(luò)模型的量化處理裝置,包括:輸入模塊,用于:獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù);溢出預(yù)測模塊,用于:根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次;量化訓(xùn)練模塊,用于:根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練。[0008]本申請實(shí)施例還提供一種電子設(shè)備,包括:存儲器和處理器;所述存儲器用于存儲一條或多條計(jì)算機(jī)指令;所述處理器用于執(zhí)行所述一條或多條計(jì)算機(jī)指令以用于:執(zhí)行本申請實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法。[0009]本申請實(shí)施例還提供一種存儲有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)程序被執(zhí)行時能夠?qū)崿F(xiàn)本申請實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法。[0010]本申請實(shí)施例中,在對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行量化訓(xùn)練的過程中,預(yù)測神經(jīng)網(wǎng)絡(luò)模型中任一神經(jīng)網(wǎng)絡(luò)層量化后發(fā)生算術(shù)溢出的頻次,并根據(jù)預(yù)測的算術(shù)溢出的頻次確定用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)?;谶@種方式,便于對量化后的神經(jīng)網(wǎng)絡(luò)模型的溢出情況進(jìn)行控制,有利于提升神經(jīng)網(wǎng)絡(luò)模型的量化操作的靈活性。5附圖說明[0011]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:[0012]圖1為本申請一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化方法的流程示意圖;[0013]圖2a為本申請另一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化方法的流程示意圖;[0014]圖2b為本申請一示例性實(shí)施例提供的數(shù)據(jù)量化過程的示意圖;[0015]圖3為本申請一示例性實(shí)施例提供的階梯步長的示意圖;[0016]圖4為本申請另一示例性實(shí)施例提供的階梯步長的示意圖;[0017]圖5為本申請一示例性實(shí)施例提供的通過縮放操作控制映射范圍的示意圖;[0018]圖6為本申請一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)量化裝置的結(jié)構(gòu)示意[0019]圖7為本申請一示例性實(shí)施例提供的包含溢出預(yù)測模塊的卷積層的結(jié)構(gòu)示意圖;[0020]圖8為本申請一示例性實(shí)施例提供的電子設(shè)備的結(jié)構(gòu)示意圖。具體實(shí)施方式[0021]為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。[0022]神經(jīng)網(wǎng)絡(luò)模型,指的是對人工神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到的深度學(xué)習(xí)模型。神經(jīng)網(wǎng)絡(luò)模型包含多種模型參數(shù),一般的模型參數(shù)及其運(yùn)算過程采用浮點(diǎn)數(shù)(float數(shù)據(jù)類型)進(jìn)行數(shù)值表示,比如多采用32bit(量度信息的最小單位)的單精度浮點(diǎn)數(shù)或者64bit的雙精度浮點(diǎn)數(shù)進(jìn)行表示。[0023]模型量化(quantization),通常是指用整數(shù)替代神經(jīng)網(wǎng)絡(luò)模型中的浮點(diǎn)數(shù)進(jìn)行數(shù)值表示,比如采用8bit或者16bit的定點(diǎn)整數(shù)進(jìn)行數(shù)值表示。[0024]神經(jīng)網(wǎng)絡(luò)模型的量化操作,包括訓(xùn)練時量化以及訓(xùn)練后量化。其中,訓(xùn)練后量化是指,訓(xùn)練得到采用浮點(diǎn)數(shù)表示數(shù)值的神經(jīng)網(wǎng)絡(luò)模型,接著,使用一批樣本輸入神經(jīng)網(wǎng)絡(luò)模型,統(tǒng)計(jì)神經(jīng)網(wǎng)絡(luò)模型的輸出數(shù)據(jù)的數(shù)值范圍,再根據(jù)輸出數(shù)據(jù)的數(shù)值范圍對神經(jīng)網(wǎng)絡(luò)模用浮點(diǎn)數(shù)來保存定點(diǎn)參數(shù),在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成后投入使用時,直接使用保存的定點(diǎn)[0025]一些場景下,量化后的神經(jīng)網(wǎng)絡(luò)模型存在算術(shù)溢出(arithmeticoverflow算術(shù)溢出,是指計(jì)算機(jī)進(jìn)行算術(shù)運(yùn)算產(chǎn)生的結(jié)果超出機(jī)器所能表示的范圍。即,表示輸出數(shù)據(jù)的數(shù)值超出了一定長度的定點(diǎn)數(shù)能表達(dá)的范圍。[0026]針對上述算術(shù)溢出的技術(shù)問題,在本申請一些實(shí)施例中,提供了一種解決方案,在該解決方案中,在訓(xùn)練時量化的基礎(chǔ)上進(jìn)行了進(jìn)一步改進(jìn),在神經(jīng)網(wǎng)絡(luò)模型中添加了溢出預(yù)測模塊,該溢出預(yù)測模塊可對量化后的神經(jīng)網(wǎng)絡(luò)模型的算術(shù)溢出情況進(jìn)行預(yù)測,有利于降低量化后的神經(jīng)網(wǎng)絡(luò)模型出現(xiàn)算術(shù)溢出情況。以下將結(jié)合附圖,詳細(xì)說明本申請各實(shí)施例提供的技術(shù)方案。6[0027]圖1為本申請一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法的流程示意[0028]步驟101、獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù)。[0029]步驟102、根據(jù)該計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次。[0030]步驟103、根據(jù)算術(shù)溢出的頻次和該計(jì)算數(shù)據(jù),確定用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練。[0031]其中,第一神經(jīng)網(wǎng)絡(luò)層,指的是神經(jīng)網(wǎng)絡(luò)模型中的任一神經(jīng)網(wǎng)絡(luò)層,此處采用“第一”對神經(jīng)網(wǎng)絡(luò)層進(jìn)行限定,僅用于方便描述和區(qū)分,并不對神經(jīng)網(wǎng)絡(luò)層的順序或者位置構(gòu)成任何限制。例如,針對卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN)模型而言,實(shí)施例不做限制。[0032]其中,計(jì)算數(shù)據(jù),指的是第一神經(jīng)網(wǎng)絡(luò)層完成本層計(jì)算所需的一種或多種數(shù)據(jù),包括前一層傳遞來的數(shù)據(jù),也可包括本層內(nèi)的模型參數(shù)。例如,第一神經(jīng)網(wǎng)絡(luò)層實(shí)現(xiàn)為CNN中的任意卷積層時,該卷積層所需的計(jì)算數(shù)據(jù)可包括輸入卷積層的圖像數(shù)據(jù)以及用于圖像特征提取的卷積核以及用于將本層輸出數(shù)據(jù)傳遞至下一層的激活函數(shù)等等,不再贅述。[0033]其中,根據(jù)該計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層的輸出數(shù)據(jù)發(fā)生算術(shù)溢出的頻次的操作,可基于神經(jīng)網(wǎng)絡(luò)模型中的溢出預(yù)測模塊實(shí)現(xiàn)。該溢出預(yù)測模塊可感知量化后的神經(jīng)網(wǎng)絡(luò)模型的計(jì)算過程是否會出現(xiàn)算術(shù)溢出現(xiàn)象,并統(tǒng)計(jì)溢出頻次,進(jìn)而有利于進(jìn)一步優(yōu)化量化后的神經(jīng)網(wǎng)絡(luò)模型的精準(zhǔn)度。[0034]其中,目標(biāo)計(jì)算數(shù)據(jù),是指用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的數(shù)據(jù),也就是實(shí)際參與第一神經(jīng)網(wǎng)絡(luò)層的量化訓(xùn)練過程的數(shù)據(jù)。該目標(biāo)計(jì)算數(shù)據(jù)可根據(jù)第一神經(jīng)網(wǎng)絡(luò)層的輸出數(shù)據(jù)的溢出情況進(jìn)行調(diào)整?;谶@種方式,可根據(jù)預(yù)測得到的量化后的神經(jīng)網(wǎng)絡(luò)模型的溢出情況,反向調(diào)整參與第一神經(jīng)網(wǎng)絡(luò)層的實(shí)際量化訓(xùn)練過程的計(jì)算數(shù)據(jù),有利于降低訓(xùn)練完成后的神經(jīng)網(wǎng)絡(luò)模型發(fā)生算術(shù)溢出的概率。[0035]在本實(shí)施例中,在對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行量化訓(xùn)練的過程中,預(yù)測神經(jīng)網(wǎng)絡(luò)模型中任一神經(jīng)網(wǎng)絡(luò)層量化后發(fā)生算術(shù)溢出的頻次,并根據(jù)預(yù)測的算術(shù)溢出的頻次確定用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)?;谶@種方式,便于對量化后的神經(jīng)網(wǎng)絡(luò)模型的溢出情況進(jìn)行控制,有利于提升神經(jīng)網(wǎng)絡(luò)模型的量化操作的靈活性。[0036]圖2a為本申請另一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法的流程示[0037]步驟201、獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù)。[0038]步驟202、根據(jù)該計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次。[0039]步驟203、判斷該算術(shù)溢出的頻次是否小于或者等于設(shè)定溢出頻次閾值;若為是,執(zhí)行步驟204,若為否,執(zhí)行步驟205。[0040]步驟204、若該算術(shù)溢出的頻次小于或者等于設(shè)定溢出頻次閾值,則將該計(jì)算數(shù)據(jù)作為目標(biāo)計(jì)算數(shù)據(jù),并根據(jù)該目標(biāo)數(shù)據(jù)對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練。[0041]步驟205、若該算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值,則對該計(jì)算數(shù)據(jù)進(jìn)行調(diào)整,并根據(jù)調(diào)整后的計(jì)算數(shù)據(jù)執(zhí)行步驟202。[0042]在步驟201中,第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù),可包括第一神經(jīng)網(wǎng)絡(luò)層的模型參7數(shù),以及,第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)。當(dāng)?shù)谝簧窠?jīng)網(wǎng)絡(luò)層不是神經(jīng)網(wǎng)絡(luò)模型中的首個神經(jīng)網(wǎng)絡(luò)層時,第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)可以是第一神經(jīng)網(wǎng)絡(luò)層的前一神經(jīng)網(wǎng)絡(luò)層的輸出數(shù)便,將輸入數(shù)據(jù)所屬的數(shù)值范圍描述為[Imin,Imax],將模型參數(shù)所屬的數(shù)值范圍描述為[Pmin,Pmax]。[0050]接著,可根據(jù)計(jì)算數(shù)據(jù)所屬的數(shù)值范圍以及設(shè)定位數(shù)的整型數(shù)據(jù)所屬的數(shù)值范為int:1,float:[0,0.0039]范圍8[0057]得到第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果以及輸出數(shù)據(jù)后,可判斷中間計(jì)算結(jié)果是否發(fā)生算術(shù)溢出,并判斷輸出數(shù)據(jù)是否發(fā)生算術(shù)溢出?;谂袛嘟Y(jié)果,可確定第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次。在本實(shí)施例中,可根據(jù)中間計(jì)算結(jié)果、輸出數(shù)據(jù)以及設(shè)定的數(shù)據(jù)存儲范圍,計(jì)算該算術(shù)溢出的頻次。例如,若某一中間計(jì)算結(jié)果超出設(shè)定的數(shù)據(jù)存儲范圍,則可記一次算術(shù)溢出;若輸出數(shù)據(jù)超出設(shè)定的數(shù)據(jù)存儲范圍,則可記一次算術(shù)溢出。[0058]可選地,該設(shè)定的數(shù)據(jù)存儲范圍可包括1-64位任意整型數(shù)據(jù)對應(yīng)的數(shù)值范圍。例如,可以是1位整型數(shù)據(jù)對應(yīng)的數(shù)值范圍,8位整型數(shù)據(jù)對應(yīng)的數(shù)值范圍,16位整型數(shù)據(jù)對應(yīng)的數(shù)值范圍,或者,32位整型數(shù)據(jù)對應(yīng)的數(shù)值范圍,本實(shí)施例包含但不限于此。以是8bit的整型數(shù)據(jù)對應(yīng)的數(shù)值范圍,輸出數(shù)據(jù)對應(yīng)的存儲范圍可以是16bit的整形數(shù)據(jù)對應(yīng)的數(shù)值范圍。在又一些場景下,中間計(jì)算結(jié)果和輸出數(shù)據(jù)對應(yīng)的存儲范圍均可以是[0060]例如,在一些典型的情況下,第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程包括乘法和加法操作,如下述公式所示:[0061]R=x?*w?+x?*W?+…+[0062]其中,x表示第n個輸入數(shù)據(jù),w表示第一神經(jīng)網(wǎng)絡(luò)層的第n個權(quán)重參數(shù),x*w表示執(zhí)行第n個乘法操作得到的中間計(jì)算結(jié)果,R表示第一神經(jīng)網(wǎng)絡(luò)層的輸出數(shù)據(jù),n為正整數(shù)。應(yīng)當(dāng)理解,基于上述公式,每執(zhí)行一次乘法操作后得到的結(jié)果,被稱為中間計(jì)算結(jié)果,每執(zhí)行一次加法操作得到的結(jié)果,也可被稱為中間計(jì)算結(jié)果。例如,中間計(jì)算結(jié)果還可以為:x?*[0063]假設(shè),量化后的模型參數(shù)w?、W?…w以及量化后的輸入數(shù)據(jù)x?、x?…x。均采用8bit整型表示。8bit整型數(shù)據(jù)對應(yīng)的數(shù)值范圍是[-127,128]。假設(shè),x?、x?…x的取值均為127,且[0064]若n=100,那么基于上述公式進(jìn)行乘法和加法運(yùn)算后,可得到100個127*127的相[0066]若將中間計(jì)算結(jié)果存儲為10bit整型數(shù)據(jù),那么,若中間計(jì)算結(jié)果xn*w,超出了10bit整型數(shù)據(jù)對應(yīng)的數(shù)值范圍[-1024,1023],則可認(rèn)為該中間計(jì)算結(jié)果發(fā)生了算術(shù)溢出。[0067]在步驟203中,可選地,獲取到算術(shù)溢出的頻次后,可判斷該算術(shù)溢出的頻次是否小于或者等于設(shè)定溢出頻次閾值。其中,設(shè)定溢出頻次閾值可根據(jù)實(shí)際情況進(jìn)行設(shè)置。該設(shè)定溢出頻次閾值可表征對算術(shù)溢出的容忍度。若對算術(shù)溢出的容忍度較高,則可設(shè)置較大的溢出頻次閾值,若對算出溢出的容忍度較低,則可設(shè)置較小的溢出頻次閾值。[0068]可選地,在一些實(shí)施例中,可設(shè)置該溢出頻次閾值為零,以保證量化訓(xùn)練得到的神9經(jīng)網(wǎng)絡(luò)模型的精準(zhǔn)度。[0069]在步驟204中,若算術(shù)溢出的頻次小于或者等于設(shè)定溢出頻次閾值,則可將該計(jì)算數(shù)據(jù)作為目標(biāo)計(jì)算數(shù)據(jù),并可根據(jù)該目標(biāo)數(shù)據(jù)對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練。[0070]在步驟205中,若該算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值,則可對計(jì)算數(shù)據(jù)進(jìn)行調(diào)整,并根據(jù)調(diào)整后的計(jì)算數(shù)據(jù)重新回到步驟202以執(zhí)行預(yù)測操作,直至預(yù)測得到的輸出數(shù)據(jù)不再發(fā)生算術(shù)溢出。[0071]在一些可選的實(shí)施方式中,對計(jì)算數(shù)據(jù)進(jìn)行調(diào)整,可包括:采用新的數(shù)值較小的計(jì)算數(shù)據(jù)替換已有的計(jì)算數(shù)據(jù),例如,可縮小輸入數(shù)據(jù)的取值范圍,或者可縮小模型參數(shù)的取值范圍。[0072]在另一些可選的實(shí)施方式中,對計(jì)算數(shù)據(jù)進(jìn)行調(diào)整,可包括:按照設(shè)定的縮放倍數(shù)對計(jì)算數(shù)據(jù)進(jìn)行縮放處理。以下將結(jié)合附圖以及具體的例子,對縮放計(jì)算數(shù)據(jù)影響算術(shù)溢出的原理進(jìn)行詳細(xì)地說明。[0073]應(yīng)當(dāng)理解,對數(shù)據(jù)進(jìn)行量化,即為:將一定范圍內(nèi)連續(xù)的浮點(diǎn)數(shù)變化為離散的階梯化的整數(shù)。相鄰整數(shù)之間的階梯步長,根據(jù)浮點(diǎn)數(shù)的上下限范圍和量化操作對應(yīng)的整數(shù)的映射范圍確定。以下將結(jié)合具體的例子進(jìn)行示例性說明。[0074]假設(shè),模型參數(shù)Pmin=0.0,Pmax=255.0.8bit無符號整型數(shù)據(jù)的數(shù)值范圍為[0,255]。將模型參數(shù)映射為8bit無符號的整數(shù)時,階梯步長(stride)=1.如圖2b所示,253.0、[0075]6bit無符號整型數(shù)據(jù)的數(shù)值范圍為[0,63]。若將上述模型參數(shù)映射為6bit無符號的整數(shù)時,階梯步長=4,那么Pmax=255.0會被映射為63,同時[252.0,255.0]之間的所有浮點(diǎn)數(shù)值也都會映射到63。[0076]當(dāng)浮點(diǎn)數(shù)的上下限范圍相同時,將浮點(diǎn)數(shù)量化為8bit整型數(shù)據(jù)的階梯步長可參考圖3的示意,將浮點(diǎn)數(shù)量化為6bit整型數(shù)據(jù)的階梯步長可參考圖4的示意?;趫D3和圖4可知,待量化數(shù)據(jù)所屬的數(shù)值范圍相同時,整型數(shù)據(jù)對應(yīng)的映射范圍越大,離散整數(shù)的階梯步長越小,待量化數(shù)據(jù)進(jìn)行量化后得到的整型數(shù)據(jù)的取值范圍越大。[0077]為防止計(jì)算結(jié)果溢出,可適當(dāng)增大階梯步長,以縮小量化后的計(jì)算數(shù)據(jù)的取值范圍?;谏鲜龇治觯龃箅A梯步長的一種可選方式為:在整型數(shù)據(jù)對應(yīng)的映射范圍不變的情況下,增大待量化的浮點(diǎn)型的計(jì)算數(shù)據(jù)所屬的數(shù)值范圍。[0078]可選地,在本實(shí)施例中,可對計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放。[0079]首先,可對計(jì)算數(shù)據(jù)進(jìn)行統(tǒng)計(jì),以統(tǒng)計(jì)得到計(jì)算數(shù)據(jù)的上限值和下限值,根據(jù)該上限值和下限值確定計(jì)算數(shù)據(jù)所屬的數(shù)值范圍。例如,可分別統(tǒng)計(jì)第一神經(jīng)網(wǎng)絡(luò)層的模型參數(shù)所屬的數(shù)值范圍[Pmin,Pmax],以及輸入數(shù)據(jù)所屬的數(shù)值范圍[Imin,Imax]。[0081]如圖5所示,假設(shè)Pmin=-1,Pmax=1,若將其映射為8bit整型數(shù)據(jù),則階梯步長為1/128.將其縮放4倍后,[4*Pmin,4*Pmax]=[-4,4]。將縮放后的范圍映射到8bit整型數(shù)據(jù)后,階梯步長為1/32,那么,[-1,1]的實(shí)際映射范圍將縮小為[-32,31]。包含小數(shù),本實(shí)施例不做限制。當(dāng)α的取值范圍足夠靈活時,可將計(jì)算數(shù)據(jù)映射到任意的整數(shù)范圍內(nèi),極大提升了量化的靈活性。[0083]可選地,在本實(shí)施例中,可按照第一縮放倍數(shù),對第一神經(jīng)網(wǎng)絡(luò)層的模型參數(shù)進(jìn)行縮放處理;或者,可按照第二縮放倍數(shù)對第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)進(jìn)行縮放處理?;蛘?,可同時對模型參數(shù)和輸入數(shù)據(jù)進(jìn)行上述縮放處理,本實(shí)施例不做限制。[0084]可選地,第一縮放倍數(shù)和第二縮放倍數(shù)可以相同也可以不同,二者可根據(jù)輸出數(shù)據(jù)的算術(shù)溢出的頻次和/或溢出量確定。當(dāng)算術(shù)溢出的頻次較多時,可設(shè)置較大的縮放倍可設(shè)置較大的縮放倍數(shù),當(dāng)算術(shù)溢出的溢出量較小時,可設(shè)置較小的縮放倍數(shù),本實(shí)施例不做限制。[0085]值得說明的是,在一種場景下,若預(yù)測得到第一神經(jīng)網(wǎng)絡(luò)層未發(fā)生算術(shù)溢出,且推理第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程時,第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果和輸出數(shù)據(jù)所屬的數(shù)值范圍均遠(yuǎn)小于設(shè)定的數(shù)據(jù)存儲范圍,則可對第一神經(jīng)網(wǎng)絡(luò)層對應(yīng)的模型參數(shù)和/或輸入數(shù)據(jù)進(jìn)行縮放處理。其中,縮放倍數(shù)可以設(shè)置在0到1之間,以縮小模型參于這種方式,可充分利并合理用設(shè)定的數(shù)據(jù)存儲范圍,有利于提升訓(xùn)練得到的模型的精度。[0086]在本實(shí)施例中,通過改變計(jì)算數(shù)據(jù)所屬的數(shù)值范圍來控制量化的映射范圍,可靈活地控制神經(jīng)網(wǎng)絡(luò)模型的溢出情況,有利于提升神經(jīng)網(wǎng)絡(luò)模型的量化操作的靈活性。[0087]除此之外,本申請實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化方法中,預(yù)測第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算結(jié)果的算術(shù)溢出的頻次后,可根據(jù)算術(shù)溢出的頻次確定目標(biāo)計(jì)算數(shù)據(jù),目標(biāo)計(jì)算數(shù)據(jù)更適合于對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行量化訓(xùn)練,一方面,降低了訓(xùn)練完成后的神經(jīng)網(wǎng)絡(luò)模型在使用的過程中發(fā)生算術(shù)溢出的概率,提升生了量化模型的精準(zhǔn)度;另一方面,預(yù)測溢出的過程和模型的實(shí)際訓(xùn)練任務(wù)相關(guān),可在不發(fā)生溢出的前提下,將浮點(diǎn)型的計(jì)算數(shù)據(jù)映射至盡可能大的整數(shù)范圍,能夠在一定程度上避免模型被過度壓縮。[0088]需要說明的是,上述實(shí)施例所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟201至步驟204的執(zhí)行主體可以為設(shè)備A;又比如,步驟201和202的執(zhí)行主體可以為設(shè)備A,步驟203的執(zhí)行主體可以為設(shè)備B;等等。[0089]另外,在上述實(shí)施例及附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如201、202等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或[0090]值得說明的是,本申請上述各實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法,可被封裝為可供第三方使用的工具,例如SaaS(Software-as-a-Service,軟件即服務(wù))工具??蛇x地,該SaaS工具可實(shí)現(xiàn)為插件或者應(yīng)用程序?;谠揝aaS工具,第三方用戶可通過便捷地使用神經(jīng)網(wǎng)絡(luò)模型的量化處理服務(wù)。[0091]例如,在一些場景下,該SaaS工具可被部署在云平臺,第三方用戶可訪問云平臺,以在線使用該SaaS工具?;谠揝aaS工具,第三方用戶可在線量化訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,通過該SaaS工具實(shí)時預(yù)測神經(jīng)網(wǎng)絡(luò)模型的算術(shù)溢出情況,并可根據(jù)算術(shù)溢出情況對量化訓(xùn)練的過程進(jìn)行調(diào)整。[0092]還值得說明的是,本申請上述各實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理方法,可11應(yīng)用于多種不同的神經(jīng)網(wǎng)絡(luò)模型,例如,卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN)模型、深度神經(jīng)網(wǎng)絡(luò)(DeepNeuralNetwork,DNN)模型、圖卷積神經(jīng)網(wǎng)絡(luò)(GraphConvolutionalNetworks,GCN)模型、循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN)模型以及長短期記憶神經(jīng)網(wǎng)絡(luò)(LongShort-TermMemory,LSTM)模型一種或多種,或者還可應(yīng)用于上述一種或多種神經(jīng)網(wǎng)絡(luò)變形得到的其他神經(jīng)網(wǎng)絡(luò)模型。[0093]在應(yīng)用于不同的神經(jīng)網(wǎng)絡(luò)模型時,SaaS工具執(zhí)行神經(jīng)網(wǎng)絡(luò)模型的量化處理方法所需的參數(shù)也不同。其中,該參數(shù)可包括:溢出頻次閾值以及對計(jì)算數(shù)據(jù)進(jìn)行調(diào)整所需的縮放倍數(shù)等等。SaaS工具可為不同類型的神經(jīng)網(wǎng)絡(luò)提供不同的默認(rèn)參數(shù)。在另一些場景下,SaaS工具可通過與第三方用戶進(jìn)行交互,獲取第三方用戶提供的個性化定制的參數(shù),并根據(jù)第三方用戶提供的參數(shù)執(zhí)行量化處理方法,不再贅述。[0095]圖6為本申請一示例性實(shí)施例提供的神經(jīng)網(wǎng)絡(luò)模型的量化處理裝置,如圖6所示,該裝置包括:[0096]輸入模塊61,用于:獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù)。[0097]溢出預(yù)測模塊62,用于:根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次。[0098]量化訓(xùn)練模塊63,用于:根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)[0099]進(jìn)一步可選地,溢出預(yù)測模塊62,包括:量化子模塊621。溢出預(yù)測模塊62在根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次時,具體用于:通過量化子模塊621,推理對所述計(jì)算數(shù)據(jù)的量化操作,得到量化后的計(jì)算數(shù)據(jù);通過計(jì)算子模塊622,根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程,得到所述第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果以及輸出數(shù)據(jù);根據(jù)所述中間計(jì)算結(jié)果、所述輸出數(shù)據(jù)以及設(shè)定的數(shù)據(jù)存儲范圍,計(jì)算所述算術(shù)溢出的頻次。[0100]進(jìn)一步可選地,量化子模塊621在推理對所述計(jì)算數(shù)據(jù)的量化操作時,具體用于:根據(jù)所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍以及設(shè)定位數(shù)的整型數(shù)據(jù)所屬的數(shù)值范圍,確定量化映射關(guān)系;根據(jù)所述量化映射關(guān)系,將所述計(jì)算數(shù)據(jù)映射為所述設(shè)定位數(shù)的整型的計(jì)算數(shù)據(jù)。[0101]進(jìn)一步可選地,所述設(shè)定位數(shù)的整型的計(jì)算數(shù)據(jù)包括:整型的模型參數(shù)以及整型的輸入數(shù)據(jù);溢出預(yù)測模塊62在根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程時,具體用于:通過計(jì)算子模塊622,根據(jù)所述整型的模型參數(shù)和所述整型的輸入數(shù)據(jù),按照第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算邏輯,對所述第一神經(jīng)網(wǎng)絡(luò)層量化后的計(jì)算過程進(jìn)行整數(shù)計(jì)算。[0102]進(jìn)一步可選地,所述設(shè)定的數(shù)據(jù)存儲范圍包括:1-64位任意整型數(shù)據(jù)對應(yīng)的數(shù)值[0103]進(jìn)一步可選地,量化訓(xùn)練模塊63在根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)時,具體用于:若所述算術(shù)溢出的頻次小于或者等于設(shè)定溢出頻次閾值,則將所述計(jì)算數(shù)據(jù)作為所述目標(biāo)計(jì)算數(shù)據(jù)。[0104]進(jìn)一步可選地,溢出預(yù)測模塊62,還包括:調(diào)整子模塊623;調(diào)整子模塊623,用于:在所述算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值時,調(diào)整所述計(jì)算數(shù)據(jù),以使溢出預(yù)測模塊62根據(jù)調(diào)整后的所述計(jì)算數(shù)據(jù)執(zhí)行所述預(yù)測的步驟。[0105]進(jìn)一步可選地,調(diào)整子模塊623在對所述計(jì)算數(shù)據(jù)進(jìn)行調(diào)整時,具體用于:按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理。[0106]進(jìn)一步可選地,調(diào)整子模塊623在按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理時,執(zhí)行以下至少一種操作:按照第一縮放倍數(shù),對所述第一神經(jīng)網(wǎng)絡(luò)層的模型參數(shù)所屬的數(shù)值范圍進(jìn)行縮放處理;按照第二縮放倍數(shù)對所述第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理。[0107]進(jìn)一步可選地,所述第一縮放倍數(shù)和/或所述第二縮放倍數(shù),根據(jù)所述算術(shù)溢出的頻次確定。[0108]以下將結(jié)合神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu),對量化處理裝置進(jìn)行進(jìn)一步說明。[0109]圖7示意了對神經(jīng)網(wǎng)絡(luò)模型中的卷積層進(jìn)行量化時的典型操作環(huán)節(jié),如圖7所示,溢出預(yù)測模塊62可執(zhí)行圖7中的:縮放、量化、量化卷積以及計(jì)算算術(shù)溢出的頻次N等環(huán)節(jié)。其中,量化卷積操作是指對量化后的輸入數(shù)據(jù)執(zhí)行設(shè)定整數(shù)位的卷積操作,并將計(jì)算結(jié)果存儲為指定位數(shù)的整型數(shù)據(jù)。例如,輸入數(shù)據(jù)為8bit整形數(shù)據(jù),計(jì)算結(jié)果用16bit整數(shù)存儲。其他環(huán)節(jié)為模型量化訓(xùn)練需執(zhí)行的環(huán)節(jié),此處不做贅述。[0110]在模型量化訓(xùn)練的過程中,溢出預(yù)測模塊62可感知溢出是否發(fā)生。其中,在量化環(huán)節(jié),溢出預(yù)測模塊62可根據(jù)輸入數(shù)據(jù)的上限值、下限值,將float類型的輸入數(shù)據(jù)量化為8bit的整數(shù)。以及,可根據(jù)權(quán)重的上限值、下限值,將float類型的權(quán)重量化為8bit的整數(shù)。接著,溢出預(yù)測模塊62可在卷積-int16環(huán)節(jié)中,根據(jù)量化為8bit的輸入數(shù)據(jù)和權(quán)重進(jìn)行卷積計(jì)算,并將卷積計(jì)算的結(jié)果和int16的取值范圍進(jìn)行對比,以預(yù)測卷積層發(fā)生算術(shù)溢出的頻次N。若算術(shù)溢出的頻次N大于設(shè)定的溢出頻次閾值,則溢出預(yù)測模塊62可在縮放環(huán)節(jié),相應(yīng)地縮放輸入數(shù)據(jù)的上下限范圍,以及權(quán)重的上下限范圍,并重新執(zhí)行量化環(huán)節(jié)的操作,直至算術(shù)溢出的頻次N小于或者等于設(shè)定的溢出頻次閾值。[0111]上述結(jié)構(gòu)的優(yōu)勢在于,第一方面,通過縮放輸入數(shù)據(jù)的上下限范圍以及權(quán)重的上下限范圍,達(dá)到控制量化映射范圍的目的,克服采用固定bit進(jìn)行量化操作的缺點(diǎn),可將待量化的數(shù)據(jù)映射到任意的范圍十分靈活。第二方面,溢出的控制和訓(xùn)練任務(wù)相關(guān),可以做到在不溢出的前提下,將待量化的數(shù)據(jù)映射盡可能大的整數(shù)范圍,從而能夠保證模型的容量不被過度壓縮。第三方面,溢出預(yù)測模塊62可以和訓(xùn)練時量化的環(huán)節(jié)同時工作,能夠保障量化模型精準(zhǔn)度。[0112]圖8示意了本申請一示例性實(shí)施例提供的電子設(shè)備的結(jié)構(gòu)示意圖,如圖8所示,該電子設(shè)備包括:存儲器801、處理器802以及通信組件803。[0113]存儲器801,用于存儲計(jì)算機(jī)程序,并可被配置為存儲其它各種數(shù)據(jù)以支持在電子設(shè)備上的操作。這些數(shù)據(jù)的示例包括用于在電子設(shè)備上操作的任何應(yīng)用程序或方法的指[0114]其中,存儲器801可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。[0115]處理器802,與存儲器801耦合,用于執(zhí)行存儲器801中的計(jì)算機(jī)程序,以用于:獲取神經(jīng)網(wǎng)絡(luò)模型中的第一神經(jīng)網(wǎng)絡(luò)層所需的計(jì)算數(shù)據(jù);根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次;根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù),以對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化[0116]進(jìn)一步可選地,處理器802在根據(jù)所述計(jì)算數(shù)據(jù),預(yù)測量化后的第一神經(jīng)網(wǎng)絡(luò)層發(fā)生算術(shù)溢出的頻次時,具體用于:推理對所述計(jì)算數(shù)據(jù)的量化操作,得到量化后的計(jì)算數(shù)據(jù);根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程,得到所述第一神經(jīng)網(wǎng)絡(luò)層的中間計(jì)算結(jié)果以及輸出數(shù)據(jù);根據(jù)所述中間計(jì)算結(jié)果、所述輸出數(shù)據(jù)以及設(shè)定的數(shù)據(jù)存儲范圍,計(jì)算所述算術(shù)溢出的頻次。[0117]進(jìn)一步可選地,處理器802在推理對所述計(jì)算數(shù)據(jù)的量化操作時,具體用于:根據(jù)所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍以及設(shè)定位數(shù)的整型數(shù)據(jù)所屬的數(shù)值范圍,確定量化映射關(guān)系;根據(jù)所述量化映射關(guān)系,將所述計(jì)算數(shù)據(jù)映射為所述設(shè)定位數(shù)的整型的計(jì)算數(shù)據(jù)。[0118]進(jìn)一步可選地,所述設(shè)定位數(shù)的整型的計(jì)算數(shù)據(jù)包括:整型的模型參數(shù)以及整型的輸入數(shù)據(jù);處理器802在根據(jù)所述量化后的計(jì)算數(shù)據(jù),推理量化后的第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算過程時,具體用于:根據(jù)所述整型的模型參數(shù)和所述整型的輸入數(shù)據(jù),按照第一神經(jīng)網(wǎng)絡(luò)層的計(jì)算邏輯,對所述第一神經(jīng)網(wǎng)絡(luò)層量化后的計(jì)算過程進(jìn)行整數(shù)計(jì)算。[0120]進(jìn)一步可選地,處理器802在根據(jù)所述算術(shù)溢出的頻次和所述計(jì)算數(shù)據(jù),確定用于對所述第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)時,具體用于:若所述算術(shù)溢出的頻次小于或者等于設(shè)定溢出頻次閾值,則將所述計(jì)算數(shù)據(jù)作為所述目標(biāo)計(jì)算數(shù)據(jù);若所述算術(shù)溢出的頻次大于設(shè)定溢出頻次閾值,則對所述計(jì)算數(shù)據(jù)進(jìn)行調(diào)整,并根據(jù)調(diào)整后的所述計(jì)算數(shù)據(jù)重新執(zhí)行所述預(yù)測的步驟。[0121]進(jìn)一步可選地,處理器802在對所述計(jì)算數(shù)據(jù)進(jìn)行調(diào)整時,具體用于:按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理。[0122]進(jìn)一步可選地,處理器802在按照設(shè)定的縮放倍數(shù)對所述計(jì)算數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理時,執(zhí)行以下至少一種操作:按照第一縮放倍數(shù),對所述第一神經(jīng)網(wǎng)絡(luò)層的模型參數(shù)所屬的數(shù)值范圍進(jìn)行縮放處理;按照第二縮放倍數(shù)對所述第一神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù)所屬的數(shù)值范圍進(jìn)行縮放處理。[0123]進(jìn)一步可選地,所述第一縮放倍數(shù)和/或所述第二縮放倍數(shù),根據(jù)所述算術(shù)溢出的頻次確定。[0124]進(jìn)一步,如圖8所示,該電子設(shè)備還包括:顯示器804、電源組件805等其它組件。圖8中僅示意性給出部分組件,并不意味著電子設(shè)備只包括圖8所示組件。[0125]其中,通信組件803被配置為便于通信組件所在設(shè)備和其他設(shè)備之間有線或無線方式的通信。通信組件所在設(shè)備可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi,2G、3G、4G或5G,或它們的組合。在一個示例性實(shí)施例中,通信組件經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實(shí)施例中,通信組件可基于近場通信(NFC)其他技術(shù)來實(shí)現(xiàn)。[0126]其中,顯示器804包括屏幕,其屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓[0127]其中,電源組件805,為電源組件所在設(shè)備的各種組件提供電力。電源組件可以包括電源管理系統(tǒng),一個或多個電源,及其他與為電源組件所在設(shè)備生成、管理和分配電力相關(guān)聯(lián)的組件。[0128]本實(shí)施例中,在對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行量化訓(xùn)練的過程中,預(yù)測神經(jīng)網(wǎng)絡(luò)模型中任一神經(jīng)網(wǎng)絡(luò)層量化后發(fā)生算術(shù)溢出的頻次,并根據(jù)預(yù)測的算術(shù)溢出的頻次確定用于對第一神經(jīng)網(wǎng)絡(luò)層進(jìn)行量化訓(xùn)練的目標(biāo)計(jì)算數(shù)據(jù)?;谶@種方式,便于對量化后的神經(jīng)網(wǎng)絡(luò)模型的溢出情況進(jìn)行控制,有利于提升神經(jīng)網(wǎng)絡(luò)模型的量化操作的靈活性。[0129]相應(yīng)地,本申請實(shí)施例還提供一種存儲有計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)程序被執(zhí)行時能夠?qū)崿F(xiàn)上述方法實(shí)施例中可由電子設(shè)備執(zhí)行的各步驟。[0130]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。[0131]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論