  We propose an efficient and unified framework, namely ThiNet, to
simultaneously accelerate and compress CNN models in both training and
inference stages. We focus on the filter level pruning, i.e., the whole filter
would be discarded if it is less important. Our method does not change the
original network structure, thus it can be perfectly supported by any
off-the-shelf deep learning libraries. We formally establish filter pruning as
an optimization problem, and reveal that we need to prune filters based on
statistics information computed from its next layer, not the current layer,
which differentiates ThiNet from existing methods. Experimental results
demonstrate the effectiveness of this strategy, which has advanced the
state-of-the-art. We also show the performance of ThiNet on ILSVRC-12
benchmark. ThiNet achieves 3.31$\times$ FLOPs reduction and 16.63$\times$
compression on VGG-16, with only 0.52$\%$ top-5 accuracy drop. Similar
experiments with ResNet-50 reveal that even for a compact network, ThiNet can
also reduce more than half of the parameters and FLOPs, at the cost of roughly
1$\%$ top-5 accuracy drop. Moreover, the original VGG-16 model can be further
pruned into a very small model with only 5.05MB model size, preserving AlexNet
level accuracy but showing much stronger generalization ability.
