Main Content

squeezenet

(No recomendado) Red neuronal convolucional SqueezeNet

  • SqueezeNet network architecture

No se recomienda el uso de squeezenet. Utilice la función imagePretrainedNetwork en su lugar. Para obtener más información, consulte Historial de versiones.

Descripción

SqueezeNet es una red neuronal convolucional con 18 capas de profundidad. Puede cargar una versión preentrenada de la red entrenada en más de un millón de imágenes desde la base de datos [1] de ImageNet. La red preentrenada puede clasificar imágenes en 1000 categorías de objetos (por ejemplo, teclado, ratón, lápiz y muchos animales). Como resultado, la red ha aprendido representaciones ricas en características para una amplia gama de imágenes. Esta función devuelve una red SqueezeNet v1.1, que tiene una precisión similar a la de SqueezeNet v1.0 pero que requiere menos operaciones de punto flotante por predicción [3]. El tamaño de la entrada de imagen de la red es de 227 por 227. Para ver más redes preentrenadas en MATLAB®, consulte Redes neuronales profundas preentrenadas.

ejemplo

net = squeezenet devuelve una red SqueezeNet entrenada con el conjunto de datos de ImageNet.

net = squeezenet('Weights','imagenet') devuelve una red SqueezeNet entrenada con el conjunto de datos de ImageNet. Esta sintaxis es equivalente a net = squeezenet.

lgraph = squeezenet('Weights','none') devuelve la arquitectura de red de SqueezeNet sin entrenar.

Ejemplos

contraer todo

Cargue una red SqueezeNet preentrenada.

net = squeezenet
net = 

  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]

Esta función devuelve un objeto DAGNetwork.

SqueezeNet se incluye en Deep Learning Toolbox™. Para cargar otras redes, utilice funciones como googlenet para obtener los enlaces para descargar redes preentrenadas desde Add-On Explorer.

Argumentos de salida

contraer todo

Red neuronal convolucional SqueezeNet preentrenada, devuelta como objeto DAGNetwork.

Arquitectura de red neuronal convolucional SqueezeNet sin entrenar, devuelta como objeto LayerGraph.

Referencias

[1] ImageNet. http://www.image-net.org.

[2] Iandola, Forrest N., Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, and Kurt Keutzer. "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5 MB model size." Preprint, submitted November 4, 2016. https://arxiv.org/abs/1602.07360.

[3] Iandola, Forrest N. "SqueezeNet." https://github.com/forresti/SqueezeNet.

Capacidades ampliadas

Historial de versiones

Introducido en R2018a

contraer todo

R2024a: No recomendado

No se recomienda el uso de squeezenet. Utilice la función imagePretrainedNetwork en su lugar.

No está previsto eliminar el soporte para la función squeezenet. Sin embargo, la función imagePretrainedNetwork tiene una funcionalidad adicional que ayuda con los flujos de trabajo de transferencia del aprendizaje. Por ejemplo, puede especificar el número de clases de sus datos usando la opción numClasses, y la función devuelve una red que está lista para hacer un nuevo entrenamiento sin necesidad de modificaciones.

La función imagePretrainedNetwork devuelve la red como un objeto dlnetwork, que no almacena los nombres de las clases. Para obtener los nombres de las clases de la red preentrenada, utilice el segundo argumento de salida de la función imagePretrainedNetwork.

Esta tabla muestra algunos usos habituales de la función squeezenet y cómo actualizar el código para usar la función imagePretrainedNetwork en su lugar.

No recomendadoRecomendado
net = squeezenet;[net,classNames] = imagePretrainedNetwork;
net = squeezenet(Weights="none");net = imagePretrainedNetwork(Weights="none");

La función imagePretrainedNetwork devuelve un objeto dlnetwork, que también tiene estas ventajas:

  • Los objetos dlnetwork son un tipo de datos unificado que admite la creación de redes, la predicción, el entrenamiento integrado, la visualización, la compresión, la verificación y los bucles de entrenamiento personalizados.

  • Los objetos dlnetwork admiten una gama más amplia de arquitecturas de red que puede crear o importar desde plataformas externas.

  • La función trainnet admite objetos dlnetwork, lo que le permite especificar fácilmente funciones de pérdida. Puede seleccionar entre funciones de pérdida integradas o especificar una función de pérdida personalizada.

  • Entrenar y predecir con los objetos dlnetwork suele ser más rápido que los flujos de trabajo LayerGraph y trainNetwork.

Para entrenar una red neuronal especificada como un objeto dlnetwork, utilice la función trainnet.