Main Content

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.

  • 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.

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

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.

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.

Para exportar la red al área de trabajo, haga clic en Export. Para generar código y volver a crear la red, haga clic en Export > Generate Code without Initial 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

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

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.

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 Code with Initial Parameters.

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");

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

deepNetworkDesigner

Puede importar modelos de PyTorch® o TensorFlow™.

Para modelos de PyTorch®, 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.

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.

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

Deténgase en SqueezeNet 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 una ubicación para guardar el archivo MAT con los parámetros de red y, a continuación, seleccione Export. Si durante la exportación la red no está inicializada, la app intenta inicializarla.

Los bloques que genere la app dependerán del tipo de red.

  • Predict: predice respuestas usando una red neuronal de deep learning entrenada.

  • Stateful Predict: predice respuestas usando una red neuronal recurrente entrenada.

En el caso de SqueezeNet, la app genera un bloque Predict.

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

  • Para recrear las capas de su red, incluido cualquier parámetro inicial, seleccione Export > Generate Network Code With Parameters. 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