In deep learning, pruning is the practice of removing parameters from an existing artificial neural network. [1] The goal of this process is to reduce the size (parameter count) of the neural network (and therefore the computational resources required to run it) whilst maintaining accuracy. This can be compared to the biological process of synaptic pruning which takes place in mammalian brains during development [2] .
A basic algorithm for pruning is as follows: [3] [4]
Most work on neural network pruning focuses on removing weights, namely, setting their values to zero. Early work suggested to also change the values of non-pruned weights. [5]