Contenido principal

Deep Network Designer

Diseñar y visualizar redes de deep learning

Descripción

La app Deep Network Designer permite importar, crear, visualizar y editar redes de deep learning. Con esta app, puede:

  • Crear, editar y combinar redes.

  • Cargar redes preentrenadas y editarlas para transferencia del aprendizaje.

  • Importar redes de PyTorch® y TensorFlow™.

  • Analizar las redes para asegurarse de que la arquitectura se ha definido correctamente.

  • Analizar las redes para reducir la memoria usando técnicas de compresión.

  • Exportar las redes a Simulink®.

  • Generar código de MATLAB® para crear redes.

Deep Network Designer app

Abrir la aplicación Deep Network Designer

  • Barra de herramientas de MATLAB: En la pestaña Apps, en Machine Learning and Deep Learning, haga clic en el icono de la app.

  • Línea de comandos de MATLAB: Introduzca la función deepNetworkDesigner.

Ejemplos

expandir todo

Cree una red de clasificación para datos de características numéricas.

Abra Deep Network Designer.

deepNetworkDesigner

Si desea crear una red en blanco, deténgase en Blank Network y haga clic en New. La app abre un lienzo en blanco en el que se pueden arrastrar y soltar capas.

Desde Layer Library, arrastre una capa featureInputLayer al lienzo. Puede usar el filtro Layer Library para encontrar capas. Seleccione la capa. En el panel Properties, establezca Normalization en "zscore" e InputSize en el número de características de sus datos. A continuación, arrastre una capa fullyConnectedLayer al lienzo. Para conectar las capas, deténgase en featureInputLayer y haga clic en el puerto out. Arrastre la flecha hasta el puerto in de la capa fullyConnectedLayer.

featureInputLayer connected to a fullyConnectedLayer

Añada una capa layerNormalizationLayer seguida de una capa reluLayer al lienzo y conéctelas de manera secuencial.

A series of layers connected sequentially. The order of the layers is featureInputLayer, fullyConnectedLayer, layerNormalizationLayer, and reluLayer.

Por último, añada una capa fullyConnectedLayer seguida de una capa softmaxLayer y conéctelas. En el caso de la última capa fullyConnectedLayer, selecciónela y establezca OutputSize en el número de clases de sus datos.

Para alinear automáticamente las capas, haga clic en Auto Arrange.

A series of layers connected sequentially. The order of the layers is featureInputLayer, fullyConnectedLayer, layerNormalizationLayer, reluLayer, fullyConnectedLayer, and softmaxLayer,

Para comprobar que la red está preparada para el entrenamiento, seleccione Analyze. El analizador Deep Learning Network Analyzer muestra que la red tiene cero advertencias o errores.

Deep Learning Network Analyzer report view. The top shows the number of learnables, layers, warnings, and errors. The left shows a plot of the network and the right shows a table with information about each layer.

Para exportar la red al área de trabajo, haga clic en Export. Para generar código y recrear la red, haga clic en Export > Generate Network Code Without Parameters.

Prepare una red para transferencia del aprendizaje editándola en Deep Network Designer.

La transferencia del aprendizaje es un proceso que consiste en elegir una red de deep learning preentrenada y ajustarla para aprender una tarea nueva. Puede transferir de forma rápida las características aprendidas a una nueva tarea con menos imágenes de entrenamiento. Por esta razón, la transferencia del aprendizaje suele ser un proceso más rápido y sencillo que entrenar una red desde cero. Para usar una red preentrenada para la transferencia del aprendizaje, debe modificar el número de clases de forma que coincida con el nuevo conjunto de datos.

Deep Network Designer proporciona una selección de redes de audio e imagen preentrenadas. Para explorar las redes preentrenadas, abra Deep Network Designer.

deepNetworkDesigner

Deep Network Designer start page with a selection of pretrained networks, such as SqueezeNet, GoogLeNet, and ResNet-50.

En este ejemplo, deténgase en SqueezeNet y haga clic en Open.

Deep Network Designer canvas. On the left is the Layer Library with a list of supported layers. In the middle is the network and on the right are the network properties.

Para preparar la red para la transferencia del aprendizaje, edite la última capa de aprendizaje. En SqueezeNet, la última capa de aprendizaje es la capa convolucional 2D 'conv10'.

  • Seleccione la capa 'conv10'. En la parte inferior del panel Properties, haga clic en Unlock Layer. Al desbloquear la capa se eliminan todos los aprendizajes de la capa. En el cuadro de advertencia que aparece, haga clic en Unlock Anyway. De este modo, se desbloquean las propiedades de la capa para que pueda adaptarlas a su nueva tarea. Establezca la propiedad NumFilters en el nuevo número de clases.

  • Modifique las tasas de aprendizaje para aprender más rápido en la nueva capa que en las capas transferidas aumentando los valores WeightLearnRateFactor y BiasLearnRateFactor hasta 10.

Antes de la versión R2023b: Para editar las propiedades de las capas de una nueva tarea, remplace las capas en vez de desbloquearlas.

Properties of a convolution2dLayer. The NumFilters property is set to 5, and the WeightLearnRateFactor and BiasLearnRateFactor properties are set to 10.

Compruebe la red haciendo clic en Analyze. Si el analizador Deep Learning Network Analyzer no detecta ningún error, la red está preparada para el entrenamiento. Para exportar la red preparada al área de trabajo, haga clic en Export. Para generar código de MATLAB y crear la red, haga clic en Generate Network Code.

Para ver un ejemplo de cómo entrenar una red para clasificar imágenes nuevas, consulte Preparar una red para la transferencia del aprendizaje mediante Deep Network Designer.

Importe una red neuronal desde PyTorch® o TensorFlow™.

