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.

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
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 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
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 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");
Para importar una red desde una plataforma externa, use Deep Network Designer.
deepNetworkDesigner
Puede importar modelos de PyTorch® o 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.
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 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
deepNetworkDesigner
abre la app Deep Network Designer. Si Deep Network Designer ya está abierta, deepNetworkDesigner
convierte la app en la aplicación activa.
deepNetworkDesigner(
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 net
)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(___,
abre la versión antigua (anterior a la versión R2024a) de la app. Esta versión es compatible con objetos "-v1"
)DAGNetwork
, SeriesNetwork
y LayerGraph
. Para obtener más información, consulte Cambio en el comportamiento predeterminado.
Historial de versiones
Introducido en R2018bAhora puede usar Deep Network Designer para analizar la compresibilidad de redes neuronales. Por ejemplo, puede comprobar la reducción máxima de memoria de las capas de la red usando la poda de Taylor o la proyección.
Abra la red en Deep Network Designer. Después, haga clic en Analyze for Compression.
El informe del análisis de compresión contiene información sobre:
Reducción máxima posible de la memoria
Compatibilidad con la poda y la proyección
Efecto de la arquitectura de la red en la capacidad de podar capas individuales
Memoria de las capas
La página de inicio de Deep Network Designer tiene ahora plantillas para redes neuronales convolucionales 1D. Puede utilizar las plantillas para crear rápidamente redes neuronales convolucionales 1D adecuadas para tareas de clasificación secuencia a etiqueta y secuencia a secuencia.
A partir de la versión R2024a, Deep Network Designer crea objetos dlnetwork
de forma predeterminada. 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
.
Los objetos dlnetwork
tienen varias ventajas y se recomiendan en lugar de los objetos DAGNetwork
, SeriesNetwork
o LayerGraph
.
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 objetosdlnetwork
, 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 trabajoLayerGraph
ytrainNetwork
.
Para reproducir el comportamiento de la app anterior a la versión R2024a, use el indicador "-v1"
.
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
Comparación del comportamiento de Deep Network Designer
No recomendado | Recomendado |
---|---|
En la versión antigua de Deep Network Designer, cuando se trabaja con objetos
| A partir de la versión R2024a de Deep Network Designer, cuando se trabaja con objetos
|
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)