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
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.
-
'Any': Jede Methode
-
'AD': 'type'"type""type""type""type"='anomaly_detection'"anomaly_detection""anomaly_detection""anomaly_detection""anomaly_detection"
-
'CL': 'type'"type""type""type""type"='classification'"classification""classification""classification""classification"
-
'OD': 'type'"type""type""type""type"='detection'"detection""detection""detection""detection"
-
'SE': 'type'"type""type""type""type"='segmentation'"segmentation""segmentation""segmentation""segmentation"
-
'Gen': 'type'"type""type""type""type"='generic'"generic""generic""generic""generic"
- '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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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