  Convolutional Neural Network (CNN) has an amount of parameter redundancy,
filter pruning aims to remove the redundant filters and provides the
possibility for the application of CNN on terminal devices. However, previous
works pay more attention to designing evaluation criteria of filter importance
and then prune less important filters with a fixed pruning rate or a fixed
number to reduce convolutional neural networks' redundancy. It does not
consider how many filters to reserve for each layer is the most reasonable
choice. From this perspective, we propose a new filter pruning method by
searching the proper number of filters (SNF). SNF is dedicated to searching for
the most reasonable number of reserved filters for each layer and then pruning
filters with specific criteria. It can tailor the most suitable network
structure at different FLOPs. Filter pruning with our method leads to the
state-of-the-art (SOTA) accuracy on CIFAR-10 and achieves competitive
performance on ImageNet ILSVRC-2012.SNF based on the ResNet-56 network achieves
an increase of 0.14% in Top-1 accuracy at 52.94% FLOPs reduction on CIFAR-10.
Pruning ResNet-110 on CIFAR-10 also improves the Top-1 accuracy of 0.03% when
reducing 68.68% FLOPs. For ImageNet, we set the pruning rates as 52.10% FLOPs,
and the Top-1 accuracy only has a drop of 0.74%. The codes can be available at
https://github.com/pk-l/SNF.
