Vitis AI 是AMD 開發(fā)套件,用于在 AMD 硬件平臺上進(jìn)行 AI 推斷。機(jī)器學(xué)習(xí)中的推斷是計(jì)算密集型流程,需要大量存儲器帶寬以滿足各種應(yīng)用的低時(shí)延和高吞吐量要求。
Vitis AI Optimizer(優(yōu)化器)支持對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行最優(yōu)化。當(dāng)前,Vitis AI 優(yōu)化器僅包含一項(xiàng)工具,稱為“pruner”(剪枝器)。Vitis AI 優(yōu)化器用于移除神經(jīng)網(wǎng)絡(luò)中的冗余內(nèi)核,從而減少推斷的總體計(jì)算成本。由 Vitis AI 剪枝器所生成的剪枝后的模型隨后由 Vitis AI 量化器進(jìn)行量化,然后部署到 AMD FPGA、SoC 或 ACAP 器件。
VAI優(yōu)化器
本文檔涵蓋了以下設(shè)計(jì)進(jìn)程:機(jī)器學(xué)習(xí)和數(shù)據(jù)研究——將機(jī)器學(xué)習(xí)模型從 PyTorch、TensorFlow 或其它熱門框架導(dǎo)入 Vitis AI,然后對其有效性進(jìn)行最優(yōu)化和評估。本文檔中適用于此設(shè)計(jì)進(jìn)程的主題包括:
?第 2 章:剪枝
?第 3 章:處理 Vitis AI 優(yōu)化器
由于版面有限,本文選取了剪枝章節(jié)中的部分內(nèi)容進(jìn)行分享。如果您希望獲取完整版用戶指南,請至文末掃描二維碼下載完整版進(jìn)行瀏覽。
剪枝
神經(jīng)網(wǎng)絡(luò)通常過度參數(shù)化,具有大量冗余。剪枝是消除冗余權(quán)重同時(shí)盡可能使準(zhǔn)確度損失保持處于低位的進(jìn)程。
低精度剪枝和高精度剪枝
行業(yè)研究帶來了多項(xiàng)有助于降低神經(jīng)網(wǎng)絡(luò)推斷成本的技術(shù)。這些技術(shù)包括:
點(diǎn)擊查看詳細(xì)內(nèi)容
迭代剪枝與單步剪枝的對比
下表中顯示了這兩種方法的對比。
迭代剪枝
剪枝器旨在減少模型參數(shù)數(shù)量,同時(shí)盡可能降低準(zhǔn)確度損失。這是通過迭代方式來完成的,如下圖所示。剪枝導(dǎo)致準(zhǔn)確度降低,重新訓(xùn)練可恢復(fù)準(zhǔn)確度。剪枝隨后重新訓(xùn)練即構(gòu)成一次迭代。在剪枝的首次迭代中,輸入模型是基線模型,并且已經(jīng)過剪枝和精調(diào)。在后續(xù)迭代中,從先前迭代所獲取的精調(diào)后的模型會變?yōu)樾碌幕€。此進(jìn)程通常會重復(fù)數(shù)次,直至獲取期望的稀疏模型。迭代方法是必需的,因?yàn)樵趩未蝹鬟f中無法在維持準(zhǔn)確度的同時(shí)進(jìn)行模型剪枝。如果一次迭代移除的參數(shù)過多,那么準(zhǔn)確度損失可能過于劇烈,可能無法恢復(fù)。
利用迭代剪枝的進(jìn)程,可以達(dá)到更高的剪枝率,同時(shí)模型性能不會出現(xiàn)顯著損失。
迭代剪枝
以下描述了迭代剪枝的 4 個主要階段:
分析:對模型執(zhí)行敏感度分析,判定最優(yōu)剪枝策略。
剪枝:減少輸入模型中的計(jì)算次數(shù)。
精調(diào):重新訓(xùn)練已剪枝的模型以恢復(fù)準(zhǔn)確度。
變換:生成含更低權(quán)重的密集模型。
迭代剪枝工作流程
步驟1
分析原始基線模型。
步驟2
對模型進(jìn)行剪枝。
步驟3
對剪枝后的模型進(jìn)行精調(diào)。
步驟4
多次重復(fù)步驟 2 和 3,直至在準(zhǔn)確度與稀疏度之間達(dá)成期望的平衡。
步驟5
將剪枝后的稀疏模型變換為最終密集加密的模型,以供在 Vitis AI 量化器中使用。
單步剪枝
單步剪枝會實(shí)現(xiàn)EagleEye1算法。它僅通過采用了一個簡單而又高效的評估組件,就得以在不同的已剪枝模型及其對應(yīng)精調(diào)準(zhǔn)確度之間引入強(qiáng)大的正關(guān)聯(lián),這個組件名為自適應(yīng)批量歸一化。它使您無需實(shí)際進(jìn)行模型精調(diào),即可獲取可能達(dá)成的準(zhǔn)確度最高的子網(wǎng)絡(luò)。簡而言之,單步剪枝方法會搜索一群滿足所需模型大小的子網(wǎng)絡(luò)(即,生成的剪枝后模型),并選擇其中最有潛力的子網(wǎng)絡(luò)。隨后,通過對所選子網(wǎng)絡(luò)進(jìn)行重新訓(xùn)練來恢復(fù)準(zhǔn)確度。
剪枝步驟如下所示: | |
1 | 搜索滿足所需剪枝率的子網(wǎng)絡(luò)。 |
2 | 從一群具有評估組件的子網(wǎng)絡(luò)中選擇潛在網(wǎng)絡(luò)。 |
3 | 對剪枝后的模型進(jìn)行精調(diào)。 |
單步剪枝工作流程
注釋:
1.Bailin Li et al., EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning, arXiv:2007.02491
剪枝方法的選擇指南
Vitis AI 優(yōu)化器中為 PyTorch 提供了 3 種剪枝方法。請參閱以下決策樹以選擇適合您的網(wǎng)絡(luò)的方法。
在PyTorch中選擇剪枝方法的流程圖
審核編輯 :李倩
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103497 -
模型
+關(guān)注
關(guān)注
1文章
3516瀏覽量
50363
原文標(biāo)題:Vitis AI 優(yōu)化器用戶指南
文章出處:【微信號:賽靈思,微信公眾號:Xilinx賽靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用AMD Vitis進(jìn)行嵌入式設(shè)計(jì)開發(fā)用戶指南

TLV803EA29DPW-EVM 4針電壓監(jiān)控器用戶指南

TPS3840EVM電壓監(jiān)控器用戶指南

TPS659118 66AK2G02處理器用戶指南

雙向DC-DC轉(zhuǎn)換器用戶指南

UCC39002高級負(fù)載共享控制器用戶指南

UCC28019A EVM 350W PFC轉(zhuǎn)換器用戶指南

TMS320DM644x DMSoC ATA控制器用戶指南

TMS320C645x DSP 64位定時(shí)器用戶指南

TLV840EVM電壓監(jiān)控器用戶指南

TLV841EVM電壓監(jiān)控器用戶指南

德州儀器(TI)磁感應(yīng)仿真器用戶指南

TPS3704Q1EVM電壓監(jiān)控器用戶指南

評論