get_dl_model_layer_weights — Auslesen der Gewichte (oder Werte) eines Deep Learning-Modell-Layers.
get_dl_model_layer_weights( : Weights : DLModelHandle, LayerName, WeightsType : )
Der Operator get_dl_model_layer_weights gibt in Weights
die Werte eines Layers LayerName des Modells DLModelHandle
zurück.
Der Parameter WeightsType bestimmt, welcher Typ von Layerwerten
ausgelesen werden.
Folgende Werte werden für WeightsType unterstützt:
'batchnorm_mean': Pro Batch berechnete Mittelwerte zur
Normalisierung der Eingaben. Für weitere Informationen, siehe
create_dl_layer_batch_normalization.
Restriktion: Dieser Wert wird nur unterstützt, wenn der Layer vom Typ 'batchnorm' ist.
'batchnorm_mean_avg': Durchschnitt der pro Batch berechneten
Mittelwerte zur Normalisierung der Eingaben. Für weitere Informationen, siehe
create_dl_layer_batch_normalization.
Restriktion: Dieser Wert wird nur unterstützt, wenn der Layer vom Typ 'batchnorm' ist.
'batchnorm_variance': Pro Batch berechnete Varianz zur
Normalisierung der Eingaben. Für weitere Informationen, siehe
create_dl_layer_batch_normalization.
Restriktion: Dieser Wert wird nur unterstützt, wenn der Layer vom Typ 'batchnorm' ist.
'batchnorm_variance_avg': Durchschnitt der pro Batch
berechneten Varianzwerte zur Normalisierung der Eingaben.
Für weitere Informationen, siehe
create_dl_layer_batch_normalization.
Restriktion: Dieser Wert wird nur unterstützt, wenn der Layer vom Typ 'batchnorm' ist.
'bias': Bias-Werte des Layers.
'bias_gradient': Gradienten der Bias-Werte des Layers.
'bias_gradient_norm_l2': Gradienten der Bias-Werte des Layers nach der L2-Norm.
'bias_norm_l2': Bias-Werte des Layers nach der L2-Norm.
'bias_update': Aktualisierung der Bias-Werte des Layers. Diese wird beispielsweise in einem Solver verwendet, der die letzte Aktualisierung verwendet.
'bias_update_norm_l2': Aktualisierung der Bias-Werte des Layers nach der L2-Norm. Diese wird beispielsweise in einem Solver verwendet, der die letzte Aktualisierung verwendet.
'weights': Gewichte des Layers.
'weights_gradient': Gradienten der Gewichte des Layers.
'weights_gradient_norm_l2': Gradienten der Gewichte des Layers nach der L2-Norm.
'weights_norm_l2': Gewichte des Layers nach der L2-Norm.
'weights_update': Aktualisierung der Gewichte des Layers. Diese wird beispielsweise in einem Solver verwendet, der die letzte Aktualisierung verwendet.
'weights_update_norm_l2': Aktualisierung der Gewichte des Layers nach der L2-Norm. Diese wird beispielsweise in einem Solver verwendet, der die letzte Aktualisierung verwendet.
Die folgende Tabelle gibt einen Überblick, welche Parameter für
WeightsType mit set_dl_model_layer_weights gesetzt werden
können und welche mit get_dl_model_layer_weights ausgelesen werden
können.
| Layer-Parameter | set |
get
|
|---|---|---|
| 'batchnorm_mean' | x |
x
|
| 'batchnorm_mean_avg' | x |
x
|
| 'batchnorm_variance' | x |
x
|
| 'batchnorm_variance_avg' | x |
x
|
| 'bias' | x |
x
|
| 'bias_gradient' | x
|
|
| 'bias_gradient_norm_l2' | x
|
|
| 'bias_norm_l2' | x
|
|
| 'bias_update' | x
|
|
| 'bias_update_norm_l2' | x
|
|
| 'weights' | x |
x
|
| 'weights_gradient' | x
|
|
| 'weights_gradient_norm_l2' | x
|
|
| 'weights_norm_l2' | x
|
|
| 'weights_update' | x
|
|
| 'weights_update_norm_l2' | x
|
Der Operator get_dl_model_layer_weights ist nur auf eigens erstellte
Netzwerke anwendbar. Für Netzwerke die von HALCON mitgeliefert werden gibt
der Operator ein leeres Tupel zurück.
Weights (output_object) image(-array) → object (real)
Ausgabegewichte.
DLModelHandle (input_control) dl_model → (handle)
Handle des Deep Learning-Modells.
LayerName (input_control) string → (string)
Name des abzufragenden Layers.
WeightsType (input_control) string → (string)
Ausgewählter Typ von Layerwerten, die zurückgegeben werden sollen.
Default: 'weights'
Werteliste: 'batchnorm_mean', 'batchnorm_mean_avg', 'batchnorm_variance', 'batchnorm_variance_avg', 'bias', 'bias_gradient', 'bias_gradient_norm_l2', 'bias_norm_l2', 'bias_update', 'bias_update_norm_l2', 'weights', 'weights_gradient', 'weights_gradient_norm_l2', 'weights_norm_l2', 'weights_update', 'weights_update_norm_l2'
set_system ('seed_rand', 42)
* Create a small model network.
create_dl_layer_input ('input', [InputImageSize[0],InputImageSize[1],1], [],\
[], DLGraphNodeInput)
create_dl_layer_convolution (DLGraphNodeInput, 'conv', 3, 1, 1, 2, 1, 'none',\
'none', [], [], DLGraphNodeConvolution)
create_dl_layer_activation (DLGraphNodeConvolution, 'relu', 'relu', [], [],\
DLGraphNodeActivation)
create_dl_layer_dense (DLGraphNodeActivation, 'dense', 3, [], [],\
DLGraphNodeDense)
create_dl_layer_softmax (DLGraphNodeDense, 'softmax', [], [],\
DLGraphNodeSoftMax)
create_dl_model (DLGraphNodeSoftMax, DLModelHandle)
*
set_dl_model_param (DLModelHandle, 'type', 'classification')
set_dl_model_param (DLModelHandle, 'batch_size', 1)
set_dl_model_param (DLModelHandle, 'runtime', 'gpu')
set_dl_model_param (DLModelHandle, 'runtime_init', 'immediately')
*
* Train for 5 iterations.
for TrainIterations := 1 to NumTrainIterations by 1
train_dl_model_batch (DLModelHandle, DLSample, DLTrainResult)
endfor
*
* Get the gradients, weights, and activations.
get_dl_model_layer_gradients (GradientsSoftmax, DLModelHandle, 'softmax')
get_dl_model_layer_gradients (GradientsDense, DLModelHandle, 'dense')
get_dl_model_layer_gradients (GradientsConv, DLModelHandle, 'conv')
*
get_dl_model_layer_weights (WeightsDense, DLModelHandle, 'dense',\
'weights_gradient')
get_dl_model_layer_weights (WeightsConv, DLModelHandle, 'conv',\
'weights_gradient')
*
get_dl_model_layer_activations (ActivationsDense, DLModelHandle, 'dense')
get_dl_model_layer_activations (ActivationsConv, DLModelHandle, 'conv')
create_dl_model,
train_dl_classifier_batch,
set_dl_model_layer_weights
get_dl_model_layer_activations,
get_dl_model_layer_gradients
Foundation. Dieser Operator verwendet dynamische Lizenzierung (siehe ``Installation Guide''). Welches der folgenden Module benötigt wird hängt von der Anwendung des Operators ab:
Deep Learning Training