Image Classifier
Klassifizierung von Daten mithilfe eines trainierten neuronalen Deep-Learning-Netzes
Seit R2020b
Bibliotheken:
Deep Learning Toolbox /
Deep Neural Networks
Beschreibung
Der Image Classifier-Block sagt die Klassenbezeichnungen für die Daten am Eingang voraus, indem er das über den Blockparameter angegebene trainierte Netz verwendet. Dieser Block ermöglicht das Laden eines vortrainierten Netzes in das Simulink®-Modell aus einer MAT-Datei oder aus einer MATLAB®-Funktion.
Beispiele
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).
Einschränkungen
Der Image Classifier-Block unterstützt keine Sequenznetze und Netze mit mehreren Eingängen und mehreren Ausgängen (MIMO).
Der Image Classifier-Block unterstützt keine MAT-Dateiprotokollierung.
Ports
Eingang
image — Bild- oder Merkmalsdaten
numerisches Array
Ein h-mal-w-mal-c-mal-N numerisches Array, wobei h, w und c die Höhe, die Breite bzw. die Anzahl der Kanäle der Bilder sind, und N die Anzahl der Bilder ist.
Ein N-mal-numFeatures
numerisches Array, wobei N die Anzahl der Beobachtungen und numFeatures
die Anzahl der Merkmale der Eingangsdaten ist.
Falls das Array NaN
enthält, werden diese durch das Netz propagiert.
Ausgang
ypred — Vorausgesagte Klassenbezeichnungen
aufgezählt
Vorausgesagte Klassenbezeichnungen mit der höchsten Punktzahl, zurückgegeben als ein N-mal-1 Aufzählungsvektor von Bezeichnungen, wobei N die Anzahl der Beobachtungen ist.
scores — Voraussichtliche Klassenpunktzahlen
Matrix
Vorausgesagte Punktzahlen, zurückgegeben als K-mal-N-Matrix, wobei K die Anzahl der Klassen ist, und N die Anzahl der Beobachtungen ist.
labels — Klassenbezeichnungen für vorhergesagte Punktzahlen
Matrix
Mit den vorausgesagten Punktzahlen verbundene Bezeichnungen, zurückgegeben als N-mal-K-Matrix, wobei N die Anzahl der Beobachtungen ist, und K die Anzahl der Klassen ist.
Parameter
Network — Quelle für trainiertes Netz
Network from MAT-file
(Standardeinstellung) | Network from MATLAB function
Geben Sie die Quelle für das trainierte Netz an. Wählen Sie eine der folgenden Möglichkeiten:
Network from MAT-file
– Importieren eines trainierten Netzes aus einer MAT-Datei, die eindlnetwork
-Objekt enthält.Network from MATLAB function
– Importieren eines vortrainierten Netzes aus einer MATLAB-Funktion. Um zum Beispiel ein vortrainiertes GoogLeNet zu verwenden, erstellen Sie eine FunktionpretrainedGoogLeNet
in einer MATLAB-M-Datei und importieren Sie diese Funktion dann.function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Programmatische Nutzung
Blockparameter: Network |
Typ: Zeichenvektor, Zeichenfolge |
Werte: 'Network from MAT-file' | 'Network from MATLAB function' |
Standard: 'Network from MAT-file' |
File path — MAT-Datei mit trainiertem Netz
untitled.mat
(Standardeinstellung) | MAT-Dateipfad oder -name
Dieser Parameter gibt den Namen der MAT-Datei an, die das zu ladende trainierte Deep-Learning-Netz enthält. Wenn sich die Datei nicht im MATLAB-Pfad befindet, verwenden Sie die Schaltfläche Browse, um die Datei zu finden.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie den Network-Parameter auf Network from MAT-file
.
Programmatische Nutzung
Blockparameter: NetworkFilePath |
Typ: Zeichenvektor, Zeichenfolge |
Werte: MAT-Dateipfad oder -name |
Standard: 'untitled.mat' |
MATLAB function — Name der MATLAB-Funktion
squeezenet
(Standardeinstellung) | Name der MATLAB-Funktion
Dieser Parameter gibt den Namen der MATLAB-Funktion für das vortrainierte Deep-Learning-Netz an. Um zum Beispiel ein vortrainiertes GoogLeNet zu verwenden, erstellen Sie eine Funktion pretrainedGoogLeNet
in einer MATLAB-M-Datei und importieren Sie diese Funktion dann.
function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie den Network-Parameter auf Network from MATLAB function
.
Programmatische Nutzung
Blockparameter: NetworkFunction |
Typ: Zeichenvektor, Zeichenfolge |
Werte: Name der MATLAB-Funktion |
Standard: 'squeezenet' |
Mini-batch size — Größe der Mini-Batches
128 (Standardeinstellung) | positive Ganzzahl
Größe der für die Vorhersage zu verwendenden Mini-Batches, angegeben als positive Ganzzahl. Größere Mini-Batches erfordern mehr Speicherplatz, können aber zu schnelleren Vorhersagen führen.
Programmatische Nutzung
Blockparameter: MiniBatchSize |
Typ: Zeichenvektor, Zeichenfolge |
Werte: positive Ganzzahl |
Standard: '128' |
Resize input — Größe der Eingangsdimensionen ändern
on
(Standardeinstellung) | off
Die Größe der Daten am Eingangsport wird an die Eingangsgröße des Netzes angepasst.
Programmatische Nutzung
Blockparameter: ResizeInput |
Typ: Zeichenvektor, Zeichenfolge |
Werte: 'off' | 'on' |
Standard: 'on' |
Classification — Ausgabe des vorhergesagten Bezeichnung mit der höchsten Punktzahl
on
(Standardeinstellung) | off
Aktivieren des Ausgangsports ypred
, der die Bezeichnung mit der höchsten Punktzahl ausgibt.
Programmatische Nutzung
Blockparameter: Classification |
Typ: Zeichenvektor, Zeichenfolge |
Werte: 'off' | 'on' |
Standard: 'on' |
Predictions — Ausgabe aller Punktzahlen und zugehörigen Bezeichnungen
off
(Standardeinstellung) | on
Aktivieren der Ausgangsports scores
und labels
, die alle vorhergesagten Punktzahlen und die dazugehörigen Klassenbezeichnungen ausgeben.
Programmatische Nutzung
Blockparameter: Predictions |
Typ: Zeichenvektor, Zeichenfolge |
Werte: 'off' | 'on' |
Standard: 'off' |
Class names workspace variable — Workspace-Variable, die die Klassennamen der Netzwerkausgabe enthält
classNames
(Standardeinstellung) | kategorische Vektorvariable | Zeichenfolgen-Array-Variable | Zellen-Array von Zeichenvektoren Variablenname
Variable, die Klassennamen enthält, die als kategorischer Vektor, als Zeichenfolgen-Array oder als Zellen-Array von Zeichenvektoren angegeben werden.
Die Ausgangsgröße des Netzes muss der Anzahl der Klassen entsprechen.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie den Network-Parameter auf Network from MAT-file
, um ein trainiertes dlnetwork
-Objekt aus einer MAT-Datei zu importieren.
Programmatische Nutzung
Blockparameter: classNames |
Typ: Variablenname eines kategorischen Vektors, eines Zeichenfolgen-Arrays oder eines Zellen-Arrays von Zeichenvektoren. |
Werte: Name einer Variablen, die Klassennamen enthält, angegeben als kategorischer Vektor, als Zeichenfolgen-Array oder als Zellen-Array von Zeichenvektoren. |
Standard: Die Workspace-Variable classNames . |
Tipps
Sie können Ihre Simulationen mit Codegenerierung beschleunigen, indem Sie die Vorteile der Intel® MKL-DNN-Bibliothek nutzen. Weitere Einzelheiten finden Sie unter Acceleration for Simulink Deep Learning Models.
Erweiterte Fähigkeiten
C/C++ Codegenerierung
Generieren von C und C++ Code mit Simulink® Coder™.
Verwendungshinweise und Einschränkungen:
Um generischen C Code zu erzeugen, der nicht von Bibliotheken von Drittanbietern abhängt, setzen Sie in der allgemeinen Kategorie Configuration Parameters > Code Generation den Language-Parameter auf
C
.Um C++ Code zu erzeugen, setzen Sie in der allgemeinen Kategorie Configuration Parameters > Code Generation den Language-Parameter auf
C++
. Um die Zielbibliothek für die Codegenerierung festzulegen, stellen Sie in der Kategorie Code Generation > Interface den Parameter Target Library ein. Wird dieser Parameter aufNone
gesetzt, wird generischer C++ Code erzeugt, der nicht von Bibliotheken von Drittanbietern abhängig ist.Für ERT-basierte Ziele muss der Parameter Support: variable-size signals im Fensterbereich Code Generation> Interface aktiviert sein.
Eine Liste der Netze und Schichten, die für die Codegenerierung unterstützt werden, finden Sie unter Networks and Layers Supported for Code Generation (MATLAB Coder).
GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.
Verwendungshinweise und Einschränkungen:
Der Language-Parameter in der allgemeinen Kategorie Configuration Parameters > Code Generation muss auf
C++
gesetzt sein.Eine Liste der Netze und Schichten, die für CUDA®-Codegenerierung unterstützt werden, finden Sie unter Supported Networks, Layers, and Classes (GPU Coder).
Um mehr über die Generierung von Code für Simulink-Modelle zu erfahren, die den Image Classifier-Block enthalten, finden Sie unter Code Generation for a Deep Learning Simulink Model to Classify ECG Signals (GPU Coder).
Versionsverlauf
Eingeführt in R2020bR2024a: SeriesNetwork
und DAGNetwork
werden nicht empfohlen
Ab R2024a werden die Objekte SeriesNetwork
und DAGNetwork
nicht mehr empfohlen. Diese Empfehlung bedeutet, dass SeriesNetwork
- und DAGNetwork
-Eingänge zum Image Classifier-Block nicht empfohlen werden. Verwenden Sie stattdessen die dlnetwork
-Objekte. dlnetwork
-Objekte haben folgende Vorteile:
dlnetwork
-Objekte haben einen einheitlichen Datentyp, der die Erstellung von Netzwerken, Vorhersagen, integriertes Training, Visualisierung, Komprimierung, Verifikation und benutzerdefinierte Trainingsschleifen unterstützt.dlnetwork
-Objekte unterstützen eine breitere Palette von Netzwerkarchitekturen, die Sie erstellen oder von externen Plattformen importieren können.Die Funktion
trainnet
unterstütztdlnetwork
-Objekte, so dass Sie Verlustfunktionen einfach angeben können. Sie können aus integrierten Verlustfunktionen wählen oder eine benutzerdefinierte Verlustfunktion angeben.Training und Vorhersage mit
dlnetwork
-Objekten ist in der Regel schneller alsLayerGraph
- undtrainNetwork
-Workflows.
Simulink-Blockmodelle mit dlnetwork
-Objekten verhalten sich unterschiedlich. Die vorhergesagten Werte werden als K-mal-N-Matrix zurückgegeben, wobei K die Anzahl der Klassen und N die Anzahl der Beobachtungen ist. Wenn Sie ein bestehendes Simulink-Blockmodell mit einem SeriesNetwork
- oder DAGNetwork
-Objekt haben, führen Sie die folgenden Schritte aus, um stattdessen ein dlnetwork
-Objekt zu verwenden:
Konvertieren Sie das
SeriesNetwork
- oderDAGNetwork
-Objekt in eindlnetwork
mithilfe der Funktiondag2dlnetwork
.Definieren Sie eine Workspace-Variable, die die Klassennamen des Netzausgangs enthält, die dem Blockparameter Class names workspace variable entsprechen.
Transponieren Sie die vorhergesagten Werte mithilfe eines Transpositionsblocks in ein N-mal-K-Array, wobei N die Anzahl der Beobachtungen, und K die Anzahl der Klassen ist.
Siehe auch
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
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)