SqueezeNet es una red neuronal profunda para la clasificación de imágenes, lanzada en 2016. Fue desarrollada por investigadores de DeepScale , la Universidad de California, Berkeley , y la Universidad de Stanford . Al diseñar SqueezeNet, el objetivo de los autores era crear una red neuronal más pequeña con menos parámetros, manteniendo una precisión competitiva. Su modelo de mejor rendimiento logró la misma precisión que AlexNet en la clasificación de ImageNet , pero con un tamaño 510 veces menor. [ 1 ]
Historial de versiones
SqueezeNet se lanzó originalmente el 22 de febrero de 2016. [ 2 ] Esta versión original de SqueezeNet se implementó sobre el marco de software de aprendizaje profundo Caffe . Poco después, la comunidad de investigación de código abierto portó SqueezeNet a varios otros marcos de aprendizaje profundo. El 26 de febrero de 2016, Eddie Bell lanzó una versión de SqueezeNet para el marco de aprendizaje profundo Chainer. [ 3 ] El 2 de marzo de 2016, Guo Haria lanzó una versión de SqueezeNet para el marco Apache MXNet . [ 4 ] El 3 de junio de 2016, Tammy Yang lanzó una versión de SqueezeNet para el marco Keras . [ 5 ] En 2017, empresas como Baidu , Xilinx , Imagination Technologies y Synopsys demostraron que SqueezeNet se ejecutaba en plataformas de procesamiento de bajo consumo, como teléfonos inteligentes , FPGA y procesadores personalizados. [ 6 ] [ 7 ] [ 8 ] [ 9 ]
Desde 2018, SqueezeNet se distribuye de forma nativa como parte del código fuente de varios marcos de aprendizaje profundo como PyTorch , Apache MXNet y Apple CoreML. [ 10 ] [ 11 ] [ 12 ] Además, desarrolladores externos han creado implementaciones de SqueezeNet que son compatibles con marcos como TensorFlow . [ 13 ] A continuación se presenta un resumen de los marcos que admiten SqueezeNet.
Relación con otras redes
AlexNet
SqueezeNet se describió originalmente en SqueezeNet: precisión a nivel de AlexNet con 50 veces menos parámetros y un tamaño de modelo <0,5 MB . [ 1 ] AlexNet es una red neuronal profunda que tiene 240 MB de parámetros, y SqueezeNet tiene solo 5 MB de parámetros. Este pequeño tamaño de modelo puede caber más fácilmente en la memoria de la computadora y puede transmitirse más fácilmente a través de una red de computadoras. Sin embargo, es importante señalar que SqueezeNet no es una "versión comprimida de AlexNet". Más bien, SqueezeNet es una arquitectura DNN completamente diferente a AlexNet. [ 18 ] Lo que SqueezeNet y AlexNet tienen en común es que ambos logran aproximadamente el mismo nivel de precisión cuando se evalúan en el conjunto de datos de validación de clasificación de imágenes ImageNet .
Compresión de modelos
La compresión de modelos (por ejemplo, la cuantización y la poda de parámetros del modelo) se puede aplicar a una red neuronal profunda después de su entrenamiento. [ 19 ] En el artículo de SqueezeNet, los autores demostraron que una técnica de compresión de modelos llamada Deep Compression se puede aplicar a SqueezeNet para reducir aún más el tamaño del archivo de parámetros de 5 MB a 500 KB. [ 1 ] Deep Compression también se ha aplicado a otras DNN, como AlexNet y VGG. [ 20 ]
Variantes
Algunos miembros del equipo original de SqueezeNet han continuado desarrollando redes neuronales profundas de bajo consumo de recursos para diversas aplicaciones. Algunos de estos trabajos se detallan en la siguiente tabla. Al igual que con el modelo original de SqueezeNet, la comunidad de investigación de código abierto ha adaptado estos nuevos modelos de la familia "squeeze" para que sean compatibles con múltiples marcos de aprendizaje profundo.
Además, la comunidad de investigación de código abierto ha extendido SqueezeNet a otras aplicaciones, incluyendo la segmentación semántica de imágenes y la transferencia de estilo . [ 38 ] [ 39 ] [ 40 ]
Véase también
Referencias
- 1 2 3 Iandola, Forrest N; Han, Song; Moskewicz, Matthew W; Ashraf, Khalid; Dally, William J; Keutzer, Kurt (2016). "SqueezeNet: precisión a nivel de AlexNet con 50 veces menos parámetros y un tamaño de modelo <0,5 MB". arXiv : 1602.07360 [ cs.CV ].
- ↑ "SqueezeNet" . GitHub . 22 de febrero de 2016. Consultado el 12 de mayo de 2018 .
- ↑ Bell, Eddie (26 de febrero de 2016). "Una implementación de SqueezeNet en Chainer" . GitHub . Recuperado el 12 de mayo de 2018 .
- ^ Haría, Guo (2 de marzo de 2016). "SqueezeNet para MXNet" . GitHub . Consultado el 12 de mayo de 2018 .
- ^ Yang, Tammy (3 de junio de 2016) . "Implementación de SqueezeNet Keras" . GitHub . Consultado el 12 de mayo de 2018 .
- ↑ Chirgwin, Richard (26 de septiembre de 2017). "Baidu incorpora el aprendizaje profundo de código abierto a los teléfonos inteligentes" . The Register . Consultado el 7 de abril de 2018 .
- ↑ Bush, Steve (25 de enero de 2018). "SDK de redes neuronales para GPU PowerVR" . Electronics Weekly . Recuperado el 7 de abril de 2018 .
- ↑ Yoshida, Junko (13 de marzo de 2017). "El motor de IA de Xilinx marca un nuevo rumbo" . EE Times . Consultado el 13 de mayo de 2018 .
- ↑ Boughton, Paul (28 de agosto de 2017). "Algoritmos de visión artificial de aprendizaje profundo adaptados a la IP del procesador" . Engineer Live . Consultado el 7 de abril de 2018 .
- 1 2 "squeezenet.py" . GitHub: PyTorch . Consultado el 12 de mayo de 2018 .
- 1 2 "squeezenet.py" . GitHub: Apache MXNet . Consultado el 7 de abril de 2018 .
- 1 2 "CoreML" . Apple . Consultado el 10 de abril de 2018 .
- 1 2 Poster, Domenick. "Implementación de SqueezeNet en Tensorflow" . GitHub . Recuperado el 12 de mayo de 2018 .
- ↑ Inkawhich, Nathan. "Tutorial de carga rápida del modelo SqueezeNet" . GitHub: Caffe2 . Consultado el 7 de abril de 2018 .
- ↑ "SqueezeNet para MATLAB Deep Learning Toolbox" . Mathworks . Consultado el 3 de octubre de 2018 .
- ↑ Fang, Lu. "SqueezeNet para ONNX" . Open Neural Network eXchange .
- ↑ "SqueezeNet V1.1 Entrenado con datos de la competición ImageNet" . Repositorio de redes neuronales de Wolfram . Consultado el 12 de mayo de 2018 .
- ↑ "SqueezeNet" . Ciencia breve . Consultado el 13 de mayo de 2018 .
- ↑ Han, Song; Mao, Huizi; Dally, William J. (2016-02-15), Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding , arXiv : 1510.00149
- ↑ Han, Song (2016-11-06). "Compresión y regularización de redes neuronales profundas" . O'Reilly . Recuperado el 2018-05-08 .
- ↑ Wu, Bichen; Wan, Alvin; Iandola, Forrest; Jin, Peter H.; Keutzer, Kurt (2016). "SqueezeDet: Redes neuronales totalmente convolucionales unificadas, pequeñas y de bajo consumo para la detección de objetos en tiempo real para la conducción autónoma". arXiv : 1612.01051 [ cs.CV ].
- ↑ Nunes Fernandes, Edgar (2017-03-02). "Presentamos SqueezeDet: un marco de red neuronal totalmente convolucional de bajo consumo para la conducción autónoma" . The Intelligence of Information . Recuperado el 31 de marzo de 2019 .
- ↑ Wu, Bichen (2016-12-08). "SqueezeDet: Redes neuronales totalmente convolucionales unificadas, pequeñas y de bajo consumo para la detección de objetos en tiempo real para la conducción autónoma" . GitHub . Recuperado el 26 de diciembre de 2018 .
- ↑ Kuan, Xu (2017-12-20). "Caffe SqueezeDet" . GitHub . Recuperado el 2018-12-26 .
- ^ Padmanabha, Nischal (20 de marzo de 2017). "SqueezeDet en Keras" . GitHub . Consultado el 26 de diciembre de 2018 .
- ↑ Ehmann, Christopher (29 de mayo de 2018). "Detección rápida de objetos con SqueezeDet en Keras" . Medium . Consultado el 31 de marzo de 2019 .
- ↑ Ehmann, Christopher (2 de mayo de 2018). "Una mirada más profunda a SqueezeDet en Keras" . Medium . Recuperado el 31 de marzo de 2019 .
- ↑ Wu, Bichen; Wan, Alvin; Yue, Xiangyu; Keutzer, Kurt (2017). "SqueezeSeg: Redes neuronales convolucionales con CRF recurrente para la segmentación de objetos en carretera en tiempo real a partir de una nube de puntos LiDAR 3D". arXiv : 1710.07368 [ cs.CV ].
- ↑ Wu, Bichen (2017-12-06). "SqueezeSeg: Redes neuronales convolucionales con CRF recurrente para la segmentación de objetos en carretera en tiempo real a partir de una nube de puntos LiDAR 3D" . GitHub . Recuperado el 26 de diciembre de 2018 .
- ^ Gholami, Amir; Kwon, Kiseok; Wu, Bichén; Tai, Zizheng; Yue, Xiangyu; Jin, Pedro; Zhao, Sicheng; Keutzer, Kurt (2018). "SqueezeNext: diseño de redes neuronales conscientes del hardware". arXiv : 1803.10615 [ cs.CV ].
- ↑ Gholami, Amir (18 de abril de 2018). "SqueezeNext" . GitHub . Consultado el 29 de diciembre de 2018 .
- ↑ Verhulsdonck, Tijmen (2018-07-09). "SqueezeNext Tensorflow: Una implementación de SqueezeNext en Tensorflow" . GitHub . Recuperado el 29 de diciembre de 2018 .
- ↑ Sémery, Oleg (24-09-2018). "SqueezeNext, implementado en Keras" . GitHub . Recuperado el 29-12-2018 .
- ^ Lu, Yi (21 de junio de 2018). "SqueezeNext.PyTorch" . GitHub . Consultado el 29 de diciembre de 2018 .
- ↑ Shaw, Albert; Hunter, Daniel; Iandola, Forrest; Sidhu, Sammy (2019). "SqueezeNAS: Búsqueda rápida de arquitectura neuronal para una segmentación semántica más rápida". arXiv : 1908.01748 [ cs.LG ].
- ↑ Yoshida, Junko (25 de agosto de 2019). "¿Tiene tu chip de IA su propia DNN?" . EE Times . Consultado el 12 de septiembre de 2019 .
- ↑ Shaw, Albert (27-08-2019). "SqueezeNAS" . GitHub . Recuperado el 12-09-2019 .
- ↑ Treml, Michael; et al. (2016). "Acelerando la segmentación semántica para la conducción autónoma" . Taller NIPS MLITS . Recuperado el 21 de julio de 2019 .
- ↑ Zeng, Li (22 de marzo de 2017). "Estilo neuronal SqueezeNet en PyTorch" . GitHub . Recuperado el 21 de julio de 2019 .
- ↑ Wu, Bichen; Keutzer, Kurt (2017). "El impacto de SqueezeNet" (PDF) . UC Berkeley . Recuperado el 21 de julio de 2019 .
- Aplicaciones de software de aprendizaje profundo
- Redes neuronales artificiales
- Reconocimiento y categorización de objetos
- Software que utiliza la licencia BSD.