Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions
arXiv:1803.09926
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 training speedup on Darknet, on Caffe, on PyTorch, on MXNet, and on TensorFlow, compared to their original implementations of depthwise convolutions.
arXiv comment8 pages, 5 figures
References in corpus (17)
- Very Deep Convolutional Networks for Large-Scale Image Recognition
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- Caffe: Convolutional Architecture for Fast Feature Embedding
- MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems
- BinaryConnect: Training Deep Neural Networks with binary weights during propagations
- DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients
- Exploiting Linear Structure Within Convolutional Networks for Efficient Evaluation
- cuDNN: Efficient Primitives for Deep Learning
- Incremental Network Quantization: Towards Lossless CNNs with Low-Precision Weights
- YOLO9000: Better, Faster, Stronger
- Aggregated Residual Transformations for Deep Neural Networks
- Xception: Deep Learning with Depthwise Separable Convolutions
- Channel Pruning for Accelerating Very Deep Neural Networks
- Speeding-up Convolutional Neural Networks Using Fine-tuned CP-Decomposition
- Speed/accuracy trade-offs for modern convolutional object detectors
- Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions