train_dl_model_anomaly_dataset
— Trainieren eines Deep Learning-Modells zur Anomalieerkennung.
train_dl_model_anomaly_dataset( : : DLModelHandle, DLSamples, DLTrainParam : DLTrainResult)
Der Operator train_dl_model_anomaly_dataset
trainiert das
in DLModelHandle
enthaltenen Deep Learning-Modell
mit 'type' ='anomaly_detection' .
Dieser Operator verarbeitet den ganzen Datensatz auf einmal.
Dies ist anders als beim Operator train_dl_model_batch
.
Die Iterationen über den Datasensatz werden vom Operator intern durchgeführt.
Somit muss der Oprator für das ganze Training des Modells nur einmal
aufgerufen werden.
Der Trainings-Datensatz im Tupel von Dictionaries DLSamples
übergeben.
Weitere Informationen zu den verwendeten Dictionaries und zugehörigen Keys
können im Kapitel Deep Learning / Modell gefunden werden.
Der Operator erwartet im Trainings-Datensatz zum Trainieren des Modells nur
Bilder ohne Anomalie.
Mit dem Dictionary DLTrainParam
können die Hyperparameter verändert
werden. Folgende Werte werden unterstützt:
max_num_epochs
:
Dieser Parameter spezifiziert die maximale Anzahl an Trainingsepochen.
Falls das durch error_threshold
definierte Abbruchskriterium
bereits in einer früheren Epoche erreicht wird, wird das Training
entsprechend beendet.
Restriktion: max_num_epochs
>=1.
Default: max_num_epochs
= 30.
error_threshold
:
Dieser Parameter ist ein Abbruchskriterium für das Training.
Ist der Trainingsfehler kleiner als der in error_threshold
gesetzte Wert, wird das Training erfolgreich abgeschlossen.
Restriktion:
0.0 <= error_threshold
<= 1.0.
Default: error_threshold
= 0.001.
domain_ratio
:
Dieser Parameter bestimmt den Anteil an Informationen jedes Bildes,
die für das Training verwendet werden.
Da Bilder meistens
eine große Fülle von Informationen enthalten, kann es von
Vorteil sein, die Menge zu reduzieren.
Zusätzlich kann ein kleinerer Wert von domain_ratio
die Trainingszeit reduzieren.
Allerdings muss stets genügend Information übrig bleiben, weshalb dieser
Parameter nicht zu klein gesetzt werden soll.
Sonst kann passieren, dass das Trainingsergebnis nicht zufriedenstellend
ist oder das Training gar fehlschlägt.
Restriktion: 0.0 < domain_ratio
<= 1.0.
Default: domain_ratio
= 0.1.
regularization_noise
:
Dieser Parameter ist ein Regularisierungsfaktor, der verwendet
wird, um das Training robuster zu machen.
Restriktion: regularization_noise
>=0.0.
Default: regularization_noise
= 0.0.
Das Ausgabe-Dictionary DLTrainResult
enthält die folgenden Werte:
final_error
:
Der beste Fehler, der während des Trainings erreicht wurde.
final_epoch
Die Epoche, in welcher der Fehler final_error
erreicht wurde.
Um diesen Operator auf der GPU auszuführen, indem 'runtime'
auf 'gpu' gesetzt ist (siehe get_dl_model_param
),
werden cuDNN und cuBLAS benötigt. Für weitere Details wird auf den
„Installation Guide“
, Abschnitt „Requirements for Deep
Learning“, verwiesen. Alternativ kann dieser Operator auch auf
der CPU ausgeführt werden, indem man 'runtime' auf
'cpu' setzt.
DLModelHandle
(input_control) dl_model →
(handle)
Handle des Deep Learning-Modells.
DLSamples
(input_control) dict-array →
(handle)
Tupel von Dictionaries mit Eingabebildern und zugehörigen Informationen.
DLTrainParam
(input_control) dict →
(handle)
Parameter zum Trainieren des Anomalieerkennungsmodells.
Defaultwert: []
DLTrainResult
(output_control) dict →
(handle)
Dictionary mit den Trainingsergebnissen.
Sind die Parameterwerte korrekt, dann liefert
train_dl_model_anomaly_dataset
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
read_dl_model
,
set_dl_model_param
,
get_dl_model_param
Deep Learning Training