SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
Metadata
- Slug:
squeezenet_2016 - Year: 2016
- Venue: arXiv/ICLR submission
- Authors: Forrest N. Iandola, Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, Kurt Keutzer
- Reading status: read complete
- Compute regime: Efficient and edge inference (
efficient_edge_inference) - Primary sources: PDF, extracted text
Compute Setup
The paper is explicit about the target deployment devices but not the training hardware. It motivates small CNNs for distributed training communication, over-the-air delivery to cars, and FPGA/ASIC inference. The concrete hardware example is a Xilinx "Vertex-7" FPGA with 8.5 MBytes of on-chip memory and no off-chip memory. The authors argue that a CNN small enough to fit on-chip can avoid being bottlenecked by parameter-memory bandwidth while video frames stream through in real time.
Training hardware is not listed in the extracted text. The training software context is Caffe, with SqueezeNet configuration files released for Caffe and ports discussed for MXNet, Chainer, Keras, and Torch. Under the project rule, the training device context is inferred as a 2016 Caffe/cuDNN GPU workstation or cluster, but the supported claim in this card is about model footprint and deployment memory rather than a measured GPU training setup.
Bottleneck
The central bottleneck is parameter movement. For distributed data-parallel CNN training, the paper states that communication overhead is proportional to parameter count, so smaller networks reduce inter-server communication. For client deployment, the bottleneck is export bandwidth: an AlexNet update would require about 240MB to send to a car. For embedded inference, the bottleneck is even harder: if parameters do not fit in on-chip memory, inference must stream weights from slower off-chip memory, if off-chip memory exists at all.
This is different from later mobile papers that foreground latency or multiply-adds. SqueezeNet's first-order budget is model size. A 4.8MB CNN can be distributed, shipped, cached, and potentially kept on an FPGA in a way a 240MB AlexNet cannot. The method therefore treats architecture as a memory-capacity and communication design problem.
Method Adaptation
SqueezeNet uses Fire modules to preserve ImageNet accuracy while shrinking parameter count. A Fire module first applies a squeeze layer made only of 1x1 filters, then an expand layer with a mix of 1x1 and 3x3 filters. This implements two explicit parameter-saving strategies: replace many 3x3 filters with 1x1 filters, and reduce the number of input channels seen by the remaining 3x3 filters. Since a 1x1 filter has 9x fewer parameters than a 3x3 filter with the same input/output channels, this directly targets weight storage.
The third strategy is delayed downsampling. By keeping larger activation maps deeper into the network, the model tries to preserve accuracy under a strict parameter budget. This is a compute tradeoff: later downsampling can keep activation compute higher than an aggressively downsampled small model, but it spends that compute to avoid increasing stored parameters. The architecture also removes fully connected layers, ending with convolution and average pooling, which avoids dense classifier weights.
The paper's compression discussion is hardware-aware. Deep Compression can reduce SqueezeNet further through sparsity and low-bit codebooks, but the authors warn that codebook quantization does not automatically yield 4x or 5.3x commodity-processor speedups for 8-bit or 6-bit values. The speed benefit depends on hardware that can exploit the compressed representation, such as the EIE-style accelerator discussed in related work.
Evidence
Against AlexNet on ImageNet, the baseline AlexNet is listed as 240MB with 57.2% top-1 and 80.3% top-5 accuracy. Uncompressed SqueezeNet is 4.8MB, 50x smaller, while reaching 57.5% top-1 and 80.3% top-5. With Deep Compression, SqueezeNet becomes 0.66MB at 8-bit and 0.47MB at 6-bit while preserving the same 57.5/80.3 accuracy. The final 0.47MB model is reported as 510x smaller than 32-bit AlexNet.
The design-space experiments show how the memory/accuracy knobs behave. Increasing the squeeze ratio beyond the SqueezeNet value can raise top-5 accuracy from AlexNet-level 80.3% with a 4.8MB model to 86.0% with a 19MB model, after which accuracy plateaus. Varying the fraction of 3x3 filters shows top-5 accuracy plateauing at 85.6% when 50% of expand filters are 3x3; more 3x3 filters increase model size without improving ImageNet accuracy in that experiment.
Macroarchitecture also matters. Vanilla SqueezeNet has 57.5% top-1, 80.3% top-5, and 4.8MB size. Adding simple bypass connections raises accuracy to 60.4% top-1 and 82.5% top-5 without increasing model size. Complex bypass connections reach 58.8%/82.0% but grow to 7.7MB. This is an important compute fact: residual-style information flow can recover accuracy without adding parameter storage if the channel dimensions line up.
Historical Effect
SqueezeNet helped shift efficient CNN work from only compressing already-large models toward designing compact models directly. It connected model size to distributed training communication, OTA delivery, and on-chip inference, making "fits in memory" a first-class architectural criterion. It also made the Fire module a concrete example of using 1x1 convolutions to manage parameter bandwidth.
Limits
The paper does not measure end-to-end latency on phones, GPUs, FPGAs, or ASICs. A small parameter file can still perform poorly if kernels are inefficient or if activation traffic dominates. The compression results depend on sparse/quantized execution support for real speed gains. Training device details are not listed, so no claim should be made about training throughput beyond the stated communication argument.
Links
- Compute regime: efficient edge inference
- Method index: cnn, distillation
- Ledger updates: compute bottlenecks