深度學習模型優化方法有:
(1)模型壓縮:模型權重量化、模型權重稀疏、模型通道剪枝
(2)優化推理引擎:TVM、tensorRT、OpenVINO
模型壓縮
(1)quantization:模型權重量化
(2)sparsification:模型權重稀疏
(3)channel pruning:模型通道剪枝
https://www.jiqizhixin.com/articles/2019-08-07-3
https://zhuanlan.zhihu.com/p/77275130
https://blog.csdn.net/shentanyue/article/details/83539359
(4)Distilling:模型蒸餾
先訓練好一個大網絡,在最后的softmax層使用合適的溫度參數T,最后訓練得到的概率稱為“軟目標”。以這個軟目標和真實標簽作為目標,去訓練一個比較小的網絡,訓練的時候也使用在大模型中確定的溫度參數T
https://zhuanlan.zhihu.com/p/39945855
https://www.cnblogs.com/liaohuiqiang/p/9170582.html
weights quantization 和 sparsification 屬於非結構化的壓縮,需要推理引擎和硬件的優化才能實現推理加速。
優化推理引擎
(1)Intel 的 OpenVINO
(2)NVIDA 的 tensorRT
(3)ARM 的 Tengine:https://github.com/OAID/Tengine
(4)Tencent 針對移動端應用推出 NCNN
(5)TVM
(6)XLA 方案?
Cost Functions
線性回歸的均方誤差、邏輯回歸(即分類問題)的交叉熵
https://blog.csdn.net/wyisfish/article/details/78050225
https://www.tensorflow.org/api_docs/python/tf/keras/losses
https://machinelearningmastery.com/how-to-choose-loss-functions-when-training-deep-learning-neural-networks/
L1、L2 Regularization
L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特征選擇
L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合
https://blog.csdn.net/jinping_shi/article/details/52433975
卷積層的計算優化
https://blog.csdn.net/qq_32998593/article/details/86177151
卷積層的計算優化 im2col: https://blog.csdn.net/dwyane12138/article/details/78449898
卷積層的計算優化 Winograd:https://www.cnblogs.com/shine-lee/p/10906535.html