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
trainnet
| trainingOptions
| dlnetwork
| minibatchpredict
| predict
| scores2label