高效卷積運算 DSConv: Efficient Convolution Operator
前排提示:作者機構有牛津大學,2019年1月7號提交於arxiv
鏈接:DSConv: Efficient Convolution Operator
摘要:
We introduce a variation of the convolutional layer called DSConv (Distribution Shifting Convolution) that can be readily substituted into standard neural network architectures and achieve both lower memory usage and higher computational speed. DSConv breaks down the traditional convolution kernel into two components: Variable Quantized Kernel (VQK), and Distribution Shifts. Lower memory usage and higher speeds are achieved by storing only integer values in the VQK, whilst preserving the same output as the original convolution by applying both kernel and channel based distribution shifts. We test DSConv in ImageNet on ResNet50 and 34, as well as AlexNet and MobileNet. We achieve a reduction in memory usage of up to 14x in the convolutional kernels and speed up operations of up to 10x by substituting floating point operations to integer operations. Furthermore, unlike other quantization approaches, our work allows for a degree of retraining to new tasks and datasets.
我們引入了一種卷積層的變體,稱為DSConv(分布偏移卷積),其可以容易地替換進標準神經網路體系結構並且實現較低的存儲器使用和較高的計算速度。 DSConv將傳統的卷積內核分解為兩個組件:可變數化內核(VQK)和分布偏移。 通過在VQK中僅存儲整數值來實現較低的存儲器使用和較高的速度,同時通過應用基於內核和基於通道的分布偏移來保持與原始卷積相同的輸出。 我們在ResNet50和34以及AlexNet和MobileNet上對ImageNet數據集測試了DSConv。 我們通過將浮點運算替換為整數運算,在卷積內核中實現了高達14x的內存使用量減少,並將運算速度提高了10倍。 此外,與其他量化方法不同,我們的工作允許對新任務和數據集進行一定程度的再訓練。
我略讀後的感受就是將原始的浮點卷積核參數,進行量化,然後再通過分布偏移再近似還原為原始參數,從而實現內存減少的運算的加快。同時摘要所言,DSConv將傳統的卷積內核分解為兩個組件:可變數化內核(VQK)和分布偏移。這個結構可以直接替換原始的卷積層,使得在現有的網路中應用很方便,用作者的話說就像是一個插件。(想法看起來很簡單,大道至簡啊,但總感覺和批次歸一化有點像)
結果對比:網路結構大小減少了很多,準確率下降很少(如果重新訓練refine,準確率下降更少)
推薦閱讀:
TAG:深度學習(DeepLearning) | 圖像處理 | 機器學習 |