Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Deep Network Designer

Diseñar, visualizar y entrenar redes de deep learning

Descripción

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

  • Crear, importar, editar y combinar redes.

  • Cargar redes preentrenadas y editarlas para transferencia del aprendizaje.

  • Ver y editar propiedades de capa y añadir nuevas capas y conexiones.

  • Analizar la red para comprobar que ha definido correctamente la arquitectura y detectar problemas antes del entrenamiento.

  • Importar y visualizar almacenes de datos y datos de imagen para el entrenamiento y la validación.

  • Aplicar aumentos a los datos de entrenamiento de clasificación de imágenes y visualizar la distribución de las etiquetas de clase.

  • Entrenar redes y monitorizar el entrenamiento con gráficas de métricas de precisión, pérdida y validación.

  • Exportar redes entrenadas al espacio de trabajo o a Simulink®.

  • Generar código de MATLAB® para construir y entrenar redes y crear experimentos para ajustar hiperparámetros con Experiment Manager.

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

Examine una red preentrenada en Deep Network Designer.

Abra la app y seleccione una red preentrenada. También puede cargar una red preentrenada seleccionando la pestaña Designer y haciendo clic en New. Si necesita descargar la red, haga clic en Install para abrir Add-On Explorer. Deep Network Designer incluye redes preentrenadas para tareas de imagen y audio. Para cargar redes de audio preentrenadas, se requiere Audio Toolbox™.

Sugerencia

Para comenzar, pruebe a seleccionar una de las redes de clasificación de imágenes más rápidas, como SqueezeNet o GoogLeNet. Una vez que haya determinado cuál es la mejor configuración, pruebe una red más precisa, como Inception-v3 o ResNet, y compruebe si los resultados han mejorado. Para obtener más información sobre cómo seleccionar una red preentrenada, consulte Pretrained Deep Neural Networks.

Deep Network Designer start page showing available networks

En el panel Designer, visualice y explore la red. Para obtener una lista de las redes de clasificación de imágenes preentrenadas que hay disponibles y aprender a compararlas, consulte Pretrained Deep Neural Networks.

Deep Network Designer displaying a pretrained image classification network

Para obtener información sobre cómo construir redes con Deep Network Designer, consulte Build Networks with Deep Network Designer.

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.

Abra Deep Network Designer con SqueezeNet.

deepNetworkDesigner(squeezenet)

Para preparar la red para la transferencia del aprendizaje, sustituya la última capa de aprendizaje y la última capa de clasificación. En SqueezeNet, la última capa que se puede aprender es una capa convolucional 2D denominada 'conv10'.

  • Arrastre una nueva capa convolution2dLayer al lienzo. Establezca la propiedad FilterSize en 1,1 y 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.

  • Elimine la última capa convolution2dLayer y conecte en su lugar la nueva capa.

    Convolution 2-D layer selected in Deep Network Designer. FilterSize is set to 1,1 and NumFilters is set to 5.

Sugerencia

En la mayoría de las redes preentrenadas (como GoogLeNet), la última capa que se puede aprender es la capa totalmente conectada. Para preparar la red para la transferencia del aprendizaje, sustituya la capa totalmente conectada por una nueva capa totalmente conectada y establezca la propiedad OutputSize en el nuevo número de clases. Para ver un ejemplo, consulte Introducción a Deep Network Designer.

Luego, elimine la capa de clasificación de salida. Después, arrastre una nueva capa classificationLayer al lienzo y conéctela en su lugar. La configuración predeterminada de la capa de salida establece que la red aprende el número de clases durante el entrenamiento.

Classification layer selected in Deep Network Designer. OutputSize is set to auto.

Compruebe la red haciendo clic en Analyze en la pestaña Designer. Si Deep Learning Network Analyzer no detecta ningún error, la red está preparada para el entrenamiento. Para ver un ejemplo de cómo entrenar una red para clasificar imágenes nuevas, consulte Transfer Learning with Deep Network Designer.

Si necesita obtener ayuda para familiarizarse con las propiedades de las capas y editarlas, haga clic en el icono de ayuda que aparece junto al nombre de la capa.

