  Deep convolutional neural networks have been proved successful on a wide
range of tasks, yet they are still hindered by their large computation cost in
many industrial scenarios. In this paper, we propose to reduce such cost for
CNNs through a self-adaptive network pruning method (SANP). Our method
introduces a general Saliency-and-Pruning Module (SPM) for each convolutional
layer, which learns to predict saliency scores and applies pruning for each
channel. Given a total computation budget, SANP adaptively determines the
pruning strategy with respect to each layer and each sample, such that the
average computation cost meets the budget. This design allows SANP to be more
efficient in computation, as well as more robust to datasets and backbones.
Extensive experiments on 2 datasets and 3 backbones show that SANP surpasses
state-of-the-art methods in both classification accuracy and pruning rate.
