SqueezeNet

{{Short description|Deep neural network for image classification, released 2016}}

{{Infobox software

| name = SqueezeNet

| author = Forrest Iandola, Song Han, Matthew W. Moskewicz, Khalid Ashraf, Bill Dally, Kurt Keutzer

| released = {{Start date and age|2016|02|22|df=yes}}

| latest release version = v1.1 ({{Start date and age|2016|06|06}})

| repo = {{url|https://github.com/DeepScale/SqueezeNet}}

| genre = Deep neural network

| license = BSD license

}}

SqueezeNet is a deep neural network for image classification released in 2016. SqueezeNet was developed by researchers at DeepScale, University of California, Berkeley, and Stanford University. In designing SqueezeNet, the authors' goal was to create a smaller neural network with fewer parameters while achieving competitive accuracy. Their best-performing model achieved the same accuracy as AlexNet on ImageNet classification, but has a size 510x less than it.

Version history

SqueezeNet was originally released on February 22, 2016.{{Cite web|url=https://github.com/DeepScale/SqueezeNet|title=SqueezeNet|date=2016-02-22|website=GitHub|access-date=2018-05-12}} This original version of SqueezeNet was implemented on top of the Caffe deep learning software framework. Shortly thereafter, the open-source research community ported SqueezeNet to a number of other deep learning frameworks. On February 26, 2016, Eddie Bell released a port of SqueezeNet for the Chainer deep learning framework.{{Cite web|url=https://github.com/ejlb/squeezenet-chainer|title=An implementation of SqueezeNet in Chainer|last=Bell|first=Eddie|date=2016-02-26|website=GitHub|access-date=2018-05-12}} On March 2, 2016, Guo Haria released a port of SqueezeNet for the Apache MXNet framework.{{Cite web|url=https://github.com/hariag/SqueezeNet|title=SqueezeNet for MXNet|last=Haria|first=Guo|date=2016-03-02|website=GitHub|access-date=2018-05-12}} On June 3, 2016, Tammy Yang released a port of SqueezeNet for the Keras framework.{{Cite web|url=https://github.com/DT42/squeezenet_demo|title=SqueezeNet Keras Implementation|last=Yang|first=Tammy|date=2016-06-03|website=GitHub|access-date=2018-05-12}} In 2017, companies including Baidu, Xilinx, Imagination Technologies, and Synopsys demonstrated SqueezeNet running on low-power processing platforms such as smartphones, FPGAs, and custom processors.{{Cite news|url=https://www.theregister.co.uk/2017/09/26/baidu_mobile_deep_learning/|title=Baidu puts open source deep learning into smartphones|last=Chirgwin|first=Richard|date=2017-09-26|work=The Register|access-date=2018-04-07}}{{Cite news|url=https://www.electronicsweekly.com/news/products/software-products/neural-network-sdk-powervr-gpus-2018-01/|title=Neural network SDK for PowerVR GPUs|last=Bush|first=Steve|date=2018-01-25|work=Electronics Weekly|access-date=2018-04-07}}{{Cite news|url=https://www.eetimes.com/document.asp?doc_id=1331467&print=yes|title=Xilinx AI Engine Steers New Course|last=Yoshida|first=Junko|date=2017-03-13|work=EE Times|access-date=2018-05-13}}{{Cite news|url=https://www.engineerlive.com/content/deep-learning-computer-vision-algorithms-ported-processor-ip|title=Deep learning computer vision algorithms ported to processor IP|last=Boughton|first=Paul|date=2017-08-28|work=Engineer Live|access-date=2018-04-07}}

As of 2018, SqueezeNet ships "natively" as part of the source code of a number of deep learning frameworks such as PyTorch, Apache MXNet, and Apple CoreML. In addition, third party developers have created implementations of SqueezeNet that are compatible with frameworks such as TensorFlow. Below is a summary of frameworks that support SqueezeNet.

class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto; table-layout: fixed;"
style="width: 12em" | Framework

! SqueezeNet Support

! References

Apache MXNet

|{{yes|Native}}

|{{Cite web|url=https://github.com/apache/incubator-mxnet/blob/6dcb0ebb39558d83df4d9fd0338a46f775b94bd6/python/mxnet/gluon/model_zoo/vision/squeezenet.py|title=squeezenet.py|website=GitHub: Apache MXNet|access-date=2018-04-07}}

Apple CoreML

|{{yes|Native}}

|{{Cite web|url=https://developer.apple.com/machine-learning/|title=CoreML|website=Apple|access-date=2018-04-10}}

Caffe2

|{{yes|Native}}

|{{Cite web|url=https://github.com/caffe2/caffe2/blob/c63037fd27493d0db72debd8202776124fa46cb8/caffe2/python/tutorials/Model_Quickload.ipynb|title=SqueezeNet Model Quickload Tutorial|last=Inkawhich|first=Nathan|website=GitHub: Caffe2|access-date=2018-04-07}}

Keras

|{{maybe|3rd party}}

|

MATLAB Deep Learning Toolbox

|{{yes|Native}}

|{{cite web |title=SqueezeNet for MATLAB Deep Learning Toolbox |url=https://www.mathworks.com/help/deeplearning/ref/squeezenet.html |publisher=Mathworks |accessdate=2018-10-03}}

ONNX

|{{yes|Native}}

|{{cite web |last1=Fang |first1=Lu |title=SqueezeNet for ONNX |url=https://github.com/onnx/models/tree/master/squeezenet |website=Open Neural Network eXchange}}

PyTorch

|{{yes|Native}}

|{{Cite web|url=https://github.com/pytorch/vision/blob/master/torchvision/models/squeezenet.py|title=squeezenet.py|website=GitHub: PyTorch|access-date=2018-05-12}}

TensorFlow

|{{maybe|3rd party}}

|{{Cite web|url=https://github.com/vonclites/squeezenet|title=Tensorflow implementation of SqueezeNet|last=Poster|first=Domenick|website=GitHub|access-date=2018-05-12}}

Wolfram Mathematica

|{{yes|Native}}

|{{Cite web|url=https://resources.wolframcloud.com/NeuralNetRepository/resources/SqueezeNet-V1.1-Trained-on-ImageNet-Competition-Data|title=SqueezeNet V1.1 Trained on ImageNet Competition Data|website=Wolfram Neural Net Repository|access-date=2018-05-12}}

Relationship to other networks

= AlexNet =

SqueezeNet was originally described in SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size.{{cite arXiv|eprint=1602.07360|title=SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size|last1=Iandola|first1=Forrest N|last2=Han|first2=Song|last3=Moskewicz|first3=Matthew W|last4=Ashraf|first4=Khalid|last5=Dally|first5=William J|last6=Keutzer|first6=Kurt|class=cs.CV|year=2016}} AlexNet is a deep neural network that has 240 MB of parameters, and SqueezeNet has just 5 MB of parameters. This small model size can more easily fit into computer memory and can more easily be transmitted over a computer network. However, it's important to note that SqueezeNet is not a "squeezed version of AlexNet." Rather, SqueezeNet is an entirely different DNN architecture than AlexNet.{{Cite web|url=http://www.shortscience.org/paper?bibtexKey=journals/corr/IandolaMAHDK16#unmesh|title=SqueezeNet|website=Short Science|access-date=2018-05-13}} What SqueezeNet and AlexNet have in common is that both of them achieve approximately the same level of accuracy when evaluated on the ImageNet image classification validation dataset.

= Model compression =

Model compression (e.g. quantization and pruning of model parameters) can be applied to a deep neural network after it has been trained.{{Citation |last1=Han |first1=Song |title=Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding |date=2016-02-15 |arxiv=1510.00149 |last2=Mao |first2=Huizi |last3=Dally |first3=William J.}} In the SqueezeNet paper, the authors demonstrated that a model compression technique called Deep Compression can be applied to SqueezeNet to further reduce the size of the parameter file from 5 MB to 500 KB. Deep Compression has also been applied to other DNNs, such as AlexNet and VGG.{{Cite web|url=https://www.oreilly.com/ideas/compressing-and-regularizing-deep-neural-networks|title=Compressing and regularizing deep neural networks|last=Han|first=Song|date=2016-11-06|website=O'Reilly|access-date=2018-05-08}}

Variants

Some of the members of the original SqueezeNet team have continued to develop resource-efficient deep neural networks for a variety of applications. A few of these works are noted in the following table. As with the original SqueezeNet model, the open-source research community has ported and adapted these newer "squeeze"-family models for compatibility with multiple deep learning frameworks.

class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto; table-layout: fixed;"

|+

!DNN Model

!Application

!Original

Implementation

!Other

Implementations

SqueezeDet{{cite arXiv|eprint=1612.01051|title=SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving|last1=Wu|first1=Bichen|last2=Wan|first2=Alvin|last3=Iandola|first3=Forrest|last4=Jin|first4=Peter H.|last5=Keutzer|first5=Kurt|class=cs.CV|year=2016}}{{Cite web|url=https://theintelligenceofinformation.wordpress.com/2017/03/02/introducing-squeezedet-low-power-fully-convolutional-neural-network-framework-for-autonomous-driving/|title=Introducing SqueezeDet: low power fully convolutional neural network framework for autonomous driving|last=Nunes Fernandes|first=Edgar|date=2017-03-02|website=The Intelligence of Information|access-date=2019-03-31}}

|Object Detection

on Images

|TensorFlow{{Cite web|url=https://github.com/BichenWuUCB/squeezeDet|title=SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving|last=Wu|first=Bichen|date=2016-12-08|website=GitHub|access-date=2018-12-26}}

|Caffe,{{Cite web|url=https://github.com/XuSen123/caffe-squeezeDet|title=Caffe SqueezeDet|last=Kuan|first=Xu|date=2017-12-20|website=GitHub|access-date=2018-12-26}} Keras{{Cite web|url=https://github.com/omni-us/squeezedet-keras|title=SqueezeDet on Keras|last=Padmanabha|first=Nischal|date=2017-03-20|website=GitHub|access-date=2018-12-26}}{{Cite web|url=https://medium.com/omnius/fast-object-detection-with-squeezedet-on-keras-5cdd124b46ce|title=Fast object detection with SqueezeDet on Keras|last=Ehmann|first=Christopher|date=2018-05-29|website=Medium|access-date=2019-03-31}}{{Cite web|url=https://medium.com/omnius/a-deeper-look-into-squeezedet-on-keras-13f107d0dd32|title=A deeper look into SqueezeDet on Keras|last=Ehmann|first=Christopher|date=2018-05-02|website=Medium|access-date=2019-03-31}}

SqueezeSeg{{cite arXiv|eprint=1710.07368|title=SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud|last1=Wu|first1=Bichen|last2=Wan|first2=Alvin|last3=Yue|first3=Xiangyu|last4=Keutzer|first4=Kurt|class=cs.CV|year=2017}}

|Semantic

Segmentation

of LIDAR

|TensorFlow{{Cite web|url=https://github.com/BichenWuUCB/SqueezeSeg|title=SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud|last=Wu|first=Bichen|date=2017-12-06|website=GitHub|access-date=2018-12-26}}

|

SqueezeNext{{cite arXiv|eprint=1803.10615|title=SqueezeNext: Hardware-Aware Neural Network Design|last1=Gholami|first1=Amir|last2=Kwon|first2=Kiseok|last3=Wu|first3=Bichen|last4=Tai|first4=Zizheng|last5=Yue|first5=Xiangyu|last6=Jin|first6=Peter|last7=Zhao|first7=Sicheng|last8=Keutzer|first8=Kurt|class=cs.CV|year=2018}}

|Image

Classification

|Caffe{{Cite web|url=https://github.com/amirgholami/SqueezeNext|title=SqueezeNext|last=Gholami|first=Amir|date=2018-04-18|website=GitHub|access-date=2018-12-29}}

|TensorFlow,{{Cite web|url=https://github.com/Timen/squeezenext-tensorflow|title=SqueezeNext Tensorflow: A tensorflow Implementation of SqueezeNext|last=Verhulsdonck|first=Tijmen|date=2018-07-09|website=GitHub|access-date=2018-12-29}} Keras,{{Cite web|url=https://github.com/osmr/imgclsmob/tree/master/keras_/kerascv/models|title=SqueezeNext, implemented in Keras|last=Sémery|first=Oleg|website=GitHub|date=2018-09-24|access-date=2018-12-29}}

PyTorch{{Cite web|url=https://github.com/luuuyi/SqueezeNext.PyTorch|title=SqueezeNext.PyTorch|last=Lu|first=Yi|date=2018-06-21|website=GitHub|access-date=2018-12-29}}

SqueezeNAS{{cite arXiv|eprint=1908.01748|title=SqueezeNAS: Fast neural architecture search for faster semantic segmentation|last1=Shaw|first1=Albert|last2=Hunter|first2=Daniel|last3=Iandola|first3=Forrest|last4=Sidhu|first4=Sammy|class=cs.LG|year=2019}}{{Cite news|url=https://www.eetimes.com/document.asp?doc_id=1335063|title=Does Your AI Chip Have Its Own DNN?|last=Yoshida|first=Junko|date=2019-08-25|work=EE Times|access-date=2019-09-12}}

|Neural Architecture Search

for Semantic Segmentation

|PyTorch{{Cite web|url=https://github.com/ashaw596/squeezenas|title=SqueezeNAS|last=Shaw|first=Albert|date=2019-08-27|website=GitHub|archive-url=|archive-date=|access-date=2019-09-12}}

|

In addition, the open-source research community has extended SqueezeNet to other applications, including semantic segmentation of images and style transfer.{{Cite news|url=https://openreview.net/pdf?id=S1uHiFyyg|title=Speeding up Semantic Segmentation for Autonomous Driving|last=Treml|first=Michael|date=2016|work=NIPS MLITS Workshop|access-date=2019-07-21|display-authors=etal}}{{Cite web|url=https://github.com/lizeng614/SqueezeNet-Neural-Style-Pytorch|title=SqueezeNet Neural Style on PyTorch|last=Zeng|first=Li|date=2017-03-22|website=GitHub|access-date=2019-07-21}}{{Cite web|url=https://aspire.eecs.berkeley.edu/wiki/_media/eop/2017/bichen_talk_slides.pdf|title=The Impact of SqueezeNet|last1=Wu|first1=Bichen|last2=Keutzer|first2=Kurt|date=2017|website=UC Berkeley|access-date=2019-07-21}}

See also

References