set_dl_model_paramT_set_dl_model_paramSetDlModelParamSetDlModelParam (Operator)

Name

set_dl_model_paramT_set_dl_model_paramSetDlModelParamSetDlModelParam — 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)

Beschreibung

set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParam setzt die Parameter und Hyperparameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamName des Deep Learning-Modells DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandle auf die Werte in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue.

Die Werte, die GenParamNameGenParamNameGenParamNameGenParamNamegenParamName 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_paramGetDlModelParamGetDlModelParamGetDlModelParam zu finden. In get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParam 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_paramSetDlModelParamSetDlModelParamSetDlModelParam gesetzt werden können. Dabei bezeichnen die folgenden Symbole den Modelltypen, für welchen der Parameter einflussreich gesetzt werden kann.

'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": CL OD SE
'class_ids'"class_ids""class_ids""class_ids""class_ids": OD SE
'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" 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": 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" setzbar. Falls das Netzwerk kein entsprechendes Layer Paar hat, wird nichts getan und die Operation als erfolgreich betrachtet.

'gpu'"gpu""gpu""gpu""gpu": Any
'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions": AD CL SE
'image_height'"image_height""image_height""image_height""image_height", '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": AD CL SE
'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": SE
'learning_rate'"learning_rate""learning_rate""learning_rate""learning_rate": CL OD SE
'momentum'"momentum""momentum""momentum""momentum": CL OD SE
'runtime'"runtime""runtime""runtime""runtime": Any
'runtime_init'"runtime_init""runtime_init""runtime_init""runtime_init": Any

Wird 'runtime_init'"runtime_init""runtime_init""runtime_init""runtime_init" auf '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_modelApplyDlModelApplyDlModelApplyDlModel oder train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatch 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" oder 'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions" durch nachträgliches Aufrufen von set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParam geändert werden.

Zu beachten ist, dass dieser Parameter keine Auswirkungen hat wenn eine CPU genutzt wird, also falls 'runtime'"runtime""runtime""runtime""runtime" auf 'cpu'"cpu""cpu""cpu""cpu" gesetzt ist.

'weight_prior'"weight_prior""weight_prior""weight_prior""weight_prior": CL OD SE
'complexity'"complexity""complexity""complexity""complexity": AD
'standard_deviation_factor'"standard_deviation_factor""standard_deviation_factor""standard_deviation_factor""standard_deviation_factor": AD
'backbone_docking_layers'"backbone_docking_layers""backbone_docking_layers""backbone_docking_layers""backbone_docking_layers": CL

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": CL
'extract_feature_maps'"extract_feature_maps""extract_feature_maps""extract_feature_maps""extract_feature_maps": CL
'max_num_detections'"max_num_detections""max_num_detections""max_num_detections""max_num_detections": OD
'max_overlap'"max_overlap""max_overlap""max_overlap""max_overlap": OD
'max_overlap_class_agnostic'"max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic""max_overlap_class_agnostic": OD
'min_confidence'"min_confidence""min_confidence""min_confidence""min_confidence": OD
'ignore_class_ids'"ignore_class_ids""ignore_class_ids""ignore_class_ids""ignore_class_ids": SE
'type'"type""type""type""type": Gen

Ändern des Modell Typs bei generischen Modellen. Gewisse Modelle die im ONNX Format eingelesen wurden, werden nicht als Modelle des Typs 'classification'"classification""classification""classification""classification" erkannt. Beim Setzen des Parameters 'type'"type""type""type""type" auf 'classification'"classification""classification""classification""classification" wird dem Netzwerk ein SoftMax Layer angehängt und das Modell kann trainiert werden. Jegliche weitere Verwendung dieses Parameters wird nicht unterstützt und kann das Modell unlesbar machen.

Achtung

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

Ausführungsinformationen

Parameter

DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandle (input_control)  dl_model HDlModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Deep Learning-basierten Modells.

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name HTupleHTupleHtuple (string) (string) (HString) (char*)

Name des generischen Parameters.

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

Werteliste: '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_num_subscales'"anchor_num_subscales""anchor_num_subscales""anchor_num_subscales""anchor_num_subscales", 'backbone'"backbone""backbone""backbone""backbone", '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_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", 'capacity'"capacity""capacity""capacity""capacity", '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_names'"class_names""class_names""class_names""class_names", 'class_weights'"class_weights""class_weights""class_weights""class_weights", 'complexity'"complexity""complexity""complexity""complexity", '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", 'fuse_conv_relu'"fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu", 'gpu'"gpu""gpu""gpu""gpu", '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", 'image_dimensions'"image_dimensions""image_dimensions""image_dimensions""image_dimensions", '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_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_width'"image_width""image_width""image_width""image_width", 'instance_type'"instance_type""instance_type""instance_type""instance_type", 'learning_rate'"learning_rate""learning_rate""learning_rate""learning_rate", '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_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", 'min_confidence'"min_confidence""min_confidence""min_confidence""min_confidence", 'min_level'"min_level""min_level""min_level""min_level", 'momentum'"momentum""momentum""momentum""momentum", 'num_classes'"num_classes""num_classes""num_classes""num_classes", 'runtime'"runtime""runtime""runtime""runtime", '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", 'summary'"summary""summary""summary""summary", 'type'"type""type""type""type", 'weight_prior'"weight_prior""weight_prior""weight_prior""weight_prior"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value(-array) HTupleHTupleHtuple (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", 'gpu'"gpu""gpu""gpu""gpu", 'immediately'"immediately""immediately""immediately""immediately"

Ergebnis

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

Vorgänger

read_dl_modelread_dl_modelReadDlModelReadDlModelReadDlModel, get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParam

Nachfolger

get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParam, apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModel, train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatch, train_dl_model_anomaly_datasettrain_dl_model_anomaly_datasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDataset

Siehe auch

get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParam

Modul

Deep Learning Inference