Seleccione una capa en el panel Designer para ver sus propiedades y editarlas. Haga clic en el icono de ayuda que aparece junto al nombre de la capa para obtener más información sobre las propiedades de la capa.

Cross channel normalization layer selected in Deep Network Designer

Para obtener más información sobre las propiedades de las capas, consulte List of Deep Learning Layers.

Añada capas a una red desde el espacio de trabajo en Deep Network Designer.

Puede crear una red en Deep Network Designer arrastrando las capas integradas desde Layer Library al panel Designer y conectándolas. También puede añadir capas personalizadas a una red desde el espacio de trabajo en el panel Designer. Supongamos que ha almacenado una capa personalizada en la variable myCustomLayer.

  1. Haga clic en New en la pestaña Designer.

  2. Deténgase en From Workspace y haga clic en Import.

  3. Seleccione myCustomLayer y haga clic en OK.

  4. Haga clic en Add.

La app añade la capa personalizada en la parte superior del panel Designer. Para ver la nueva capa, amplíela con el ratón o haga clic en Zoom in.

Conecte myCustomLayer a la red en el panel Designer. Para ver un ejemplo de cómo crear una red con una capa personalizada en Deep Network Designer, consulte Import Custom Layer into Deep Network Designer.

También puede combinar redes en Deep Network Designer. Por ejemplo, puede crear una red de segmentación semántica combinando una red preentrenada con una subred de decodificador.

Importe datos en Deep Network Designer para el entrenamiento.

Puede usar la pestaña Data de Deep Network Designer para importar datos de entrenamiento y validación. Deep Network Designer es compatible con la importación de datos de imagen y objetos de almacén de datos. Seleccione un método de importación en función del tipo de tarea.

TareaTipo de datosMétodo de importación de datosVisualización de ejemplo
Clasificación de imágenes

Un objeto ImageDatastore o una carpeta con subcarpetas que contienen imágenes de cada una de las clases. Las etiquetas de clase se extraen de los nombres de las subcarpetas.

Seleccione Import Data > Import Image Data.

Import Image Data dialog box

Puede seleccionar las opciones de aumento y especificar los datos de validación en el cuadro de diálogo Import Image Data. Para obtener más información, consulte Import Data into Deep Network Designer.

Data tab of Deep Network Designer displaying a histogram of the class labels and a selection of random images from the imported data

Otros flujos de trabajo ampliados (como la entrada de características numéricas, los datos fuera de memoria y el procesamiento de imágenes, audio y voz)

Almacén de datos.

Para seleccionar otros flujos de trabajo ampliados, utilice el objeto de almacén de datos correspondiente. Por ejemplo, AugmentedImageDatastore, CombinedDatastore, pixelLabelImageDatastore (Computer Vision Toolbox), audioDatastore (Audio Toolbox) o un almacén de datos personalizado.

Puede importar y entrenar cualquier objeto de almacén de datos compatible con la función trainNetwork. Para obtener más información sobre cómo crear y utilizar objetos de almacén de datos para aplicaciones de deep learning, consulte Datastores for Deep Learning.

Seleccione Import Data > Import Datastore.

Import Datastore dialog box

Puede especificar los datos de validación en el cuadro de diálogo Import Datastore. Para obtener más información, consulte Import Data into Deep Network Designer.

Data tab of Deep Network Designer displaying a preview of the first five observations in the datastore

Entrene redes neuronales profundas con Deep Network Designer.

Deep Network Designer permite entrenar una red con datos de imagen o un objeto de almacén de datos compatible con la función trainNetwork. Por ejemplo, puede entrenar una red de segmentación semántica o una red con varias entradas usando un objeto CombinedDatastore. Para obtener información sobre cómo importar datos en Deep Network Designer, consulte Import Data into Deep Network Designer.

Para entrenar una red en datos importados en Deep Network Designer, vaya a la pestaña Training y haga clic en Train. La app muestra una gráfica animada del progreso del entrenamiento. La gráfica muestra información sobre la pérdida y la precisión de minilotes y la pérdida y la precisión de validación, así como información adicional sobre el progreso del entrenamiento. La gráfica incluye el botón de detención en la esquina superior derecha. Haga clic en el botón para detener el entrenamiento y devolver el estado actual de la red.

