Designing Energy-Efficient Convolutional Neural Networks
using Energy-Aware Pruning
Abstract
Deep convolutional neural networks (CNNs) are indispensable to state-of-the-art computer vision algorithms.
However, they are still rarely deployed on battery-powered
mobile devices, such as smartphones and wearable gadgets, where vision algorithms can enable many revolutionary real-world applications. The key limiting factor is the
high energy consumption of CNN processing due to its high
computational complexity. While there are many previous
efforts that try to reduce the CNN model size or the amount
of computation, we find that they do not necessarily result
in lower energy consumption. Therefore, these targets do
not serve as a good metric for energy cost estimation.
To close the gap between CNN design and energy consumption optimization, we propose an energy-aware pruning algorithm for CNNs that directly uses the energy consumption of a CNN to guide the pruning process. The energy estimation methodology uses parameters extrapolated
from actual hardware measurements. The proposed layerby-layer pruning algorithm also prunes more aggressively
than previously proposed pruning methods by minimizing
the error in the output feature maps instead of the filter
weights. For each layer, the weights are first pruned and
then locally fine-tuned with a closed-form least-square solution to quickly restore the accuracy. After all layers are
pruned, the entire network is globally fine-tuned using backpropagation. With the proposed pruning method, the energy consumption of AlexNet and GoogLeNet is reduced by
3.7× and 1.6×, respectively, with less than 1% top-5 accuracy loss. We also show that reducing the number of target
classes in AlexNet greatly decreases the number of weights,
but has a limited impact on energy consumption