Splitting Convolutional Neural Network Structures for Efficient Inference

For convolutional neural networks (CNNs) that have a large volume of input data, memory management becomes a major concern. Memory cost reduction can be an effective way to deal with these problems that can be realized through different techniques such as feature map pruning, input data splitting, etc. Among various methods existing in this area of research, splitting the network structure is an interesting research field, and there are a few works done in this area. In this study, the problem of reducing memory utilization using network structure splitting is addressed. A new technique is proposed to split the network structure into small parts that consume lower memory than the original network. The split parts can be processed almost separately, which provides an essential role for better memory management. The split approach has been tested on two well-known network structures of VGG16 and ResNet18 for the classification of CIFAR10 images. Simulation results show that the splitting method reduces both the number of computational operations as well as the amount of memory consumption.

[1]  Noam Shazeer,et al.  HydraNets: Specialized Dynamic Architectures for Efficient Inference , 2018, 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.

[2]  Nader Karimi,et al.  Hierarchical Pruning for Simplification of Convolutional Neural Networks in Diabetic Retinopathy Classification , 2019, 2019 41st Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC).

[3]  Martin Wistuba,et al.  A Survey on Neural Architecture Search , 2019, ArXiv.

[4]  Tian Jin,et al.  Split-CNN: Splitting Window-based Operations in Convolutional Neural Networks for Memory System Optimization , 2019, ASPLOS.

[5]  Jonathon S. Hare,et al.  Deep Cascade Learning , 2018, IEEE Transactions on Neural Networks and Learning Systems.

[6]  Jianxin Wu,et al.  ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression , 2017, 2017 IEEE International Conference on Computer Vision (ICCV).

[7]  Priyadarshini Panda,et al.  Tree-CNN: A hierarchical Deep Convolutional Neural Network for incremental learning , 2018, Neural Networks.

[8]  Hanan Samet,et al.  Pruning Filters for Efficient ConvNets , 2016, ICLR.

[9]  Vivienne Sze,et al.  Efficient Processing of Deep Neural Networks: A Tutorial and Survey , 2017, Proceedings of the IEEE.

[10]  Mark Horowitz,et al.  1.1 Computing's energy problem (and what we can do about it) , 2014, 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC).

[11]  Jan-Michael Frahm,et al.  Hierarchy of Alternating Specialists for Scene Recognition , 2018, ECCV.

[12]  Kaushik Roy,et al.  Incremental Learning in Deep Convolutional Neural Networks Using Partial Network Sharing , 2017, IEEE Access.

[13]  Nader Karimi,et al.  Multiple Abnormality Detection for Automatic Medical Image Diagnosis Using Bifurcated Convolutional Neural Network , 2018, Biomed. Signal Process. Control..

[14]  Sherief Reda,et al.  Flexible Deep Neural Network Processing , 2018, ArXiv.

[15]  Xiaogang Wang,et al.  Deep Convolutional Network Cascade for Facial Point Detection , 2013, 2013 IEEE Conference on Computer Vision and Pattern Recognition.

[16]  Mingming Wang,et al.  Multi-path Convolutional Neural Networks for Complex Image Classification , 2015, ArXiv.

[17]  Yuanyuan Zhang,et al.  Adaptive Convolutional Neural Network and Its Application in Face Recognition , 2016, Neural Processing Letters.

[18]  Shadrokh Samavi,et al.  Modeling Neural Architecture Search Methods for Deep Networks , 2019, ArXiv.

[19]  Alexander Wong,et al.  MonolithNet: Training monolithic deep neural networks via a partitioned training strategy , 2018 .