create_dl_modelT_create_dl_modelCreateDlModelCreateDlModelcreate_dl_model (Operator)

Name

create_dl_modelT_create_dl_modelCreateDlModelCreateDlModelcreate_dl_model — Erstellen eines Deep Learning-Modells.

Signatur

create_dl_model( : : OutputLayers : DLModelHandle)

Herror T_create_dl_model(const Htuple OutputLayers, Htuple* DLModelHandle)

void CreateDlModel(const HTuple& OutputLayers, HTuple* DLModelHandle)

void HDlModel::HDlModel(const HDlLayerArray& OutputLayers)

void HDlModel::HDlModel(const HDlLayer& OutputLayers)

void HDlModel::CreateDlModel(const HDlLayerArray& OutputLayers)

void HDlModel::CreateDlModel(const HDlLayer& OutputLayers)

static void HOperatorSet.CreateDlModel(HTuple outputLayers, out HTuple DLModelHandle)

public HDlModel(HDlLayer[] outputLayers)

public HDlModel(HDlLayer outputLayers)

void HDlModel.CreateDlModel(HDlLayer[] outputLayers)

void HDlModel.CreateDlModel(HDlLayer outputLayers)

def create_dl_model(output_layers: MaybeSequence[HHandle]) -> HHandle

Beschreibung

Der Operator create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model erstellt ein Deep Learning-Modell aus einem Graph und gibt dessen Handle in DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle 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_names""class_names""class_names""class_names""class_names", 'class_ids'"class_ids""class_ids""class_ids""class_ids""class_ids" und viele andere, oder Hyperparameter, die zum Trainieren eines Modells benötigt werden, wie z.B. 'learning_rate'"learning_rate""learning_rate""learning_rate""learning_rate""learning_rate". Während Parameter und Hyperparameter nach der Erstellung des Modells mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param gesetzt werden können, kann das Modell selbst nur mit create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_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_inputcreate_dl_layer_inputCreateDlLayerInputCreateDlLayerInputCreateDlLayerInputcreate_dl_layer_input erzeugt, ein Convolution-Layer mit create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution, usw.

Wenn der Graph definiert ist, kann ein Modell mit create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model erstellt werden, indem die Handle der Ausgabelayer des Graphen in OutputLayersOutputLayersOutputLayersOutputLayersoutputLayersoutput_layers ü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_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_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'"type""type""type""type""type") mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param gesetzt werden. Ein festgelegter Modelltyp ermöglicht eine benutzerfreundlichere Verwendung im HALCON Deep-Learning-Workflow. Unterstützte Typen sind:

'generic'"generic""generic""generic""generic""generic":

Dies ist der Standard-Modelltyp. Die Aufgabe, die das Neuronale Netz des Modells lösen kann, wird durch seine Architektur definiert. Wenn apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model zur Inferenz angewendet wird, liefert der Operator die Aktivierungen der Ausgabelayer zurück. Um das Modell mit train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch zu trainieren, benötigt der zugrundeliegende Graph Loss-Layer.

'classification'"classification""classification""classification""classification""classification":

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_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model für die Inferenz angewendet wird, wird die Ausgabe dem Typ entsprechend angepasst, siehe apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model für weitere Details. Siehe Deep Learning / Klassifikation für zusätzliche Informationen.

Zusätzlich kann der Operator gen_dl_model_heatmapgen_dl_model_heatmapGenDlModelHeatmapGenDlModelHeatmapGenDlModelHeatmapgen_dl_model_heatmap verwendet werden, um die Heatmap des Modells anzuzeigen.

'detection'"detection""detection""detection""detection""detection":

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_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model für die Inferenz angewendet wird, wird die Ausgabe dem Typ entsprechend angepasst, siehe apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model für weitere Details. Siehe Deep Learning / Objektdetektion und Instanz-Segmentierung für zusätzliche Informationen.

'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation":

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_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model für die Inferenz angewendet wird, wird die Ausgabe dem Typ entsprechend angepasst, siehe apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_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.

Ausführungsinformationen

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.

Parameter

OutputLayersOutputLayersOutputLayersOutputLayersoutputLayersoutput_layers (input_control)  dl_layer(-array) HDlLayer, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ausgabelayer des Graphen.

DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle (output_control)  dl_model HDlModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Deep Learning-Modells.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_dl_layer_softmaxcreate_dl_layer_softmaxCreateDlLayerSoftmaxCreateDlLayerSoftmaxCreateDlLayerSoftmaxcreate_dl_layer_softmax, create_dl_layer_loss_cross_entropycreate_dl_layer_loss_cross_entropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropycreate_dl_layer_loss_cross_entropy, create_dl_layer_loss_focalcreate_dl_layer_loss_focalCreateDlLayerLossFocalCreateDlLayerLossFocalCreateDlLayerLossFocalcreate_dl_layer_loss_focal, create_dl_layer_loss_hubercreate_dl_layer_loss_huberCreateDlLayerLossHuberCreateDlLayerLossHuberCreateDlLayerLossHubercreate_dl_layer_loss_huber

Nachfolger

set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param

Modul

Deep Learning Training