Learning to Prune Filters in Convolutional Neural Networks
Preprint
Abstract
Many state-of-the-art computer vision algorithms use large scale convolutional neural networks (CNNs) as basic building blocks. These CNNs are known for their huge number of parameters, high redundancy in weights, and tremendous computing resource consumptions. This paper presents a learning algorithm to simplify and speed up these CNNs. Specifically, we introduce a "try-and-learn" algorithm to train pruning agents that remove unnecessary CNN filters in a data-driven way. With the help of a novel reward function, our agents removes a significant number of filters in CNNs while maintaining performance at a desired level. Moreover, this method provides an easy control of the tradeoff between network performance and its scale. Per- formance of our algorithm is validated with comprehensive pruning experiments on several popular CNNs for visual recognition and semantic segmentation tasks.Keywords
All Related Versions
This publication has 6 references indexed in Scilit:
- SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image SegmentationIEEE Transactions on Pattern Analysis and Machine Intelligence, 2017
- Mastering the game of Go with deep neural networks and tree searchNature, 2016
- Data-free Parameter Pruning for Deep Neural Networks2015
- The Pascal Visual Object Classes Challenge: A RetrospectiveInternational Journal of Computer Vision, 2014
- Speeding up Convolutional Neural Networks with Low Rank Expansions2014
- Semantic object classes in video: A high-definition ground truth databasePattern Recognition Letters, 2009