Contenuto principale

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

Reti con più input e più output

In Deep Learning Toolbox™, è possibile definire architetture di rete con più input (ad esempio, reti addestrate su più sorgenti e tipi di dati) o più output (ad esempio, reti che prevedono sia risposte di classificazione che di regressione).

Reti con più input

Definire reti con più input quando la rete richiede dati da più sorgenti o in formati diversi. Ad esempio, reti che richiedono dati dell'immagine acquisiti da più sensori a diverse risoluzioni.

Per definire e addestrare una rete di Deep Learning con più input, specificare l'architettura della rete utilizzando un oggetto dlnetwork e addestrarla utilizzando la funzione trainnet.

Per fare previsioni su una rete di Deep Learning addestrata con più input, utilizzare la funzione minibatchpredict. Specificare i diversi input utilizzando una delle seguenti opzioni:

  • Oggetto combinedDatastore

  • Oggetto transformedDatastore

  • array numerici multipli

Per un esempio che mostra come addestrare una rete con input sia di immagini che di feature, vedere Train Network on Image and Feature Data.

Reti con più output

Definire reti con più output per le attività che richiedono più risposte in diversi formati. Ad esempio, le attività che richiedono un output sia categorico che numerico.

Per addestrare una rete di Deep Learning con più output, utilizzare la funzione trainnet con una funzione di perdita personalizzata. Ad esempio, per definire una perdita che corrisponde alla somma della perdita di entropia incrociata tra etichette previste e target e dell'errore quadratico medio delle risposte numeriche previste e target, utilizzare questa funzione di perdita:

lossFcn = @(Y1,Y2,T1,T2) crossentropy(Y1,T1) + mse(Y2,T2);

Addestrare la rete neurale con la funzione di perdita personalizzata utilizzando la funzione trainnet.

net = trainnet(dsTrain,net,lossFcn,options);

Per fare previsioni su una rete di Deep Learning addestrata con più output, utilizzare la funzione minibatchpredict.

Per un esempio, vedere Train Network with Multiple Outputs.

Utilizzo dei datastore per le reti con più input e più output

Per addestrare una rete con più livelli di input o più output, utilizzare le funzioni combine e transform per creare un datastore che produca un array di celle con (numInputs + numOutputs) colonne, dove numInputs è il numero di input della rete e numOutputs è il numero di output della rete. Le prime colonne numInputs specificano i predittori per ogni input, mentre le ultime colonne numOutputs specificano le risposte. Le proprietà InputNames e OutputNames della rete neurale determinano rispettivamente l'ordine degli input e degli output.

Per inferenza utilizzando la funzione minibatchpredict, il datastore è valido finché la funzione di lettura del datastore restituisce le colonne corrispondenti ai predittori. La funzione minibatchpredict utilizza le prime colonne numInputs e ignora quelle successive, dove numInputs è il numero di livelli di input della rete.

Vedi anche

| | | | |

Argomenti