  Deploying convolutional neural networks (CNNs) on mobile devices is difficult
due to the limited memory and computation resources. We aim to design efficient
neural networks for heterogeneous devices including CPU and GPU, by exploiting
the redundancy in feature maps, which has rarely been investigated in neural
architecture design. For CPU-like devices, we propose a novel CPU-efficient
Ghost (C-Ghost) module to generate more feature maps from cheap operations.
Based on a set of intrinsic feature maps, we apply a series of linear
transformations with cheap cost to generate many ghost feature maps that could
fully reveal information underlying intrinsic features. The proposed C-Ghost
module can be taken as a plug-and-play component to upgrade existing
convolutional neural networks. C-Ghost bottlenecks are designed to stack
C-Ghost modules, and then the lightweight C-GhostNet can be easily established.
We further consider the efficient networks for GPU devices. Without involving
too many GPU-inefficient operations (e.g.,, depth-wise convolution) in a
building stage, we propose to utilize the stage-wise feature redundancy to
formulate GPU-efficient Ghost (G-Ghost) stage structure. The features in a
stage are split into two parts where the first part is processed using the
original block with fewer output channels for generating intrinsic features,
and the other are generated using cheap operations by exploiting stage-wise
redundancy. Experiments conducted on benchmarks demonstrate the effectiveness
of the proposed C-Ghost module and the G-Ghost stage. C-GhostNet and G-GhostNet
can achieve the optimal trade-off of accuracy and latency for CPU and GPU,
respectively. Code is available at https://github.com/huawei-noah/CV-Backbones.
