Ghost Module and Ghost Bottleneck: Cheap Features for Mobile CNNs
· 2 min read · 391 words
A Ghost module replaces one expensive convolution with two stages: generate a smaller set of intrinsic feature maps using a normal convolution, then derive additional maps from them using cheap linear operations, usually depthwise convolutions.
The design starts from an empirical observation: many channels in a trained CNN are similar or can be approximated by inexpensive transformations of other channels. Paying for a full convolution to produce every output channel may therefore be wasteful.
Ghost module
In the paper's idealized description, each of intrinsic maps produces outputs: one identity copy and cheaply transformed maps. The total output width is therefore
The key saving is that only the intrinsic maps require the primary convolution. The other maps come from cheaper channel-wise linear operations. Depthwise convolutions are a common choice, but the Ghost-module definition is broader than one particular operation.
Ghost bottleneck
A Ghost bottleneck follows the inverted-residual pattern:
- A Ghost module expands the channel width.
- For stride 2, a depthwise convolution downsamples the feature map.
- An optional squeeze-and-excitation block recalibrates channels.
- A second Ghost module projects back to the output width without an activation after projection.
- A shortcut is added, using a projection when shape or stride changes.
Deployment reality
Lower FLOP counts do not guarantee lower latency. Depthwise kernels, concatenation, memory movement, and backend fusion differ substantially across mobile GPUs, DSPs, NPUs, and CPUs. Benchmark the exported model on the actual runtime and hardware. Ghost modules are most useful when the target backend executes their cheap operations efficiently.
Primary source
- Kai Han et al., GhostNet: More Features from Cheap Operations, CVPR 2020.
Keep reading
- Plan Once, Then Act: When the ReAct Loop Is the Wrong Harness for Small Local Models
On small local models, the standard ReAct loop has a failure mode nobody warns you about: the model calls one tool, declares victory, and stops. What we measured across 12 GGUF models in EdgeVox, why we added a plan-once dispatcher, and how to decide which loop your task actually needs.
- Building EdgeVox: Chaining STT → Local LLM → TTS Without Touching the Cloud
A first-hand build narrative of EdgeVox, a fully offline voice agent that chains speech-to-text, a local LLM, and text-to-speech on one device. The architecture in plain language, ROS2 integration, the latency budget, and the failure modes nobody warns you about.
- Vietnam's Sovereign AI Conversation Is Stuck One Layer Too High 🇻🇳
Vietnam already has the chips, three meaningful Vietnamese model attempts in flight, and the most binding AI law in Southeast Asia. The conversation about sovereign AI keeps demanding a 70B foundation model. The actual gap is one layer down: open evaluation, license-clean data, compliance-aware specialized models, and on-device runtimes that operationalize Law 134/2025 from March 2026.
