set_dl_model_paramT_set_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param (Operator)

Name

set_dl_model_paramT_set_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param — Setzen der Parameter des Deep Learning-basierten Models.

Signatur

set_dl_model_param( : : DLModelHandle, GenParamName, GenParamValue : )

Herror T_set_dl_model_param(const Htuple DLModelHandle, const Htuple GenParamName, const Htuple GenParamValue)

void SetDlModelParam(const HTuple& DLModelHandle, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDlModel::SetDlModelParam(const HString& GenParamName, const HTuple& GenParamValue) const

void HDlModel::SetDlModelParam(const HString& GenParamName, double GenParamValue) const

void HDlModel::SetDlModelParam(const char* GenParamName, double GenParamValue) const

void HDlModel::SetDlModelParam(const wchar_t* GenParamName, double GenParamValue) const   (Nur Windows)

static void HOperatorSet.SetDlModelParam(HTuple DLModelHandle, HTuple genParamName, HTuple genParamValue)

void HDlModel.SetDlModelParam(string genParamName, HTuple genParamValue)

void HDlModel.SetDlModelParam(string genParamName, double genParamValue)

def set_dl_model_param(dlmodel_handle: HHandle, gen_param_name: str, gen_param_value: MaybeSequence[Union[str, float, int]]) -> None

Beschreibung

set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param setzt die Parameter und Hyperparameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name des Deep Learning-Modells DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle auf die Werte in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value.

Die Werte, die GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name annehmen kann, hängen vom Modelltyp ab: Es gibt Parameter, die für jedes Deep Learning-Modell gesetzt werden können, während andere nur für spezielle Modelle gesetzt werden können. Eine Beschreibung der spezifischen Parameter, deren Werte nur gesetzt aber nicht abgefragt werden können, ist weiter unten gegeben. Für alle anderen Parameter ist die spezifische Beschreibung in get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param zu finden. In get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param wird zudem ein Überblick darüber gegeben, für welche Modelltypen Parameter gesetzt und welche Operatoren dafür genutzt werden können.

Im Folgenden werden die Parameter aufgelistet, die mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param gesetzt werden können. Dabei bezeichnen die folgenden Symbole den Modelltypen, für welchen der Parameter einflussreich gesetzt werden kann.

Auf mehrere Modelltypen anwendbar

'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size": Any
'batch_size_multiplier'"batch_size_multiplier""batch_size_multiplier""batch_size_multiplier""batch_size_multiplier""batch_size_multiplier": CL OD SE
'class_ids'"class_ids""class_ids""class_ids""class_ids""class_ids": OD SE
'device'"device""device""device""device""device": Any
'enable_resizing'"enable_resizing""enable_resizing""enable_resizing""enable_resizing""enable_resizing": Any

Wird diese Operation aufgerufen, so werden gewisse Pooling-Layer des Netzwerks umgewandelt. Genauer gesagt werden alle nicht-globalen Pooling-Layer deren Ausgabe-Merkmalskarten mit Größe 1x1 in globale Pooling-Layer umgewandelt. So wird z.B. ein 'average pooling' (Vereinigung durch Mittelwert) in ein 'global average pooling' umgewandelt. Für weitere Informationen zu Pooling-Layern wird auf den „Solution Guide on Classification“ verwiesen.

Es gilt zu beachten, ist diese Operation einmal durchgeführt, kann sie nicht mehr rückgängig gemacht werden. Entsprechend ist nur der Wert 'true'"true""true""true""true""true" setzbar. Falls das Netzwerk keinen solchen Layer hat, wird nichts getan und die Operation als erfolgreich betrachtet.

'fuse_conv_relu'"fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu": Any

Wird diese Operation aufgerufen, so werden Layer Paare, bestehend aus einem Faltungs-Layer ohne Aktivierung und einem direkt verknüpften Activation Layer mit Aktivierungsmodus ReLu, fusioniert. Um dies zu tun, darf die Ausgabe des Faltungs-Layers nur vom Activation Layer als Eingabe verwendet werden. Daraus entsteht ein Faltungs-Layer mit ReLu Aktivierung. Weitere Informationen zu Layern und möglichen Modi befinden sich im „Solution Guide on Classification“.

Es gilt zu beachten, ist diese Operation einmal durchgeführt, kann sie nicht mehr rückgängig gemacht werden. Entsprechend ist nur der Wert 'true'"true""true""true""true""true" setzbar. Falls das Netzwerk kein entsprechendes Layer Paar hat, wird nichts getan und die Operation als erfolgreich betrachtet.

'fuse_bn_relu'"fuse_bn_relu""fuse_bn_relu""fuse_bn_relu""fuse_bn_relu""fuse_bn_relu": Any

Wird diese Operation aufgerufen, so werden Layer Paare, bestehend aus einem Batchnormalisierungs-Layer ohne Aktivierung und einem direkt verknüpften Activation Layer mit Aktivierungsmodus ReLu, fusioniert. Um dies zu tun, darf die Ausgabe des Batchnormalisierungs-Layers nur vom Activation Layer als Eingabe verwendet werden. Daraus entsteht ein Batchnormalisierungs-Layer mit ReLu Aktivierung. Weitere Informationen zu Layern und möglichen Modi befinden sich im „Solution Guide on Classification“.

Es gilt zu beachten, ist diese Operation einmal durchgeführt, kann sie nicht mehr rückgängig gemacht werden. Entsprechend ist nur der Wert 'true'"true""true""true""true""true" setzbar. Falls das Netzwerk kein entsprechendes Layer Paar hat, wird nichts getan und die Operation als erfolgreich betrachtet.

'gpu'"gpu""gpu""gpu""gpu""gpu": Any
'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions""image_dimensions": AD CL SE
'image_height'"image_height""image_height""image_height""image_height""image_height", 'image_width'"image_width""image_width""image_width""image_width""image_width": AD CL SE
'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels""image_num_channels": AD CL SE
'input_dimensions'"input_dimensions""input_dimensions""input_dimensions""input_dimensions""input_dimensions": AD CL SE
'learning_rate'"learning_rate""learning_rate""learning_rate""learning_rate""learning_rate": CL OD SE
'meta_data'"meta_data""meta_data""meta_data""meta_data""meta_data": Any
'momentum'"momentum""momentum""momentum""momentum""momentum": CL OD SE
'optimize_for_inference'"optimize_for_inference""optimize_for_inference""optimize_for_inference""optimize_for_inference""optimize_for_inference": CL OD SE
'precision'"precision""precision""precision""precision""precision": Any
'precision_is_converted'"precision_is_converted""precision_is_converted""precision_is_converted""precision_is_converted""precision_is_converted": Any
'runtime'"runtime""runtime""runtime""runtime""runtime": Any
'runtime_init'"runtime_init""runtime_init""runtime_init""runtime_init""runtime_init": Any

Wird 'runtime_init'"runtime_init""runtime_init""runtime_init""runtime_init""runtime_init" auf 'immediately'"immediately""immediately""immediately""immediately""immediately" gesetzt wird der GPU-Speicher initialisiert und das entsprechende Handle erzeugt. Andernfalls passiert das sobald es notwendig ist, was zu signifikant längeren Laufzeiten beim ersten Aufruf von apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model oder train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch führen kann.

Wird die Netzwerkarchitektur nachträglich geändert, wird der GPU-Speicher reinitialisiert. Das kann zum Beispiel auftreten wenn 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size", 'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions""image_dimensions" oder 'input_dimensions'"input_dimensions""input_dimensions""input_dimensions""input_dimensions""input_dimensions" durch nachträgliches Aufrufen von set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param geändert werden.

Zu beachten ist, dass dieser Parameter keine Auswirkungen hat, wenn:

  • Eine CPU genutzt wird, also falls 'runtime'"runtime""runtime""runtime""runtime""runtime" auf 'cpu'"cpu""cpu""cpu""cpu""cpu" gesetzt ist.

  • Eine AI²-Schnittstelle genutzt wird.

  • Die Hardware-Einheit vorher mit 'device'"device""device""device""device""device" gesetzt wurde.

'weight_prior'"weight_prior""weight_prior""weight_prior""weight_prior""weight_prior": CL OD SE
Models mit 'type'"type""type""type""type""type"='anomaly_detection'"anomaly_detection""anomaly_detection""anomaly_detection""anomaly_detection""anomaly_detection"

'complexity'"complexity""complexity""complexity""complexity""complexity"
'standard_deviation_factor'"standard_deviation_factor""standard_deviation_factor""standard_deviation_factor""standard_deviation_factor""standard_deviation_factor"
Models mit 'type'"type""type""type""type""type"='classification'"classification""classification""classification""classification""classification"

'backbone_docking_layers'"backbone_docking_layers""backbone_docking_layers""backbone_docking_layers""backbone_docking_layers""backbone_docking_layers"

Die Spezifikation der Docking Layer kann bei jedem Klassifikator erfolgen, auch ohne dass diese als Backbone eingelesen werden. Berücksichtigt wird diese Angabe jedoch nur für Backbones der Objektdetektion.

'class_names'"class_names""class_names""class_names""class_names""class_names"
'extract_feature_maps'"extract_feature_maps""extract_feature_maps""extract_feature_maps""extract_feature_maps""extract_feature_maps"
Models mit 'type'"type""type""type""type""type"='detection'"detection""detection""detection""detection""detection"

'freeze_backbone_level'"freeze_backbone_level""freeze_backbone_level""freeze_backbone_level""freeze_backbone_level""freeze_backbone_level"
'max_num_detections'"max_num_detections""max_num_detections""max_num_detections""max_num_detections""max_num_detections"
'max_overlap'"max_overlap""max_overlap""max_overlap""max_overlap""max_overlap"
'max_overlap_class_agnostic'"max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic"
'min_confidence'"min_confidence""min_confidence""min_confidence""min_confidence""min_confidence"
Models mit 'type'"type""type""type""type""type"='segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation"

'ignore_class_ids'"ignore_class_ids""ignore_class_ids""ignore_class_ids""ignore_class_ids""ignore_class_ids"
'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max""image_range_max", 'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min""image_range_min"
Models mit 'type'"type""type""type""type""type"='generic'"generic""generic""generic""generic""generic"

'type'"type""type""type""type""type"

Dieser Parameter gibt den HALCON-spezifischen Modelltypen an.

Modelle des Typs 'generic'"generic""generic""generic""generic""generic" können sämtliche Modell-Funktionen erfüllen. Jedoch sind mehrere Deep-Learning-Prozeduren auf einen spezifischen 'type'"type""type""type""type""type" angewiesen. Der 'type'"type""type""type""type""type" kann von 'generic'"generic""generic""generic""generic""generic" auf folgende Werte gesetzt werden:

  • 'classification'"classification""classification""classification""classification""classification"

  • 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation"

Beim Setzen des 'type'"type""type""type""type""type" wird überprüft, ob alle für Inferenz und Training erforderlichen Layer vorhanden sind. vorhanden sind. Fehlen solche Layer werden sie hinzugefügt.

Achtung

Systemvoraussetzungen: cuDNN und cuBLAS sind notwendig, um 'gpu'"gpu""gpu""gpu""gpu""gpu" Parameter zu setzen, d.h. um den Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 'runtime'"runtime""runtime""runtime""runtime""runtime" auf 'gpu'"gpu""gpu""gpu""gpu""gpu" zu setzen. Für weitere Details siehe „Installation Guide“, Abschnitt „Requirements for Deep Learning and Deep-Learning-Based Methods“.

Ausführungsinformationen

Parameter

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

Handle des Deep Learning-basierten Modells.

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name des generischen Parameters.

Defaultwert: 'learning_rate' "learning_rate" "learning_rate" "learning_rate" "learning_rate" "learning_rate"

Werteliste: 'alphabet'"alphabet""alphabet""alphabet""alphabet""alphabet", 'anchor_angles'"anchor_angles""anchor_angles""anchor_angles""anchor_angles""anchor_angles", 'anchor_aspect_ratios'"anchor_aspect_ratios""anchor_aspect_ratios""anchor_aspect_ratios""anchor_aspect_ratios""anchor_aspect_ratios", 'anchor_num_subscales'"anchor_num_subscales""anchor_num_subscales""anchor_num_subscales""anchor_num_subscales""anchor_num_subscales", 'backbone'"backbone""backbone""backbone""backbone""backbone", 'backbone_docking_layers'"backbone_docking_layers""backbone_docking_layers""backbone_docking_layers""backbone_docking_layers""backbone_docking_layers", 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size", 'batch_size_multiplier'"batch_size_multiplier""batch_size_multiplier""batch_size_multiplier""batch_size_multiplier""batch_size_multiplier", 'bbox_heads_weight'"bbox_heads_weight""bbox_heads_weight""bbox_heads_weight""bbox_heads_weight""bbox_heads_weight", 'capacity'"capacity""capacity""capacity""capacity""capacity", 'class_heads_weight'"class_heads_weight""class_heads_weight""class_heads_weight""class_heads_weight""class_heads_weight", 'class_ids'"class_ids""class_ids""class_ids""class_ids""class_ids", 'class_names'"class_names""class_names""class_names""class_names""class_names", 'class_weights'"class_weights""class_weights""class_weights""class_weights""class_weights", 'complexity'"complexity""complexity""complexity""complexity""complexity", 'device'"device""device""device""device""device", 'enable_resizing'"enable_resizing""enable_resizing""enable_resizing""enable_resizing""enable_resizing", 'extract_feature_maps'"extract_feature_maps""extract_feature_maps""extract_feature_maps""extract_feature_maps""extract_feature_maps", 'freeze_backbone_level'"freeze_backbone_level""freeze_backbone_level""freeze_backbone_level""freeze_backbone_level""freeze_backbone_level", 'fuse_bn_relu'"fuse_bn_relu""fuse_bn_relu""fuse_bn_relu""fuse_bn_relu""fuse_bn_relu", 'fuse_conv_relu'"fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu", 'gpu'"gpu""gpu""gpu""gpu""gpu", 'ignore_class_ids'"ignore_class_ids""ignore_class_ids""ignore_class_ids""ignore_class_ids""ignore_class_ids", 'ignore_direction'"ignore_direction""ignore_direction""ignore_direction""ignore_direction""ignore_direction", 'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions""image_dimensions", 'image_height'"image_height""image_height""image_height""image_height""image_height", 'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels""image_num_channels", 'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max""image_range_max", 'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min""image_range_min", 'image_width'"image_width""image_width""image_width""image_width""image_width", 'input_dimensions'"input_dimensions""input_dimensions""input_dimensions""input_dimensions""input_dimensions", 'instance_type'"instance_type""instance_type""instance_type""instance_type""instance_type", 'learning_rate'"learning_rate""learning_rate""learning_rate""learning_rate""learning_rate", 'max_level'"max_level""max_level""max_level""max_level""max_level", 'max_num_detections'"max_num_detections""max_num_detections""max_num_detections""max_num_detections""max_num_detections", 'max_overlap'"max_overlap""max_overlap""max_overlap""max_overlap""max_overlap", 'max_overlap_class_agnostic'"max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic", 'meta_data'"meta_data""meta_data""meta_data""meta_data""meta_data", 'min_confidence'"min_confidence""min_confidence""min_confidence""min_confidence""min_confidence", 'min_level'"min_level""min_level""min_level""min_level""min_level", 'momentum'"momentum""momentum""momentum""momentum""momentum", 'num_classes'"num_classes""num_classes""num_classes""num_classes""num_classes", 'optimize_for_inference'"optimize_for_inference""optimize_for_inference""optimize_for_inference""optimize_for_inference""optimize_for_inference", 'runtime'"runtime""runtime""runtime""runtime""runtime", 'runtime_init'"runtime_init""runtime_init""runtime_init""runtime_init""runtime_init", 'standard_deviation_factor'"standard_deviation_factor""standard_deviation_factor""standard_deviation_factor""standard_deviation_factor""standard_deviation_factor", 'summary'"summary""summary""summary""summary""summary", 'type'"type""type""type""type""type", 'weight_prior'"weight_prior""weight_prior""weight_prior""weight_prior""weight_prior"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[str, float, int]]HTupleHtuple (real / string / integer) (double / string / int / long) (double / HString / Hlong) (double / char* / Hlong)

Wert des generischen Parameters.

Defaultwert: 0.001

Wertevorschläge: 1, 2, 3, 50, [80,60], 80, 60, 0.001, -127, 128, 'cpu'"cpu""cpu""cpu""cpu""cpu", 'gpu'"gpu""gpu""gpu""gpu""gpu", 'immediately'"immediately""immediately""immediately""immediately""immediately"

Ergebnis

Sind die Parameterwerte korrekt, dann liefert set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_dl_modelread_dl_modelReadDlModelReadDlModelReadDlModelread_dl_model, get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param

Nachfolger

get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param, apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model, train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch, train_dl_model_anomaly_datasettrain_dl_model_anomaly_datasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDatasettrain_dl_model_anomaly_dataset

Siehe auch

get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param

Modul

Deep Learning Inference