
摘要
许多应用场景由于存储空间或推理时间的限制,需要使用稀疏神经网络。尽管已有大量研究致力于通过训练稠密网络来获得可用于推理的稀疏网络,但这种方法将最大可训练稀疏模型的规模限制在了最大可训练稠密模型的范围内。本文提出一种新方法,能够在训练过程中始终保持稀疏网络的参数量和计算成本固定,同时不牺牲相对于现有稠密到稀疏训练方法的精度。该方法通过利用参数的大小以及低频的梯度计算,在训练过程中动态更新稀疏网络的拓扑结构。我们证明,与以往技术相比,该方法在达到相同精度水平时所需的浮点运算量(FLOPs)更少。我们在多种网络架构和数据集上实现了当前最优的稀疏训练性能,包括在ImageNet-2012上的ResNet-50和MobileNets,以及在WikiText-103上的RNN模型。最后,我们对为何在优化过程中允许拓扑结构动态变化能够帮助摆脱静态拓扑所导致的局部极小值问题,提供了若干理论洞察。本文所用代码可在 github.com/google-research/rigl 获取。
代码仓库
google-research/rigl
官方
tf
GitHub 中提及
nollied/rigl-torch
pytorch
GitHub 中提及
stevenboys/moon
pytorch
GitHub 中提及
vita-group/granet
pytorch
GitHub 中提及
verbose-avocado/rigl-torch
pytorch
GitHub 中提及
varun19299/rigl-reproducibility
官方
pytorch
GitHub 中提及
calgaryml/condensed-sparsity
pytorch
GitHub 中提及
hyeon95y/sparselinear
pytorch
GitHub 中提及
Shiweiliuiiiiiii/In-Time-Over-Parameterization
pytorch
GitHub 中提及
stevenboys/agent
pytorch
GitHub 中提及
Shiweiliuiiiiiii/GraNet
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| sparse-learning-on-imagenet | MobileNet-v1: 75% Sparse | Top-1 Accuracy: 71.9 |
| sparse-learning-on-imagenet | Resnet-50: 80% Sparse | Top-1 Accuracy: 77.1 |
| sparse-learning-on-imagenet | MobileNet-v1: 90% Sparse | Top-1 Accuracy: 68.1 |
| sparse-learning-on-imagenet | Resnet-50: 90% Sparse | Top-1 Accuracy: 76.4 |