Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions

Zheng Qin, Zhaoning Zhang, Dongsheng Li, Yiming Zhang, Yuxing Peng
3/27/2018
cs.CV

Official code: qinzheng93/diagonalwise-refactorization-caffe (34 stars, last commit 2017-12-29). 2 more implementations below.

Abstract

Depthwise convolutions provide significant performance benefits owing to the reduction in both parameters and mult-adds. However, training depthwise convolution layers with GPUs is slow in current deep learning frameworks because their implementations cannot fully utilize the GPU capacity. To address this problem, in this paper we present an efficient method (called diagonalwise refactorization) for accelerating the training of depthwise convolution layers. Our key idea is to rearrange the weight vectors of a depthwise convolution into a large diagonal weight matrix so as to convert the depthwise convolution into one single standard convolution, which is well supported by the cuDNN library that is highly-optimized for GPU computations. We have implemented our training method in five popular deep learning frameworks. Evaluation results show that our proposed method gains $15.4\times$ training speedup on Darknet, $8.4\times$ on Caffe, $5.4\times$ on PyTorch, $3.5\times$ on MXNet, and $1.4\times$ on TensorFlow, compared to their original implementations of depthwise convolutions.

View on arXivView PDF

Code Implementations(3)

Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions (in Caffe)

342C++, CudaJun 8, 20178 years agoNOASSERTION
MIT

Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions (in PyTorch)

213PythonNov 14, 20178 years agoMIT

Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions (in TensorFlow)

61PythonNov 14, 20178 years ago

Cite this paper

@article{qin2018diagonalwise,
  title  = {Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions},
  author = {Zheng Qin and Zhaoning Zhang and Dongsheng Li and Yiming Zhang and Yuxing Peng},
  year   = {2018},
  eprint = {1803.09926},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1803.09926}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1803.09926.svg)](https://codeofpaper.com/paper/1803.09926)

Discussion