Deep Network Designer
Progetta, visualizza e addestra le reti di Deep Learning
Descrizione
L’app Deep Network Designer consente di costruire, visualizzare, modificare e addestrare le reti di Deep Learning. Con questa applicazione è possibile:
Costruire, importare, modificare e combinare le reti.
Caricare reti preaddestrate e modificarle per il transfer learning.
Visualizzare e modificare le proprietà dei livelli e aggiungere nuovi livelli e connessioni.
Analizzare la rete per assicurarsi che la sua architettura sia definita correttamente e rilevare i problemi prima dell'addestramento.
Importare e visualizzare i datastore e i dati dell’immagine per l'addestramento e la convalida.
Applicare gli incrementi ai dati di addestramento per la classificazione delle immagini e visualizzare la distribuzione delle etichette delle classi.
Addestrare le reti e monitorare l'addestramento con grafici di precisione, perdita e metriche di convalida.
Esportare le reti addestrate nel workspace o in Simulink®.
Generare codice MATLAB® per la costruzione e l'addestramento delle reti e per creare esperimenti per la sincronizzazione degli iperparametri utilizzando Experiment Manager.
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
Selezione di una rete preaddestrata
Esaminare una rete preaddestrata in Deep Network Designer.
Aprire l'app e selezionare una rete preaddestrata. È anche possibile caricare una rete preaddestrata selezionando la scheda Designer e facendo clic su New. Se è necessario scaricare la rete, fare clic su Install per aprire l’Add-On Explorer. Deep Network Designer dispone di reti preaddestrate adatte per attività sulle immagini e sugli audio. Per caricare le reti audio preaddestrate è necessario disporre di Audio Toolbox™.
Suggerimento
Per iniziare, provare a scegliere una delle reti più veloci di classificazione delle immagini, come SqueezeNet o GoogLeNet. Una volta compreso quali siano le impostazioni che funzionano bene, provare una rete più accurata, come Inception-v3 o ResNet, e verificare se tale rete migliora i risultati. Per ulteriori informazioni sulla selezione di una rete preaddestrata, vedere Reti neurali profonde preaddestrate.
Nel pannello Designer, visualizzare ed esplorare la rete. Per un elenco delle reti disponibili preaddestrate di classificazione delle immagini e per il loro confronto, vedere Reti neurali profonde preaddestrate.
Per informazioni sulla costruzione di reti utilizzando Deep Network Designer, vedere Build Networks with Deep Network Designer.
Modifica 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.
Aprire il Deep Network Designer con SqueezeNet.
deepNetworkDesigner(squeezenet)
Per preparare la rete al transfer learning, sostituire l'ultimo livello apprendibile e il livello di classificazione finale. Per SqueezeNet, l'ultimo livello apprendibile è un livello convoluzionale bidimensionale denominato 'conv10'
.
Trascinare un nuovo convolution2dLayer sull’area di disegno. Impostare la proprietà FilterSize su
1,1
e 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.
Eliminare l’ultimo convolution2dLayer e collegare il nuovo livello.
Suggerimento
Per la maggior parte delle reti preaddestrate (ad esempio, GoogLeNet), l'ultimo livello apprendibile è il livello completamente connesso. Per preparare la rete al transfer learning, sostituire il livello completamente connesso con un nuovo livello completamente connesso e impostare la proprietà OutputSize sul nuovo numero di classi. Per un esempio, vedere Come iniziare a utilizzare Deep Network Designer.
Quindi, eliminare il livello di output della classificazione. Ora trascinare un nuovo classificationLayer sull’area di disegno e collegarlo. Le impostazioni predefinite per il livello di output comportano che la rete apprenda il numero di classi durante l'addestramento.
Verificare la rete facendo clic su Analyze nella scheda Designer. La rete è pronta per l’addestramento se Deep Learning Network Analyzer riscontra zero errori. Per un esempio su come addestrare una rete a classificare nuove immagini, vedere Transfer Learning con Deep Network Designer.
Richiesta di assistenza sulle proprietà del livello
Per ottenere assistenza per la comprensione e la modifica delle proprietà del livello, fare clic sull'icona di aiuto accanto al nome del livello stesso.
Nel pannello Designer, selezionare un livello per visualizzare e modificare le proprietà. Fare clic sull'icona di aiuto accanto al nome del livello per ottenere ulteriori informazioni sulle proprietà.
Per ulteriori informazioni sulle proprietà del livello, vedere List of Deep Learning Layers.
Aggiunta di un livello personalizzato alla rete
Aggiungere livelli dal workspace a una rete in Deep Network Designer.
In Deep Network Designer, è possibile costruire una rete trascinando i livelli incorporati dalla Layer Library al pannello Designer e collegandoli. È inoltre possibile aggiungere livelli personalizzati dal workspace a una rete nel pannello Designer. Si supponga di avere un livello personalizzato memorizzato nella variabile myCustomLayer
.
Fare clic su New nella scheda Designer.
Fermarsi su From Workspace e fare clic su Import.
Selezionare
myCustomLayer
e fare clic su OK.Fare clic su Add.
L'app aggiunge il livello personalizzato in cima pannello Designer. Per vedere il nuovo livello, ingrandirlo con il mouse o fare clic su Zoom in.
Collegare myCustomLayer alla rete nel pannello Designer. Per un esempio su come costruire una rete con un livello personalizzato in Deep Network Designer, vedere .
In Deep Network Designer è possibile anche combinare le reti. Ad esempio, è possibile creare una rete di segmentazione semantica combinando una rete preaddestrata con una sottorete di decodifica.
Per visualizzare o modificare la definizione personalizzata della classe di livello, selezionare il livello e fare clic su Edit Layer Code. Per ulteriori informazioni, vedere View Autogenerated Custom Layers Using Deep Network Designer. (da R2023a)
Importazione dei dati per l’addestramento
Importare i dati in Deep Network Designer per l'addestramento.
È possibile utilizzare la scheda Data di Deep Network Designer per importare i dati di addestramento e di convalida. Deep Network Designer supporta l'importazione dei dati dell’immagine e degli oggetti datastore. Selezionare un metodo di importazione in base al tipo di attività.
Attività | Tipo di dati | Metodo di importazione dei dati | Visualizzazione di esempio |
---|---|---|---|
Classificazione dell’immagine | Oggetto | Selezionare Import Data > Import Image Classification Data. È possibile selezionare le opzioni di incremento e specificare i dati di convalida nella finestra di dialogo Import Image Data (Importa dati immagine). Per ulteriori informazioni, vedere Import Data into Deep Network Designer. | |
Altri workflow estesi (come l’input delle feature numeriche, dati fuori memoria, elaborazione di immagini ed elaborazione di audio e parlato) | Datastore. Per altri workflow estesi, utilizzare un oggetto datastore adatto. Ad esempio, È possibile importare e addestrare qualsiasi oggetto datastore che lavori con la funzione | Selezionare Import Data > Import Custom Data. È possibile specificare i dati di convalida nella finestra di dialogo Import Custom Data (Importa dati personalizzati). Per ulteriori informazioni, vedere Import Data into Deep Network Designer. | |
Addestramento della rete
Addestrare reti neurali profonde utilizzando Deep Network Designer.
Utilizzando Deep Network Designer è possibile addestrare una rete utilizzando i dati dell’immagine o qualsiasi oggetto datastore che lavori con la funzione trainNetwork
. Ad esempio, è possibile addestrare una rete di segmentazione semantica o una rete a input multipli utilizzando un oggetto CombinedDatastore
. Per ulteriori informazioni sull'importazione di dati in Deep Network Designer, vedere Import Data into Deep Network Designer.
Per addestrare una rete sui dati importati in Deep Network Designer, nella scheda Training, fare clic su Train. L'app visualizza un grafico animato dell’avanzamento dell'addestramento. Il grafico mostra la perdita e la precisione del mini-batch, la perdita e la precisione della convalida e ulteriori informazioni sull'avanzamento dell'addestramento. Il grafico presenta un pulsante di arresto , situato nell'angolo in alto a destra. Fare clic sul pulsante per interrompere l'addestramento e ripristinare lo stato attuale della rete.
Per ulteriori informazioni, vedere .
Se si desidera un maggiore controllo sull'addestramento, fare clic su Training Options per selezionare le impostazioni di addestramento. Per ulteriori informazioni sulla selezione delle opzioni di addestramento, vedere trainingOptions
.
Per un esempio su come addestrare una rete di classificazione delle immagini, vedere Transfer Learning con Deep Network Designer. Per un esempio su come addestrare una rete LSTM sequenza-sequenza, vedere Build Time Series Forecasting Network Using Deep Network Designer.
Per addestrare una rete su dati non supportati da Deep Network Designer, selezionare la scheda Designer e fare clic su Export (Esporta) per esportare l'architettura iniziale della rete. È quindi possibile addestrare la rete in modo programmatico, ad esempio utilizzando un loop di addestramento personalizzato.
Esportazione della rete e generazione di codice
Esportare l'architettura della rete creata in Deep Network Designer al workspace o in Simulink e generare codice per ricreare la rete e l'addestramento.
Per esportare l'architettura di rete con i pesi iniziali nel workspace, nella scheda Designer, fare clic su Export. A seconda dell'architettura della rete, Deep Network Designer esporta la rete come un
LayerGraph
, lgraph, o come un oggettoLayer
, layers.Per esportare la rete addestrata in Deep Network Designer al workspace, nella scheda Training, fare clic su Export. Deep Network Designer esporta l'architettura della rete addestrata come un oggetto
DAGNetwork
, trainedNetwork. Deep Network Designer esporta anche i risultati dell'addestramento, come la precisione dell'addestramento e della convalida, come array di struttura trainInfoStruct.Per esportare la rete addestrata in Deep Network Designer a Simulink, nella scheda Training, fare clic su Export > Export to Simulink. Deep Network Designer salva la rete addestrata come un MAT-file e genera blocchi Simulink che rappresentano la rete addestrata. I blocchi generati dipendono dal tipo di rete addestrata.
Image Classifier: classifica i dati utilizzando una rete neurale addestrata di Deep Learning.
Predict: prevede le risposte utilizzando una rete neurale addestrata di Deep Learning.
Stateful Classify: classifica i dati utilizzando una rete neurale ricorrente addestrata.
Stateful Predict: prevede le risposte utilizzando una rete neurale ricorrente addestrata.
Per un esempio su come esportare una rete da Deep Network Designer a Simulink, vedere .
Per ricreare una rete costruita e addestrata in Deep Network Designer, generare codice MATLAB.
Per ricreare i livelli della rete, nella scheda Designer, selezionare Export > Generate Code.
Per ricreare i livelli della rete, compreso qualsiasi parametro apprendibile, nella scheda Designer, selezionare Export > Generate Code with Initial Parameters.
Per ricreare la rete, l'importazione dei dati e l'addestramento, nella scheda Training, selezionare Export > Generate Code for Training.
Dopo aver generato uno script, è possibile eseguire le seguenti attività.
Per ricreare i livelli della rete creati nell'app, eseguire lo script. Se è stato generato lo script di addestramento, l'esecuzione dello script riprodurrà anche l'addestramento della rete.
Esaminare il codice per apprendere come creare e collegare i livelli in modo programmatico e come addestrare una rete profonda.
Per modificare i livelli, modificare il codice. È inoltre possibile eseguire lo script e importare nuovamente la rete nell'app per modificarla.
Per ulteriori informazioni, vedere Generate MATLAB Code from Deep Network Designer.
È inoltre possibile utilizzare Deep Network Designer per creare esperimenti di Deep Learning che spazino in un intervallo di valori di iperparametri o utilizzino l'ottimizzazione bayesiana per trovare le opzioni di addestramento ottimali. Per un esempio su come utilizzare Experiment Manager per regolare gli iperparametri di una rete addestrata in Deep Network Designer, vedere .
Esempi correlati
- Transfer Learning con Deep Network Designer
- Build Networks with Deep Network Designer
- Import Data into Deep Network Designer
- Build Time Series Forecasting Network Using Deep Network Designer
- Build Image-to-Image Regression Network Using Deep Network Designer
- Adapt Pretrained Audio Network for New Data Using Deep Network Designer
- Generate MATLAB Code from Deep Network Designer
- View Autogenerated Custom Layers Using Deep Network Designer
- List of Deep Learning Layers
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 una rete di serie, una rete DAG, un grafico di livello o un array di livelli.net
)
Ad esempio, aprire Deep Network Designer con una rete SqueezeNet preaddestrata.
net = squeezenet; deepNetworkDesigner(net);
Se Deep Network Designer è già aperto, deepNetworkDesigner(net)
ritorna sull'app e chiede di aggiungere o sostituire una rete esistente.
Suggerimenti
Per addestrare più reti e confrontare i risultati, provare a utilizzare Experiment Manager. È possibile utilizzare Deep Network Designer per creare esperimenti adatti per Experiment Manager.
Cronologia versioni
Introdotto in R2018b
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)