Neural networks performance has been significantly improved in the last few years, at the cost of an increasing number of floating point operations per second (FLOPs). However, more FLOPs can be an issue when computational resources are limited. As an attempt to solve this problem, pruning filters is a common solution, but most existing pruning methods do not preserve the model accuracy efficiently and therefore require a large number of finetuning epochs. In this paper, we propose an automatic pruning method that learns which neurons to preserve in order to maintain the model accuracy while reducing the FLOPs to a predefined target. To accomplish this task, we introduce a trainable bottleneck that only requires one single epoch with 25.6% (CIFAR-10) or 7.49% (ILSVRC2012) of the dataset to learn which filters to prune. Experiments on various architectures and datasets show that the proposed method can not only preserve the accuracy after pruning but also outperform existing methods after finetuning. We achieve a 52.00% FLOPs reduction on ResNet-50, with a Top-1 accuracy of 47.51% after pruning and a state-of-the-art (SOTA) accuracy of 76.63% after finetuning on ILSVRC2012. Code available at https://github.com/nota-github/autobot_AAAI23.
翻译:过去几年来,以每秒(FLOPs)越来越多的浮动点操作(FLOPs)为代价,神经网络的性能有了显著改善。然而,在计算资源有限的情况下,更多的FLOPs可能会成为一个问题。为了解决这个问题,运行过滤器是一个常见的解决方案,但大多数现有的修剪方法并不能够有效地维护模型的准确性,因此需要大量的微调时代。在本文中,我们建议了自动修剪方法,以学习哪些神经系统需要保存以维持模型精确度,同时将FLOPs减到预定义的目标。要完成这项任务,我们引入了一个可训练的瓶子,只需要一个有25.6%(CIFAR-10)或7.49 %(ILSVRC-2012)的数据集来学习12号过滤器。对各种架构和数据集的实验表明,拟议的方法不仅可以维护流程后的准确性,而且经过微调后也超越了现有方法。我们在ResNet-A-50号(IMO-A-RA-R)的精确度后,我们实现了52.00%FLOPs-O-A-A-addirationalation a State Realation of ResNet-SODIS_A.