Predict
Vorhersagen von Antworten mithilfe eines trainierten neuronalen Netzes für Deep Learning
Bibliotheken:
Deep Learning Toolbox /
Deep Neural Networks
Beschreibung
Der Predict-Block sagt die Antworten 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.
Hinweis
Verwenden Sie den Predict-Block, um Vorhersagen in Simulink zu treffen. Verwenden Sie die Funktion minibatchpredict oder predict, um Vorhersagen programmatisch mithilfe von MATLAB Programmcode zu treffen.
Beispiele
Lane and Vehicle Detection in Simulink Using Deep Learning
Use deep convolutional neural networks inside a Simulink® model to perform lane and vehicle detection. This example takes the frames from a traffic video as an input, outputs two lane boundaries that correspond to the left and right lanes of the ego vehicle, and detects vehicles in the frame.
Ports
Eingang
Die Eingangsports des Predict-Blocks akzeptieren die Namen der Eingangsschichten des geladenen Netzes. Wenn Sie beispielsweise imagePretrainedNetwork für MATLAB function angeben, weist der Eingangsport des Predict-Blocks die Kennzeichnung data auf. Auf Basis des geladenen Netzes kann es sich bei dem Eingang zum Predict-Block um Bild-, Sequenz- oder Zeitreihendaten handeln.
Das Layout des Eingangs hängt vom Datentyp ab.
| Daten | Layout der Prädiktoren |
|---|---|
| 2D-Bilder | 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. |
| Vektorsequenzen | s-mal-c-Matrizen, wobei s die Sequenzlänge und c die Anzahl Merkmale der Sequenzen darstellt. |
| 2D-Bildsequenzen | h-mal-w-mal-c-mal-s-Arrays, bei denen h, w und c die Höhe, Breite, und Kanalanzahl der Bilder darstellen und s die Sequenzlänge darstellt. |
| Merkmale | Ein numerisches N-mal-numFeatures-Array, wobei N die Anzahl der Beobachtungen und numFeatures die Anzahl der Merkmale der Eingangsdaten darstellt. |
Falls das Array NaNs enthält, werden diese durch das Netz propagiert.
Ausgang
Die Ausgangsports des Predict-Blocks akzeptieren die Namen der Ausgangsschichten des geladenen Netzes. Wenn Sie beispielsweise imagePretrainedNetwork für MATLAB function angeben, wird der Ausgangsport des Predict-Blocks mit prob_flatten gekennzeichnet. Auf Basis des geladenen Netzes kann der Ausgang des Predict-Blocks vorhergesagte Punktzahlen oder Antworten darstellen.
Die vorhergesagten Punktzahlen oder Antworten werden als K-mal-N-Array zurückgegeben, wobei K die Anzahl Klassen und N die Anzahl Beobachtungen darstellt.
Wenn Sie Activations für eine Netzschicht aktivieren, erstellt der Predict-Block einen neuen Ausgangsport mit dem Namen der ausgewählten Netzschicht. Dieser Ausgang gibt die Aktivierungen der ausgewählten Netzschicht zurück.
Die Aktivierungen der Netzschicht werden als numerisches Array zurückgegeben. Das Ausgangsformat hängt vom Typ der Eingabedaten und dem Typ des Schichtausgangs ab.
Bei einem 2D-Bildausgang werden die Aktivierungen in einem h-mal-w-mal-c-mal-n-Array dargestellt, wobei h, w und c die Höhe, Breite und Kanalanzahl für den Ausgang der gewählten Schicht sind und n die Anzahl der Bilder ist.
Bei einem einzelnen Zeitschritt mit Vektordaten werden die Aktivierungen in einer c-mal-n-Matrix dargestellt, wobei c die Anzahl Merkmale in der Sequenz und n die Anzahl der Sequenzen sind.
Bei einem mehrfachen Zeitschritt mit Vektordaten werden die Aktivierungen in einer c-mal-n-mal-s-Matrix dargestellt, wobei c die Anzahl Merkmale in der Sequenz, n die Anzahl Sequenzen und s die Sequenzlänge ist.
Bei einem einzelnen Zeitschritt mit 2D-Bilddaten werden die Aktivierungen in einem h-mal-w-mal-c-mal-n-Array dargestellt, wobei n die Anzahl Sequenzen ist und h, w und c die Höhe, Breite und Kanalanzahl der Bilder sind.
Parameter
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 FunktionpretrainedGoogLeNetin 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' |
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'
|
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' |
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' |
Aktivieren Sie Ausgangsports, die vorhergesagte Punktzahlen oder Antworten zurückgeben.
Programmatische Nutzung
Blockparameter: Predictions |
| Typ: Zeichenvektor, Zeichenfolge |
Werte: 'off' | 'on' |
Standard: 'on' |
Dieser Parameter legt das vom trainierten dlnetwork erwartete Eingangsdatenformat fest.
Datenformat, angegeben als String-Skalar oder Zeichenvektor. Jedes Zeichen im String muss eine der folgenden Dimensionskennzeichnungen aufweisen:
"S"– Spatial"C"– Channel"B"– Batch"T"– Time"U"– Unspecified
Beispielsweise können Sie für ein Array mit einer Reihe von Sequenzen, deren erste, zweite und dritte Dinension Kanälen, Beobachtungen und Zeitschritten entsprechen, das Format "CBT" festlegen.
Sie können mehrere Dimensionen mit den Kennzeichnungen "S" oder "U" angeben. Sie können die Kennzeichnungen "C", "B" und "T" jeweils höchstens einmal verwenden. Die Software ignoriert nachstehende Singleton-Dimensionen "U" nach der zweiten Dimension.
Weitere Informationen finden Sie unter Deep Learning Data Formats.
Standardmäßig verwendet der Parameter das vom Netz erwartete Datenformat.
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: InputDataFormats |
| Typ: Zeichenvektor, Zeichenfolge |
Werte: Geben Sie bei einem Netz mit einem oder mehreren Eingängen Text im folgenden Format an: "{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}". Geben Sie bei einem Netz ohne Eingangsschicht und mit mehreren Eingangsports Text im folgenden Format an: "{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}". |
| Standard: Vom Netz erwartetes Datenformat. Weitere Informationen finden Sie unter Deep Learning Data Formats. |
Verwenden Sie die Liste Activations, um die Schicht auszuwählen, aus der Merkmale extrahiert werden sollen. Die ausgewählte Schicht erscheint als Ausgangsport des Predict-Blocks.
Programmatische Nutzung
Blockparameter: Activations |
| Typ: Zeichenvektor, Zeichenfolge |
Werte: Zeichenvektor der Form '{'layerName1',layerName2',...}' |
Standard: '' |
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
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 aufNonegesetzt, wird generischer C++ Code erzeugt, der nicht von Bibliotheken von Drittanbietern abhängig ist.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).
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 Predict-Block enthalten, finden Sie unter Code Generation for a Deep Learning Simulink Model That Performs Lane and Vehicle Detection (GPU Coder).
Versionsverlauf
Eingeführt in R2020bAb R2024a werden die Objekte SeriesNetwork und DAGNetwork nicht mehr empfohlen. Diese Empfehlung bedeutet, dass SeriesNetwork- und DAGNetwork-Eingänge zum Predict-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
trainnetunterstü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 eindlnetworkmithilfe der Funktiondag2dlnetwork.Wenn der Eingang Ihres Blocks eine Vektorsequenz ist, transponieren Sie die Matrix mithilfe eines Transpose-Blocks auf die Größe s-mal-c, wobei s die Sequenzlänge ist und c die Anzahl Merkmale der Sequenzen ist.
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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)
