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.

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
Seleccionar una red preentrenada
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 Redes neuronales profundas preentrenadas.
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 Redes neuronales profundas preentrenadas.
Para obtener información sobre cómo construir redes con Deep Network Designer, consulte Build Networks with Deep Network Designer.
Editar una red de deep learning para transferencia del aprendizaje
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 de aprendizaje 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.
Sugerencia
En la mayoría de las redes preentrenadas (como GoogLeNet), la última capa de aprendizaje 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.
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 Transferencia del aprendizaje con Deep Network Designer.
Obtener ayuda sobre las propiedades de capa
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.
Para obtener más información sobre las propiedades de las capas, consulte List of Deep Learning Layers.
Añadir una capa personalizada a una red
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
.
Haga clic en New en la pestaña Designer.
Deténgase en From Workspace y haga clic en Import.
Seleccione
myCustomLayer
y haga clic en OK.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.
Importar datos para el entrenamiento
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.
Tarea | Tipo de datos | Método de importación de datos | Visualización de ejemplo |
---|---|---|---|
Clasificación de imágenes | Un objeto | Seleccione Import Data > Import Image Data. 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. | |
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, Puede importar y entrenar cualquier objeto de almacén de datos compatible con la función | Seleccione Import Data > Import Datastore. 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. | |
Entrenar la red
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.
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
.
Para ver un ejemplo de cómo entrenar una red de clasificación de imágenes, consulte Transferencia del aprendizaje con 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.
Exportar la red y generar código
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
LayerGraph
lgraph o como un objetoLayer
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 ver un ejemplo de cómo exportar una red de Deep Network Designer a Simulink, consulte Export Image Classification Network from Deep Network Designer to Simulink.
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
- Transferencia del aprendizaje con Deep Network Designer
- Build Networks with Deep Network Designer
- Import Data into Deep Network Designer
- Train Networks Using Deep Network Designer
- Train Network for Time Series Forecasting Using Deep Network Designer
- Train Simple Semantic Segmentation Network in Deep Network Designer
- Image-to-Image Regression in Deep Network Designer
- Transfer Learning with Pretrained Audio Networks in Deep Network Designer
- Import Custom Layer into Deep Network Designer
- Generate MATLAB Code from Deep Network Designer
- Export Image Classification Network from Deep Network Designer to Simulink
- Generate Experiment Using Deep Network Designer
- List of Deep Learning Layers
Uso programático
deepNetworkDesigner
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
)
net
)deepNetworkDesigner(
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 capas o un arreglo de capas.net
)
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
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)