Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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.

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

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.

Deep Network Designer start page showing available networks

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.

Deep Network Designer displaying a pretrained image classification network

Per informazioni sulla costruzione di reti utilizzando Deep Network Designer, vedere Build Networks with Deep Network Designer.

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.

    Convolution 2-D layer selected in Deep Network Designer. FilterSize is set to 1,1 and NumFilters is set to 5.

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.

Classification layer selected in Deep Network Designer. OutputSize is set to auto.

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.

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

Cross channel normalization layer selected in Deep Network Designer

Per ulteriori informazioni sulle proprietà del livello, vedere List of Deep Learning Layers.

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.

  1. Fare clic su New nella scheda Designer.

  2. Fermarsi su From Workspace e fare clic su Import.

  3. Selezionare myCustomLayer e fare clic su OK.

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

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 datiMetodo di importazione dei datiVisualizzazione di esempio
Classificazione dell’immagine

Oggetto ImageDatastore o una cartella con sottocartelle contenenti immagini per ogni classe. Le etichette delle classi provengono dai nomi delle sottocartelle.

Selezionare Import Data > Import Image Classification Data.

Import Image Data dialog box

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

Data tab of Deep Network Designer displaying a histogram of the class labels and a selection of random images from the imported data

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, AugmentedImageDatastore, CombinedDatastore, pixelLabelImageDatastore (Computer Vision Toolbox), audioDatastore (Audio Toolbox) o datastore personalizzati.

È possibile importare e addestrare qualsiasi oggetto datastore che lavori con la funzione trainNetwork. Per ulteriori informazioni sulla costruzione e l’utilizzo di oggetti datastore per applicazioni di Deep Learning, vedere Datastores for Deep Learning.

Selezionare Import Data > Import Custom Data.

Import Datastore dialog box

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

Data tab of Deep Network Designer displaying a preview of the first five observations in the datastore

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.

Training progress plot in Deep Network Designer

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.

Training Options dialog box in Deep Network Designer

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.

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 oggetto Layer, 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

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 una rete di serie, una rete DAG, un grafico di livello o un array di livelli.

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