33.1 TensorRT如何優(yōu)化重構(gòu)模型
| 條件 | 方法 |
|---|---|
| 若訓(xùn)練的網(wǎng)絡(luò)模型包含TensorRT支持的操作 | 1、對(duì)于Caffe與TensorFlow訓(xùn)練的模型,若包含的操作都是TensorRT支持的,則可以直接由TensorRT優(yōu)化重構(gòu) |
| 2、對(duì)于MXnet, PyTorch或其他框架訓(xùn)練的模型,若包含的操作都是TensorRT支持的,可以采用TensorRT API重建網(wǎng)絡(luò)結(jié)構(gòu),并間接優(yōu)化重構(gòu); | |
| 若訓(xùn)練的網(wǎng)絡(luò)模型包含TensorRT不支持的操作 | 1、TensorFlow模型可通過(guò)tf.contrib.tensorrt轉(zhuǎn)換,其中不支持的操作會(huì)保留為T(mén)ensorFlow計(jì)算節(jié)點(diǎn); |
| 2、不支持的操作可通過(guò)Plugin API實(shí)現(xiàn)自定義并添加進(jìn)TensorRT計(jì)算圖; | |
| 3、將深度網(wǎng)絡(luò)劃分為兩個(gè)部分,一部分包含的操作都是TensorRT支持的,可以轉(zhuǎn)換為T(mén)ensorRT計(jì)算圖。另一部則采用其他框架實(shí)現(xiàn),如MXnet或PyTorch; |
33.2 TensorRT加速效果如何
- 以下是在TitanX (Pascal)平臺(tái)上,TensorRT對(duì)大型分類網(wǎng)絡(luò)的優(yōu)化加速效果:
| Network | Precision | Framework/GPU:TitanXP | Avg.Time(Batch=8,unit:ms) | Top1 Val.Acc.(ImageNet-1k) |
|---|---|---|---|---|
| Resnet50 | fp32 | TensorFlow | 24.1 | 0.7374 |
| Resnet50 | fp32 | MXnet | 15.7 | 0.7374 |
| Resnet50 | fp32 | TRT4.0.1 | 12.1 | 0.7374 |
| Resnet50 | int8 | TRT4.0.1 | 6 | 0.7226 |
| Resnet101 | fp32 | TensorFlow | 36.7 | 0.7612 |
| Resnet101 | fp32 | MXnet | 25.8 | 0.7612 |
| Resnet101 | fp32 | TRT4.0.1 | 19.3 | 0.7612 |
| Resnet101 | int8 | TRT4.0.1 | 9 | 0.7574 |
33.3 影響神經(jīng)網(wǎng)絡(luò)速度的4個(gè)因素
- FLOPs(FLOPs就是網(wǎng)絡(luò)執(zhí)行了多少multiply-adds操作);
- MAC(內(nèi)存訪問(wèn)成本);
- 并行度(如果網(wǎng)絡(luò)并行度高,速度明顯提升);
- 計(jì)算平臺(tái)(GPU,ARM)
33.4 壓縮和加速方法如何選擇
1)對(duì)于在線計(jì)算內(nèi)存存儲(chǔ)有限的應(yīng)用場(chǎng)景或設(shè)備,可以選擇參數(shù)共享和參數(shù)剪枝方法,特別是二值量化權(quán)值和激活、結(jié)構(gòu)化剪枝.其他方法雖然能夠有效的壓縮模型中的權(quán)值參數(shù),但無(wú)法減小計(jì)算中隱藏的內(nèi)存大?。ㄈ缣卣鲌D).
2)如果在應(yīng)用中用到的緊性模型需要利用預(yù)訓(xùn)練模型,那么參數(shù)剪枝、參數(shù)共享以及低秩分解將成為首要考慮的方法.相反地,若不需要借助預(yù)訓(xùn)練模型,則可以考慮緊性濾波設(shè)計(jì)及知識(shí)蒸餾方法.
3)若需要一次性端對(duì)端訓(xùn)練得到壓縮與加速后模型,可以利用基于緊性濾波設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)壓縮與加速方法.
4)一般情況下,參數(shù)剪枝,特別是非結(jié)構(gòu)化剪枝,能大大壓縮模型大小,且不容易丟失分類精度.對(duì)于需要穩(wěn)定的模型分類的應(yīng)用,非結(jié)構(gòu)化剪枝成為首要選擇.
5)若采用的數(shù)據(jù)集較小時(shí),可以考慮知識(shí)蒸餾方法.對(duì)于小樣本的數(shù)據(jù)集,學(xué)生網(wǎng)絡(luò)能夠很好地遷移教師模型的知識(shí),提高學(xué)生網(wǎng)絡(luò)的判別性.
6)主流的5個(gè)深度神經(jīng)網(wǎng)絡(luò)壓縮與加速算法相互之間是正交的,可以結(jié)合不同技術(shù)進(jìn)行進(jìn)一步的壓縮與加速.如:
- 結(jié)合了參數(shù)剪枝和參數(shù)共享
- 結(jié)合了參數(shù)剪枝和低秩分解
- 此外對(duì)于特定的應(yīng)用場(chǎng)景,如目標(biāo)檢測(cè),可以對(duì)卷積層和全連接層使用不同的壓縮與加速技術(shù)分別處理
大數(shù)據(jù)視頻推薦:
網(wǎng)易云課堂
CSDN
人工智能算法競(jìng)賽實(shí)戰(zhàn)
AIops智能運(yùn)維機(jī)器學(xué)習(xí)算法實(shí)戰(zhàn)
ELK7 stack開(kāi)發(fā)運(yùn)維實(shí)戰(zhàn)
PySpark機(jī)器學(xué)習(xí)從入門(mén)到精通
AIOps智能運(yùn)維實(shí)戰(zhàn)
騰訊課堂
大數(shù)據(jù)語(yǔ)音推薦:
ELK7 stack開(kāi)發(fā)運(yùn)維
企業(yè)級(jí)大數(shù)據(jù)技術(shù)應(yīng)用
大數(shù)據(jù)機(jī)器學(xué)習(xí)案例之推薦系統(tǒng)
自然語(yǔ)言處理
大數(shù)據(jù)基礎(chǔ)
人工智能:深度學(xué)習(xí)入門(mén)到精通