  This work presents a probabilistic channel pruning method to accelerate
Convolutional Neural Networks (CNNs). Previous pruning methods often zero out
unimportant channels in training in a deterministic manner, which reduces CNN's
learning capacity and results in suboptimal performance. To address this
problem, we develop a probability-based pruning algorithm, called batch
whitening channel pruning (BWCP), which can stochastically discard unimportant
channels by modeling the probability of a channel being activated. BWCP has
several merits. (1) It simultaneously trains and prunes CNNs from scratch in a
probabilistic way, exploring larger network space than deterministic methods.
(2) BWCP is empowered by the proposed batch whitening tool, which is able to
empirically and theoretically increase the activation probability of useful
channels while keeping unimportant channels unchanged without adding any extra
parameters and computational cost in inference. (3) Extensive experiments on
CIFAR-10, CIFAR-100, and ImageNet with various network architectures show that
BWCP outperforms its counterparts by achieving better accuracy given limited
computational budgets. For example, ResNet50 pruned by BWCP has only 0.70\%
Top-1 accuracy drop on ImageNet, while reducing 43.1\% FLOPs of the plain
ResNet50.
