create_dl_model — Erstellen eines Deep Learning-Modells.
create_dl_model( : : OutputLayers : DLModelHandle)
Der Operator create_dl_model erstellt ein Deep Learning-Modell
aus einem Graph und gibt dessen Handle in DLModelHandle
zurück.
Ein Deep Learning-Modell in HALCON besteht hauptsächlich aus einem
gerichteten azyklischen Graphen, der die Architektur des Netzwerks definiert.
Weitere Komponenten eines Deep Learning-Modells in HALCON sind Parameter wie
'class_names', 'class_ids' und viele andere,
oder Hyperparameter, die zum Trainieren eines Modells benötigt werden,
wie z.B. 'learning_rate'.
Während Parameter und Hyperparameter nach der Erstellung des Modells
mit set_dl_model_param gesetzt werden können, kann das Modell selbst
nur mit create_dl_model erstellt werden, wenn seine Netzarchitektur
in Form eines Graphen gegeben ist.
Um einen Graphen zu erstellen, der die Netzwerkarchitektur des Modells
definiert, muss man die Netzwerklayer zusammensetzen.
Im Allgemeinen beginnt ein Graph mit einem Eingabelayer.
Ein nachfolgender Layer, der direkt auf den Eingabelayer folgt, verwendet den
Eingabelayer als zuführenden Layer und wird möglicherweise selbst zum
zuführenden Layer eines nächsten Layers und so weiter.
Dies wird wiederholt, bis die Ausgabelayer des Graphen (z.B. Softmax- oder
Loss-Layer) an den Graphen angehängt sind.
Um einen Layer zu erstellen, kann der zur Erstellung spezifizierte Operator
verwendet werden, z.B. wird ein Eingabelayer mit
create_dl_layer_input erzeugt, ein Convolution-Layer
mit create_dl_layer_convolution, usw.
Wenn der Graph definiert ist, kann ein Modell mit
create_dl_model erstellt werden, indem die Handle der Ausgabelayer
des Graphen in OutputLayers übergeben werden.
Es ist zu beachten, dass die Handles der Ausgabelayer bei ihrer Erstellung
alle anderen Layer speichern, die direkt oder indirekt als zuführende
Eingabelayer für die Ausgabelayer dienen.
Das bedeutet, dass die Handles der Ausgabelayer die
gesamte Netzarchitektur, die für die Erstellung des Modells mit
create_dl_model erforderlich ist, beinhalten.
Der Typ des erzeugten Modells, also die Aufgabe, für die das Modell ausgelegt
ist (Klassifikation, Objekterkennung, Segmentierung), ist nur durch die
Netzwerkarchitektur vorgegeben.
Wenn die Netzwerkarchitektur es jedoch zulässt, kann der Typ des Modells
('type') mit set_dl_model_param gesetzt werden.
Ein festgelegter Modelltyp ermöglicht eine benutzerfreundlichere Verwendung
im HALCON Deep-Learning-Workflow.
Unterstützte Typen sind:
Dies ist der Standard-Modelltyp. Die Aufgabe, die
das Neuronale Netz des Modells lösen kann, wird durch seine Architektur
definiert.
Wenn apply_dl_model zur Inferenz angewendet wird, liefert der
Operator die Aktivierungen der Ausgabelayer zurück. Um das Modell
mit train_dl_model_batch zu trainieren, benötigt der
zugrundeliegende Graph Loss-Layer.
Das Modell wird für Klassifizierung
spezifiziert und alle für das Training des Modells erforderlichen Layer
werden an das Modell angepasst.
Wenn apply_dl_model für die Inferenz angewendet wird,
wird die Ausgabe dem Typ entsprechend angepasst, siehe
apply_dl_model für weitere Details.
Siehe Deep Learning / Klassifikation für zusätzliche
Informationen.
Zusätzlich kann der Operator gen_dl_model_heatmap verwendet werden,
um die Heatmap des Modells anzuzeigen.
Das Modell wird für die
Objektdetektion und Instanz-Segmentierung spezifiziert und alle für das
Training des Modells erforderlichen Layer und Anchors werden an das Modell
angepasst.
Wenn apply_dl_model für die Inferenz angewendet wird,
wird die Ausgabe dem Typ entsprechend angepasst, siehe
apply_dl_model für weitere Details.
Siehe Deep Learning / Objektdetektion und Instanz-Segmentierung für zusätzliche Informationen.
Das Modell wird für Semantische Segmentierung
bzw. Kantenextraktion spezifiziert und alle für das Training des Modells
erforderlichen Layer werden an das Modell angepasst.
Wenn apply_dl_model für die Inferenz angewendet wird,
wird die Ausgabe dem Typ entsprechend angepasst, siehe
apply_dl_model für weitere Details.
Siehe Deep Learning / Semantische Segmentierung und Kantenextraktion für zusätzliche
Informationen.
Außerdem stellen viele Deep Learning-Prozeduren mehr Funktionalität für das
Modell zur Verfügung, wenn dessen Typ gesetzt wird. Beispielsweise kann
dev_display_dl_data verwendet werden, um die abgeleiteten
Ergebnisse einfacher darzustellen.
Es ist zu beachten, dass das Setzen eines Modelltyps voraussetzt, dass der Graph bestimmte Strukturbedingungen erfüllt. Wir empfehlen, sich an der Architektur der von uns gelieferten Neuronalen Netze zu orientieren, wenn der Modelltyp auf einen dieser Typen gesetzt werden soll.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
OutputLayers (input_control) dl_layer(-array) → (handle)
Ausgabelayer des Graphen.
DLModelHandle (output_control) dl_model → (handle)
Handle des Deep Learning-Modells.
Sind die Parameterwerte korrekt, dann liefert create_dl_model
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
create_dl_layer_softmax,
create_dl_layer_loss_cross_entropy,
create_dl_layer_loss_focal,
create_dl_layer_loss_huber
Deep Learning Training