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.
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
Crear una red neuronal profunda
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.
Preparar una red preentrenada 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.
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.
Importar redes desde plataformas externas
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.
Exportar red a Simulink
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.
Generar código MATLAB para arquitectura de red
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
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 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(___,"-v1"
)
"-v1"
)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 R2018bR2024a: Cambio en el comportamiento predeterminado
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
|
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)