Deep Network Designer
Progettare e visualizzare reti di Deep Learning
Descrizione
L'app Deep Network Designer consente di importare, costruire, visualizzare e modificare le reti di Deep Learning. Con questa applicazione è possibile:
Costruire, modificare e combinare le reti.
Caricare reti preaddestrate e modificarle per il transfer learning.
Importare reti da PyTorch® e TensorFlow™.
Analizzare le reti per assicurarsi che la loro architettura sia definita correttamente.
Esportare le reti su Simulink®.
Generare codice MATLAB® per la costruzione delle reti.
Apri l’app Deep Network Designer
Barra degli strumenti MATLAB: Nella scheda Apps, sotto Machine Learning and Deep Learning, fare clic sull’icona dell’app.
Nel prompt dei comandi MATLAB: Immettere
deepNetworkDesigner
.
Esempi
Costruzione della rete neurale profonda
Creare una rete di classificazione per i dati delle feature numeriche.
Apri Deep Network Designer.
deepNetworkDesigner
Per creare una rete nuova, utilizza la funzione di pausa su Blank Network (Rete vuota) e fai clic su New (Nuova). L'app apre un'area di disegno dove è possibile trascinare e rilasciare i livelli.
Dalla Layer Library (Libreria livelli), trascinare un featureInputLayer
nell'area di disegno. È possibile utilizzare un filtro Layer Library (Libreria livelli) per trovare i livelli. Selezionare il livello. Nel pannello Properties (Proprietà), impostare Normalization
su "zscore"
e InputSize
sul numero di feature presenti nei dati. Quindi, trascinare un fullyConnectedLayer
nell'area di disegno. Per collegare i livelli, fermarsi su featureInputLayer
e fare clic sulla porta out
. Trascinare la freccia sulla porta in
del fullyConnectedLayer
.
Aggiungere un layerNormalizationLayer
seguito da un reluLayer
all'area di disegno e collegarli in sequenza.
Infine, aggiungere un fullyConnectedLayer
seguito da un softmaxLayer
e collegarli. Per l'ultimo fullyConnectedLayer
, selezionare il livello e impostare OutputSize
sul numero di classi presenti nei dati.
Per allineare i livelli in modo automatico, fare clic su Auto Arrange (Disposizione automatica).
Per verificare che la rete sia pronta per l'addestramento, selezionare Analyze (Analizza). Il Deep Learning Network Analyzer non riporta avvisi o errori.
Per esportare la rete nel workspace, fare clic su Export (Esporta). Per generare il codice per ricreare la rete, fare clic su Export > Generate Code without Initial Parameters (Esporta > Genera codice senza i parametri iniziali).
Preparazione di una rete preaddestrata per il transfer learning
Preparare una rete per il transfer learning modificandola nel Deep Network Designer.
Il transfer learning consiste nel prendere una rete preaddestrata di Deep Learning e perfezionarla per apprendere una nuova attività. È possibile trasferire rapidamente le feature apprese a una nuova attività utilizzando un numero minore di immagini di addestramento. Il transfer learning è quindi spesso più veloce e semplice rispetto all'addestramento di una rete da zero. Per utilizzare una rete preaddestrata per il transfer learning, è necessario modificare il numero di classi affinché corrisponda al nuovo set di dati.
Deep Network Designer fornisce una selezione di reti di audio e di immagini preaddestrate. Per scoprire le reti preaddestrate, aprire Deep Network Designer.
deepNetworkDesigner
Per questo esempio, fermarsi su SqueezeNet e fare clic su Open (Apri).
Per preparare la rete al transfer learning, modificare l'ultimo livello apprendibile. Per SqueezeNet, l'ultimo livello apprendibile è il livello convulozionale bidimensionale 'conv10'
.
Selezionare il livello
'conv10'
. Nella parte inferiore del pannello Properties (Proprietà), fare clic su Unlock Layer (Sblocca livello). Sbloccando il livello si eliminano tutti gli apprendimenti del livello. Nella finestra di dialogo che mostra l'avviso, fare clic su Unlock Anyway (Sblocca comunque). In questo modo si sbloccano le proprietà del livello in modo da poterle adattare alla nuova attività. Impostare la proprietà NumFilters sul nuovo numero di classi.Modificare le velocità di apprendimento in modo che l'apprendimento sia più veloce nel nuovo livello rispetto ai livelli trasferiti aumentando i valori WeightLearnRateFactor e BiasLearnRateFactor a 10.
Prima della release R2023b: Per modificare le proprietà del livello per una nuova attività, è necessario sostituire i livelli anziché sbloccarli.
Verifica la rete facendo clic su Analyze (Analizzare). La rete è pronta all’addestramento se Deep Learning Network Analyzer riscontra zero errori. Per esportare la rete preparata nel workspace, fare clic su Export (Esporta). Per generare codice MATLAB per la creazione della rete, fare clic su Generate Code with Initial Parameters (Genera codice con i parametri iniziali).
Per un esempio su come addestrare una rete a classificare nuove immagini, vedere Preparazione della rete per il transfer learning con Deep Network Designer.
Importazione della rete da una piattaforma esterna
Importare una rete neurale da PyTorch® o TensorFlow™.
Per questo esempio, importare il modello MNASNet (Copyright© Soumith Chintala 2016) PyTorch. Scaricare il file mnasnet1_0
, che ha una dimensione di circa 17 MB, dal sito web di MathWorks.
modelfile = matlab.internal.examples.downloadSupportFile("nnet", ... "data/PyTorchModels/mnasnet1_0.pt");
Per importare una rete da una piattaforma esterna, utilizzare Deep Network Designer.
deepNetworkDesigner
È possibile importare modelli da PyTorch® o TensorFlow™.
Per i modelli PyTorch®, dall'icona PyTorch. Nella finestra di dialogo Import PyTorch Model (Importa modello PyTorch), copiare la posizione del file del modello, quindi fare clic su Import (Importa).
Quando si importano reti PyTorch con Deep Network Designer, è possibile specificare le dimensioni di input della rete. Questa opzione è disponibile solo quando la specifica delle dimensioni di input può rendere l'importazione meno problematica, ad esempio riducendo il numero di livelli personalizzati.
L'app importa la rete e genera un Report di importazione. Il Report di importazione mostra eventuali problemi con la rete che richiedono attenzione prima che possa essere utilizzata per l'addestramento o l'inferenza. Ad esempio, il report mostra un avviso se l'applicazione non è in grado di dedurre le dimensioni dell'input o se è necessario completare eventuali livelli segnaposto.
Per un esempio che mostra come importare una rete PyTorch® in Deep Network Designer e correggere eventuali problemi, vedere Import PyTorch® Model Using Deep Network Designer.
Esportazione della rete in Simulink
Esportare una rete addestrata da Deep Network Designer a Simulink®.
Apri Deep Network Designer.
deepNetworkDesigner
Fermarsi su SqueezeNet e fare clic su Open (Apri). Per esportare la rete in Simulink, selezionare Export > Export to Simulink (Esporta > Esporta in Simulink). Nella finestra di dialogo Export to Simulink (Esporta in Simulink), selezionare una posizione dove salvare il file MAT con i parametri di rete, quindi selezionare Export (Esporta). Se la rete non è inizializzata, l'app tenta di inizializzarla durante l'esportazione.
I blocchi generati dall'app dipendono dal tipo di rete.
Predict: prevede le risposte utilizzando una rete neurale addestrata di Deep Learning.
Stateful Predict: prevede le risposte utilizzando una rete neurale ricorrente addestrata.
Per SqueezeNet, l'app genera un blocco Predict.
Generazione di codice MATLAB per l'architettura di rete
L'app Deep Network Designer consente di generare codice MATLAB® che ricrea l'architettura di rete.
Per ricreare i livelli della rete, compresi i parametri iniziali, selezionare Export > Generate Network Code With Parameters (Esporta > Genera codice di rete con i parametri). L'app crea uno script live e un file MAT contenente i parametri iniziali (pesi e bias) della rete. Eseguire lo script per ricreare i livelli della rete, compresi i parametri apprendibili dal file MAT. Se si desidera eseguire il transfer learning, utilizzare questa opzione per preservare i pesi.
Per ricreare solo i livelli della rete, selezionare Export > Generate Network Code Without Parameters (Esporta > Genera codice di rete senza i parametri). Questa rete non contiene parametri iniziali, come i pesi preaddestrati.
L'esecuzione dello script generato restituisce l'architettura di rete come oggetto dlnetwork
. Per un esempio di addestramento di una rete esportata da Deep Network Designer, vedere Come iniziare a utilizzare Deep Network Designer. Per saperne di più sulla generazione di codice, vedere Generazione di codice MATLAB da Deep Network Designer.
Esempi correlati
Uso programmatico
deepNetworkDesigner
deepNetworkDesigner
apre l’app Deep Network Designer. Se Deep Network Designer è già aperto, deepNetworkDesigner
ritorna sull'app.
deepNetworkDesigner(net
)
net
)deepNetworkDesigner(
apre l’app Deep Network Designer e carica la rete specificata nell'app stessa. La rete può essere un array di livelli o un oggetto net
)dlnetwork
. Se si importa un oggetto DAGNetwork
o SeriesNetwork
, l'app tenta di convertire la rete in un oggetto dlnetwork
. Per ulteriori informazioni, vedere dag2dlnetwork
. Se si importa un oggetto LayerGraph
, l'app tenta di convertirlo in un oggetto dlnetwork
.
Se Deep Network Designer è già aperto, deepNetworkDesigner(net)
ritorna sull'app e chiede di aggiungere o sostituire qualsiasi rete esistente.
deepNetworkDesigner(___,"-v1"
)
"-v1"
)deepNetworkDesigner(___,
apre la versione legacy (prima della release R2024a) dell'app. Questa versione supporta gli oggetti "-v1"
)DAGNetwork
, SeriesNetwork
e LayerGraph
. Per ulteriori informazioni, vedere Modifica del comportamento predefinito.
Cronologia versioni
Introdotto in R2018bR2024a: Modifica del comportamento predefinito
Per impostazione predefinita, a partire dalla release R2024a, Deep Network Designer crea oggetti dlnetwork
. Se si importa un oggetto DAGNetwork
o SeriesNetwork
, l'app tenta di convertire la rete in un oggetto dlnetwork
. Per ulteriori informazioni, vedere dag2dlnetwork
. Se si importa un oggetto LayerGraph
, l'app tenta di convertirlo in un oggetto dlnetwork
.
Gli oggetti dlnetwork
presentano diversi vantaggi e sono consigliati al posto degli oggetti DAGNetwork
, SeriesNetwork
o LayerGraph
.
Gli oggetti
dlnetwork
sono un tipo di dati unificato che supporta la costruzione di reti, la previsione, l'addestramento integrato, la visualizzazione, la compressione, la verifica e i loop di addestramento personalizzati.Gli oggetti
dlnetwork
supportano una gamma più ampia di architetture di rete che è possibile creare o importare da piattaforme esterne.La funzione
trainnet
supporta gli oggettidlnetwork
che consentono di specificare le funzioni di perdita con facilità. È possibile scegliere tra le funzioni di perdita integrate o specificare una funzione di perdita personalizzata.L'addestramento e la previsione con gli oggetti
dlnetwork
è generalmente più veloce dei workflowLayerGraph
etrainNetwork
.
Per replicare il comportamento dell'app prima della release R2024a, utilizzare il contrassegno "-v1"
.
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
Confronto tra i comportamenti di Deep Network Designer
Non consigliato | Consigliato |
---|---|
Quando si lavora con gli oggetti
| A partire dalla release R2024a, quando si lavora con gli oggetti
|
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi 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)