Training progress plot in Deep Network Designer

Para obtener más información, consulte Train Networks Using Deep Network Designer.

Si necesita un mayor grado de control sobre el entrenamiento, haga clic en Training Options para seleccionar la configuración de entrenamiento. Para obtener más información sobre cómo seleccionar las opciones de entrenamiento, consulte trainingOptions.

Training Options dialog box in Deep Network Designer

Para ver un ejemplo de cómo entrenar una red de clasificación de imágenes, consulte Transfer Learning with Deep Network Designer. Para ver un ejemplo de cómo entrenar una red LSTM secuencia a secuencia, consulte Train Network for Time Series Forecasting Using Deep Network Designer.

Para entrenar una red con datos no compatibles con Deep Network Designer, seleccione la pestaña Designer y haga clic en Export para exportar la arquitectura de red inicial. Luego podrá entrenar la red de forma programática con un bucle de entrenamiento personalizado, por ejemplo.

Exporte la arquitectura de red creada en Deep Network Designer al espacio de trabajo o a Simulink y genere código para recrear la red y el entrenamiento.

  • Para exportar la arquitectura de red con los pesos iniciales al espacio de trabajo, vaya a la pestaña Designer y haga clic en Export. Dependiendo de la arquitectura de red, Deep Network Designer exporta la red como LayerGraphlgraph o como un objeto Layer layers.

  • Para exportar la red entrenada en Deep Network Designer al espacio de trabajo, vaya a la pestaña Training y haga clic en Export. Deep Network Designer exporta la arquitectura de la red entrenada como un objeto DAGNetwork trainedNetwork. Deep Network Designer también exporta los resultados del entrenamiento, como la precisión del entrenamiento y la validación, como un arreglo de estructuras trainInfoStruct.

  • Para exportar la red entrenada en Deep Network Designer a Simulink, vaya a la pestaña Training y haga clic en Export > Export to Simulink. Deep Network Designer guarda la red entrenada como un archivo MAT y genera bloques de Simulink que representan la red entrenada. Los bloques generados dependerán del tipo de red entrenada.

    • Image Classifier: clasifica datos usando una red neuronal de deep learning entrenada.

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

    • Stateful Classify: clasifica datos usando una red neuronal recurrente entrenada.

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

Para recrear una red creada y entrenada en Deep Network Designer, genere código de MATLAB.

  • Para recrear las capas de la red, vaya a la pestaña Designer y seleccione Export > Generate Code.

  • Para recrear las capas de la red, incluidos todos los parámetros de aprendizaje, vaya a la pestaña Designer y seleccione Export > Generate Code with Initial Parameters.

  • Para recrear la red, la importación de datos y el entrenamiento, vaya a la pestaña Training y seleccione Export > Generate Code for Training.

Una vez que haya generado un script, podrá realizar las siguientes tareas.

  • Para recrear las capas de la red creadas en la app, ejecute el script. Si ha generado el script de entrenamiento, cuando ejecute el script, también replicará el entrenamiento de la red.

  • Examine el código para aprender a crear y a conectar las capas programáticamente y a entrenar una red profunda.

  • Para modificar las capas, edite el código. También puede ejecutar el script y volver a importar la red en la app para editarlo.

Para obtener más información, consulte Generate MATLAB Code from Deep Network Designer.

También puede usar Deep Network Designer para crear experimentos de deep learning que realicen un barrido a través de un intervalo de valores de hiperparámetros o usar la optimización bayesiana para buscar las mejores opciones de entrenamiento. Para ver un ejemplo de cómo usar Experiment Manager para ajustar los hiperparámetros de una red entrenada en Deep Network Designer, consulte Generate Experiment Using 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 una red en serie, una red DAG, una gráfica de capa o un arreglo de capas.

Por ejemplo, abra Deep Network Designer con una red SqueezeNet preentrenada.

net = squeezenet;
deepNetworkDesigner(net);

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.

Sugerencias

Para entrenar varias redes y comparar los resultados, pruebe Experiment Manager. Puede usar Deep Network Designer para crear experimentos compatibles con Experiment Manager.

Historial de versiones

Introducido en R2018b