  Convolutional neural networks show outstanding results in a variety of
computer vision tasks. However, a neural network architecture design usually
faces a trade-off between model performance and computational/memory
complexity. For some real-world applications, it is crucial to develop models,
which can be fast and light enough to run on edge systems and mobile devices.
However, many modern architectures that demonstrate good performance don't
satisfy inference time and storage limitation requirements. Thus, arises a
problem of neural network compression to obtain a smaller and faster model,
which is on par with the initial one.
  In this work, we consider a neural network compression method based on tensor
decompositions. Namely, we propose to approximate the convolutional layer
weight with a tensor, which can be represented as a sum of low-rank and sparse
components. The motivation for such approximation is based on the assumption
that low-rank and sparse terms allow eliminating two different types of
redundancy and thus yield a better compression rate. An efficient CPU
implementation for the proposed method has been developed. Our algorithm has
demonstrated up to 3.5x CPU layer speedup and 11x layer size reduction when
compressing Resnet50 architecture for the image classification task.