Para este ejemplo, importe el modelo MNASNet (Copyright© Soumith Chintala 2016) de PyTorch. Descargue el archivo mnasnet1_0, que tiene un tamaño aproximado de 17 MB, desde el sitio web de MathWorks.

modelfile = matlab.internal.examples.downloadSupportFile("nnet", ...
    "data/PyTorchModels/mnasnet1_0.pt");
modelfile = 
'C:\Users\jwelding\OneDrive - MathWorks\Documents\MATLAB\Examples\R2025a\supportfiles\nnet\data\PyTorchModels\mnasnet1_0.pt'

Para importar una red desde una plataforma externa, use Deep Network Designer.

deepNetworkDesigner

Puede importar modelos de PyTorch® o TensorFlow™.

Tiles from the Deep Network Designer start page. The tiels show "Blank Network", "From Workspace", "From PyTorch", and "From TensorFlow".

Para modelos de PyTorch®, haga clic en el icono From PyTorch. En el cuadro de diálogo de Import PyTorch Model, copie la ubicación del archivo del modelo y haga clic en Import.

Import PyTorch Model dialog box. In the dialog box, you can specify the location of the traced model file. The dialog box displays a note saying that the software might save custom layers to the current folder.

Al importar redes de PyTorch mediante Deep Network Designer, tiene la opción de especificar los tamaños de entrada de la red. Esta opción solo está disponible cuando especificar los tamaños de entrada puede hacer que la importación tenga más éxito, por ejemplo, reduciendo el número de capas personalizadas.

La app importa la red y genera un informe Import Report. El informe Import Report muestra cualquier problema relacionado con la red que requiera su atención antes de poder usar la red para entrenamiento o inferencia. Por ejemplo, el informe muestra una advertencia si la app no puede inferir los tamaños de entrada o si es necesario completar alguna capa de marcador de posición.

Generated import report showing one warning. The warning states that an imageInputLayer has been automatically added by the software and the InputSize property must be edited before using the network.

Para ver un ejemplo de cómo importar una red de PyTorch® en Deep Network Designer y solucionar cualquier problema, consulte Import PyTorch Model Using Deep Network Designer.

Exporte una red entrenada desde Deep Network Designer a Simulink®.

Abra Deep Network Designer.

deepNetworkDesigner

La app tiene dos tipos de exportación a Simulink:

  • Exportar a un único bloque de red, por ejemplo, un bloque Predict

  • Exportar a varios bloques de capas

Para redes pequeñas con todas las capas admitidas como bloques de capas, se recomienda exportar bloques de capas. Para redes grandes o redes con capas no admitidas como bloques de capas, se recomienda exportar a un único bloque de red. Si la red tiene capas que no se admiten como bloques de capas, verá una advertencia.

Exportar como bloques de capas

En este ejemplo, deténgase en LSTM y haga clic en Open. Para exportar la red a Simulink, seleccione Export > Export to Simulink. En el cuadro de diálogo Export to Simulink, seleccione Export as en Multiple Layer Blocks. Seleccione una ubicación para guardar el archivo de Simulink con los parámetros de red y, después, haga clic en Export. Si durante la exportación la red no está inicializada, la app intenta inicializarla.

La app crea un modelo de Simulink.

Haga clic dentro de my_model_1 para ver los bloques de capas individuales.

Para obtener una lista de capas admitidas como bloques de capas, consulte List of Deep Learning Layer Blocks and Subsystems.

Exportar como bloque de red

También puede exportar el modelo como un único bloque de red. En Deep Network Designer, seleccione Export as como Single Network Block. En este ejemplo, la app exporta la red como un bloque Stateful Predict.

La app Deep Network Designer permite generar código MATLAB® que recrea la arquitectura de la red.

  • Para recrear las capas de la red, incluido cualquier parámetro inicial, seleccione Export > Generate Network Code. La app crea un script en vivo y un archivo MAT que contiene los parámetros iniciales (pesos y sesgos) de su red. Ejecute el script para recrear las capas de red, incluidos los parámetros que se pueden aprender del archivo MAT. Utilice esta opción para preservar los pesos si quiere hacer una transferencia del aprendizaje.

  • Para recrear solo las capas de su red, seleccione Export > Generate Network Code Without Parameters. Esta red no contiene los parámetros iniciales, como los pesos preentrenados.

Ejecutar el script que se ha generado devuelve la arquitectura de red como un objeto dlnetwork. Para ver un ejemplo de cómo entrenar una red que se ha exportado de Deep Network Designer, consulte Introducción a Deep Network Designer. Para obtener más información sobre la generación de código, consulte Generar código MATLAB desde Deep Network Designer.

Ejemplos relacionados

Uso programático

expandir todo

deepNetworkDesigner abre la app Deep Network Designer. Si Deep Network Designer ya está abierta, deepNetworkDesigner convierte la app en la aplicación activa.

deepNetworkDesigner(net) abre la app Deep Network Designer y carga la red especificada en la app. La red puede ser un arreglo de capas o un objeto dlnetwork. Si importa un objeto DAGNetwork o SeriesNetwork, la app intenta convertir la red en un objeto dlnetwork. Para obtener más información, consulte dag2dlnetwork. Si importa un objeto LayerGraph, la app intentará convertirlo en un objeto dlnetwork.

Si Deep Network Designer ya está abierta, deepNetworkDesigner(net) convierte la app en la aplicación activa y muestra un mensaje para que añada o sustituya cualquier red existente.

deepNetworkDesigner(___,"-v1") abre la versión antigua (anterior a la versión R2024a) de la app. Esta versión es compatible con objetos DAGNetwork, SeriesNetwork y LayerGraph. Para obtener más información, consulte Cambio en el comportamiento predeterminado.

Historial de versiones

Introducido en R2018b

expandir todo

Consulte también

Funciones