fit_dl_out_of_distribution — Erweitern eines Deep Learning-Modells für Out-of-Distribution Detection.
fit_dl_out_of_distribution( : : DLModelHandle, DLDataset, GenParam : )
fit_dl_out_of_distribution erweitert ein trainiertes
Deep Learning-Modell DLModelHandle mit
'type' = 'classification'
für die Out-of-Distribution Detection. Diese Funktion ermöglicht es dem
Modell Samples zu erkennen, die sich signifikant von den Klassen
unterscheiden, für welche es trainiert wurde und diese als
Out-of-Distribution (OOD) zu kennzeichnen.
Wird anschließend apply_dl_model aufgerufen, enthält das
Ergebnis die folgenden zusätzlichen Einträge, die sich auf die
Out-of-Distribution Detection beziehen:
Zeigt an, ob das Sample als Out-of-Distribution eingestuft wird.
Gibt an, wie stark das Sample von den trainierten Klassen abweicht. Je höher dieser Wert ist, desto eher ist das Sample Out-of-Distribution.
Übersteigt 'ood_score' diesen Schwellenwert, wird
das Sample als Out-of-Distribution eingestuft.
Der Schwellenwert für die Out-of-Distribution wird während
der Ausführung von fit_dl_out_of_distribution berechnet und in
DLModelHandle als 'ood_threshold' gespeichert.
Dieser Schwellenwert kann bei Bedarf mit dem Operator
set_dl_model_param manuell angepasst werden.
Damit fit_dl_out_of_distribution korrekt funktioniert, ist es
wichtig, dass DLDataset derselbe Datensatz mit derselben Aufteilung
und Vorverarbeitung ist wie der, der für das Training
von DLModelHandle verwendet wurde.
Es ist entscheidend, dass der bereitgestellte Datensatz DLDataset
verschiedene und ausreichende Samples für jede Klasse enthält, um eine
zuverlässige Out-of-Distribution Detection zu gewährleisten.
Wenn das bereitgestellte DLDataset weniger als oder genau 15 Trainingsdaten
pro Klasse und keine Validierungsdaten enthält, gibt fit_dl_out_of_distribution
einen Fehler zurück. In solchen Fällen sollten zusätzliche Trainingsdaten zum
Datensatz hinzugefügt werden.
fit_dl_out_of_distribution kann auf jedes von HALCON unterstütztes
Klassifikationsmodell angewendet werden. Für Modelle, die mit
Deep Learning / Framework-Operatoren erstellt oder aus einer
ONNX-Modelldatei gelesen werden, kann die Kompatibilität der
Out-of-Distribution Detection je nach Architektur variieren.
Die Leistung des Modells für die Out-of-Distribution Detection kann
mit Hilfe der Prozedur evaluate_dl_model evaluiert werden.
Out-of-Distribution-Samples können mit der Prozedur
add_dl_out_of_distribution_data zum DLDatensatz hinzugefügt
werden, so dass getestet werden kann, ob das Modell In-Distribution- von
Out-of-Distribution-Daten trennen kann. Anpassungen von
'ood_threshold' wirken sich auf die Evaluierungsergebnisse aus.
Es wird daher empfohlen, das Modell nach solchen Änderungen erneut
zu evaluieren.
GenParam ist ein Dictionary zum Setzen generischer Parameter.
Zur Zeit werden keine generischen Parameter unterstützt.
Wenn fit_dl_out_of_distribution für ein Modell aufgerufen wird,
das diesen Prozess bereits durchlaufen hat, werden die vorherigen Ergebnisse
verworfen und das Modell wird erneut für die Out-of-Distribution Detection
angepasst.
Bestimmte Änderungen am Modell, wie z.B. die Änderung der Anzahl der Klassen
oder ein weiteres Trainieren des Modells,
können nicht mehr vorgenommen werden, wenn das Modell für
Out-of-Distribution Detection angepasst wurde.
Um solche Änderungen vorzunehmen, muss die Anpassung des Modells für die
Out-of-Distribution Detection rückgängig gemacht werden,
indem der Parameter 'clear_ood' in set_dl_model_param
verwendet wird. Anschließend kann fit_dl_out_of_distribution erneut
aufgerufen werden, um die Out-of-Distribution Detection wieder zu aktivieren.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
DLModelHandle (input_control, Zustand wird modifiziert) dl_model → (handle)
Handle des Deep Learning-Modells für Classification.
DLDataset (input_control) dict → (handle)
Datensatz, der für das Training des Modells benutzt wurde.
GenParam (input_control) dict → (handle)
Dictionary für generische Parameter.
Deep Learning Professional