Main Content

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.

Deep Network Designer app

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

espandi tutto

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).

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.

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.

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.

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

espandi tutto

deepNetworkDesigner apre l’app Deep Network Designer. Se Deep Network Designer è già aperto, deepNetworkDesigner ritorna sull'app.

deepNetworkDesigner(net) 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 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") apre la versione legacy (prima della release R2024a) dell'app. Questa versione supporta gli oggetti DAGNetwork, SeriesNetwork e LayerGraph. Per ulteriori informazioni, vedere Modifica del comportamento predefinito.

Cronologia versioni

Introdotto in R2018b

espandi tutto