Image Classifier
Classifica i dati utilizzando una rete neurale addestrata di Deep Learning
Da R2020b
Librerie:
Deep Learning Toolbox /
Deep Neural Networks
Descrizione
Il blocco Image Classifier prevede le etichette della classe per i dati al momento dell’input utilizzando la rete addestrata specificata attraverso il parametro del blocco. Questo blocco consente di caricare una rete preaddestrata nel modello Simulink® da un file MAT o da una funzione MATLAB®.
Esempi
Classify Images in Simulink Using GoogLeNet
Classify an image in Simulink® using the Image Classifier
block. The example uses the pretrained deep convolutional neural network GoogLeNet to perform the classification.
Classify ECG Signals in Simulink Using Deep Learning
Use wavelet transforms and a deep learning network within a Simulink (R) model to classify ECG signals. This example uses the pretrained convolutional neural network from the Classify Time Series Using Wavelet Analysis and Deep Learning example of the Wavelet Toolbox™ to classify ECG signals based on images from the CWT of the time series data. For information on training, see Classify Time Series Using Wavelet Analysis and Deep Learning (Wavelet Toolbox).
Limitazioni
Il blocco Image Classifier non supporta le reti di sequenza e le reti a input multipli e output multipli (MIMO).
Il blocco Image Classifier non supporta la registrazione di file MAT.
Porte
Input
image — Dati dell'immagine o dati delle feature
array numerico
Un array numerico h per w per c per N, dove h, w e c sono rispettivamente l’altezza, la larghezza e il numero di canali delle immagini e N è il numero delle immagini.
Un array numerico N per numFeatures
, dove N è il numero di osservazioni e numFeatures
è il numero delle feature dei dati di input.
Se l’array contiene dei NaN
, verranno propagati attraverso la rete.
Output
ypred — Etichette della classe prevista
enumerate
Etichette della classe prevista con il punteggio maggiore, restituite come un vettore enumerato Nx1 di etichette, dove N è il numero delle osservazioni.
scores — Punteggi delle classi previsti
matrice
Punteggi previsti, restituiti come una matrice K per N, dove K è il numero delle classi e N è il numero dello osservazioni.
labels — Etichette della classe per i punteggi previsti
matrice
Etichette associate ai punteggi previsti, restituite come una matrice N per K, dove N è il numero delle osservazioni e K è il numero delle classi.
Parametri
Network — Sorgente per la rete addestrata
Network from MAT-file
(predefinito) | Network from MATLAB function
Specificare la sorgente per la rete addestrata. Selezionare una delle seguenti opzioni:
Network from MAT-file
: importare una rete addestrata da un file MAT contenente un oggettodlnetwork
.Network from MATLAB function
: importare una rete preaddestrata da una funzione MATLAB. Ad esempio, per utilizzare una rete GoogLeNet preaddestrata, creare una funzionepretrainedGoogLeNet
in un M-file di MATLAB, quindi importare questa funzione.function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Utilizzo programmatico
Parametro del blocco: Network |
Tipo: vettore di carattere, stringa |
Valori: 'Network from MAT-file' | 'Network from MATLAB function' |
Predefinito: 'Network from MAT-file' |
File path — File MAT contenente una rete addestrata
untitled.mat
(predefinito) | Percorso o nome del file MAT
Questo parametro specifica il nome del file MAT che comprende la rete addestrata di Deep Learning da caricare. Se il file non è presente nel percorso MATLAB, utilizzare il pulsante Browse per individuare il file.
Dipendenze
Per abilitare questo parametro, impostare il parametro Network su Network from MAT-file
.
Utilizzo programmatico
Parametro del blocco: NetworkFilePath |
Tipo: vettore di carattere, stringa |
Valori: Percorso o nome del file MAT |
Predefinito: 'untitled.mat' |
MATLAB function — Nome della funzione MATLAB
squeezenet
(predefinito) | Nome della funzione MATLAB
Questo parametro specifica il nome della funzione MATLAB per la rete preaddestrata di Deep Learning. Ad esempio, per utilizzare una rete GoogLeNet preaddestrata, creare una funzione pretrainedGoogLeNet
in un M-file di MATLAB, quindi importare questa funzione.
function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Dipendenze
Per abilitare questo parametro, impostare il parametro Network su Network from MATLAB function
.
Utilizzo programmatico
Parametro del blocco: NetworkFunction |
Tipo: vettore di carattere, stringa |
Valori: Nome della funzione MATLAB |
Predefinito: 'squeezenet' |
Mini-batch size — Dimensione dei mini-batch
128 (predefinito) | intero positivo
Dimensione dei mini-batch da utilizzare per la previsione, specificata come un numero intero positivo. Mini-batch di dimensioni maggiori richiedono più memoria, ma possono portare a previsioni più rapide.
Utilizzo programmatico
Parametro del blocco: MiniBatchSize |
Tipo: vettore di carattere, stringa |
Valori: interi positivi |
Predefinito: '128' |
Resize input — Ridimensionamento delle dimensioni di input
on
(predefinito) | off
Ridimensiona i dati alla porta di input alla dimensione di input della rete.
Utilizzo programmatico
Parametro del blocco: ResizeInput |
Tipo: vettore di carattere, stringa |
Valori: 'off' | 'on' |
Predefinito: 'on' |
Classification — Etichetta prevista di output con il punteggio maggiore
on
(predefinito) | off
Abilita la porta di output ypred
che fornisce l’etichetta con il punteggio più alto.
Utilizzo programmatico
Parametro del blocco: Classification |
Tipo: vettore di carattere, stringa |
Valori: 'off' | 'on' |
Predefinito: 'on' |
Predictions — Fornisce tutti i punteggi e le etichette associate
off
(predefinito) | on
Abilita le porte di output scores
e labels
che forniscono tutti i punteggi previsti e le etichette di classe associate.
Utilizzo programmatico
Parametro del blocco: Predictions |
Tipo: vettore di carattere, stringa |
Valori: 'off' | 'on' |
Predefinito: 'off' |
Class names workspace variable — Variabile del workspace contenente i nomi delle classi dell'output di rete
classNames
(predefinito) | variabile del vettore categorico | variabile dell'array di stringhe | array di celle del nome della variabile dei vettori di carattere
Variabile contenente i nomi delle classi, specificata come vettore categorico, array di stringhe o array di celle dei vettori di carattere.
La dimensione dell'output della rete deve corrispondere al numero di classi.
Dipendenze
Per abilitare questo parametro, impostare il parametro Network su Network from MAT-file
per importare un oggetto addestrato dlnetwork
da un file MAT.
Utilizzo programmatico
Parametro del blocco: classNames |
Tipo: nome variabile di un vettore categorico, di un array di stringhe o di un array di celle dei vettori di carattere. |
Valori: Nome di una variabile contenente i nomi delle classi, specificata come vettore categorico, array di stringhe o array di celle dei vettori di carattere. |
Predefinito: La variabile classNames del workspace. |
Suggerimenti
È possibile accelerare le simulazioni con la generazione di codice sfruttando la libreria Intel® MKL-DNN. Per ulteriori dettagli, vedere Acceleration for Simulink Deep Learning Models.
Funzionalità estese
Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.
Note sull’utilizzo e sulle limitazioni:
Per generare codice C generico che non dipende da librerie di terze parti, in Configuration Parameters > categoria generale Code Generation, impostare il parametro Language su
C
.Per generare codice C++, in Configuration Parameters > categoria generale Code Generation, impostare il parametro Language su
C++
. Per specificare la libreria target per la generazione di codice, in Code Generation > categoria Interface, impostare il parametro Target Library. Impostando questo parametro suNone
si genera codice C++ generico che non dipende da librerie di terze parti.Per i target basati su ERT, il parametro Support: variable-size signals nel pannello Code Generation> Interface deve essere abilitato.
Per un elenco delle reti e dei livelli supportati per la generazione di codice, vedere Networks and Layers Supported for Code Generation (MATLAB Coder).
Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.
Note sull’utilizzo e sulle limitazioni:
Il parametro Language in Configuration Parameters > categoria generale Code Generation deve essere impostato su
C++
.Per un elenco delle reti e dei livelli supportati per la generazione di codice CUDA®, vedere Supported Networks, Layers, and Classes (GPU Coder).
Per saperne di più sulla generazione di codice per i modelli Simulink contenenti il blocco Image Classifier, vedere Code Generation for a Deep Learning Simulink Model to Classify ECG Signals (GPU Coder).
Cronologia versioni
Introdotto in R2020bR2024a: SeriesNetwork
e DAGNetwork
non sono consigliati
A partire dalla release R2024a, non è più consigliato utilizzare gli oggetti SeriesNetwork
e DAGNetwork
. Questo suggerimento indica che gli input SeriesNetwork
e DAGNetwork
al blocco Image Classifier non sono consigliati. Utilizzare invece gli oggetti dlnetwork
. Gli oggetti dlnetwork
presentano questi vantaggi:
Gli oggetti
dlnetwork
sono un tipo di dati unificato che supporta la costruzione di reti, la previsione, l'addestramento integrato, la visualizzazione, la compressione, la verifica e i loop di addestramento personalizzati.Gli oggetti
dlnetwork
supportano una gamma più ampia di architetture di rete che è possibile creare o importare da piattaforme esterne.La funzione
trainnet
supporta gli oggettidlnetwork
che consentono di specificare le funzioni di perdita con facilità. È possibile scegliere tra le funzioni di perdita integrate o specificare una funzione di perdita personalizzata.L'addestramento e la previsione con gli oggetti
dlnetwork
è generalmente più veloce dei workflowLayerGraph
etrainNetwork
.
Il blocco Simulink modella con gli oggetti dlnetwork
che si comportano in modo diverso. I punteggi previsti sono restituiti come matrice K per N, dove K è il numero di classi e N è il numero di osservazioni. Se è presente un modello del blocco Simulink con un oggetto SeriesNetwork
o DAGNetwork
, seguire questi passaggi per utilizzare invece un oggetto dlnetwork
:
Convertire l'oggetto
SeriesNetwork
oDAGNetwork
in undlnetwork
utilizzando la funzionedag2dlnetwork
.Definire una variabile del workspace contenente i nomi delle classi degli output di rete corrispondenti al parametro del blocco Class names workspace variable.
Trasporre i punteggi previsti utilizzando un blocco transpose su un array N per K, dove N è il numero delle osservazioni e K è il numero delle classi.
Vedi anche
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)