Hyperparameter für Aufgaben im Bereich maschinelles Sehen beim automatisierten maschinellen Lernen
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
Hier erfahren Sie, welche Hyperparameter speziell für Aufgaben des maschinellen Sehens in Experimenten mit automatisiertem ML verfügbar sind.
Mit der Unterstützung für Aufgaben des maschinellen Sehens können Sie dien Modellarchitektur steuern und Hyperparameter bereinigen. Diese Modellarchitektur und Hyperparameter werden als Parameterraum für das Aufräumen übergeben. Während viele der verfügbar gemachten Hyperparameter modellunabhängig sind, gibt es Instanzen, in denen Hyperparameter modell- oder aufgabenspezifisch sind.
Modellspezifische Hyperparameter
In dieser Tabelle werden die für die yolov5
-Architektur spezifischen Hyperparameter zusammengefasst.
Parametername | BESCHREIBUNG | Standard |
---|---|---|
validation_metric_type |
Metrikberechnungsmethode, die für Validierungsmetriken zu verwenden ist. Muss none , coco , voc oder coco_voc sein. |
voc |
validation_iou_threshold |
IOU-Schwellenwert für Rahmenabgleich beim Berechnen von Validierungsmetriken. Muss ein Gleitkommawert im Bereich [0,1; 1] sein. |
0.5 |
image_size |
Bildgröße für Training und Validierung. Der Wert muss eine positive ganze Zahl sein. Hinweis: Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
640 |
model_size |
Modellgröße. Muss small , medium , large oder extra_large sein. Hinweis: Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Modellgröße zu groß ist. |
medium |
multi_scale |
Aktivieren von Bildern mit mehreren Skalierungen durch variierende Bildgröße um +/- 50 % Der Wert muss 0 oder 1 sein. Hinweis: Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn nicht ausreichend GPU-Arbeitsspeicher verfügbar ist. |
0 |
box_score_threshold |
Geben Sie während des Rückschlusses nur Vorschläge mit einem Wert zurück, der größer als box_score_threshold ist. Die Punktzahl ergibt sich aus der Multiplikation von Objektivitätswert und Klassifizierungswahrscheinlichkeit. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,1 |
nms_iou_threshold |
IOU-Schwellenwert, der während des Rückschlusses bei der Nachbearbeitung mit nicht maximaler Unterdrückung verwendet wird. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.5 |
tile_grid_size |
Die Rastergröße, die für die Kachelung der einzelnen Bilder verwendet werden soll. Hinweis: tile_grid_size darf nicht „None“ (Keine) sein, um die Logik der Erkennung kleiner Objekte zu aktivieren Sollte als Zeichenfolge im „3x2“-Format übergeben werden. Beispiel: --tile_grid_size '3x2' |
Kein Standardwert |
tile_overlap_ratio |
Überlappungsverhältnis zwischen angrenzenden Kacheln in den einzelnen Dimensionen. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,25 |
tile_predictions_nms_threshold |
Der IOU-Schwellenwert, der zum Ausführen von NMS beim Zusammenführen von Vorhersagen aus Kacheln und Bildern verwendet werden soll. Wird bei der Validierung bzw. beim Rückschließen verwendet. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,25 |
In dieser Tabelle werden Hyperparameter zusammengefasst, die für die maskrcnn_*
für die Instanzsegmentierung während des Rückschließens spezifisch sind.
Parametername | BESCHREIBUNG | Standard |
---|---|---|
mask_pixel_score_threshold |
Grenzwert für die Berücksichtigung eines Pixels als Teil der Maske eines Objekts. | 0.5 |
max_number_of_polygon_points |
Maximale Anzahl von (x, y) Koordinatenpaaren im Polygon nach der Konvertierung aus einer Maske. | 100 |
export_as_image |
Exportieren Sie Masken als Bilder. | Falsch |
image_type |
Typ des Bildes, als das die Maske exportiert werden soll (Optionen sind JPG, PNG, BMP). | JPG |
Modellunabhängige Hyperparameter
In der folgenden Tabelle werden die modellunabhängigen Hyperparameter beschrieben.
Parametername | BESCHREIBUNG | Standard |
---|---|---|
number_of_epochs |
Anzahl der Trainingsepochen Der Wert muss eine positive ganze Zahl sein. |
15 (mit Ausnahme von yolov5 : 30) |
training_batch_size |
Trainingsbatchgröße. Der Wert muss eine positive ganze Zahl sein. |
Mehrere Klassen/mehrere Bezeichnungen: 78 (mit Ausnahme von vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Objekterkennung: 2 (mit Ausnahme von yolov5 : 16) Instanzsegmentierung: 2 Hinweis: Die Standardwerte sind die größte Batchgröße, die für 12 GiB GPU-Arbeitsspeicher verwendet werden kann. |
validation_batch_size |
Überprüfungsbatchgröße. Der Wert muss eine positive ganze Zahl sein. |
Mehrere Klassen/mehrere Bezeichnungen: 78 (mit Ausnahme von vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Objekterkennung: 1 (mit Ausnahme von yolov5 : 16) Instanzsegmentierung: 1 Hinweis: Die Standardwerte sind die größte Batchgröße, die für 12 GiB GPU-Arbeitsspeicher verwendet werden kann. |
gradient_accumulation_step |
Gradientenakkumulation bedeutet, dass eine konfigurierte Anzahl von gradient_accumulation_step durchgeführt wird, ohne die Modellgewichtungen zu aktualisieren, während die Gradienten dieser Schritte akkumuliert werden, und dann die akkumulierten Gradienten verwendet werden, um die Gewichtsaktualisierungen zu berechnen. Der Wert muss eine positive ganze Zahl sein. |
1 |
early_stopping |
Logik zum frühzeitigen Beenden während des Trainings aktivieren. Der Wert muss 0 oder 1 sein. |
1 |
early_stopping_patience |
Mindestanzahl von Epochen oder Validierungsauswertungen ohne Verbesserung der primären Metrik, bevor die Ausführung abgebrochen wird. Der Wert muss eine positive ganze Zahl sein. |
5 |
early_stopping_delay |
Mindestanzahl der Epochen oder Validierungsauswertungen, die abgewartet werden müssen, bevor die Verbesserung der primären Metrik für ein frühzeitiges Beenden verfolgt wird. Der Wert muss eine positive ganze Zahl sein. |
5 |
learning_rate |
Anfängliche Lernrate. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
Mehrere Klassen: 0.01 (mit Ausnahme von vit-variants: vits16r224 : 0.0125vitb16r224 : 0.0125vitl16r224 : 0.001) Mehrere Bezeichnungen: 0.035 (mit Ausnahme von vit-variants: vits16r224 : 0.025vitb16r224 : 0.025 vitl16r224 : 0.002) Objekterkennung: 0.005 (mit Ausnahme von yolov5 : 0.01) Instanzsegmentierung: 0.005 |
learning_rate_scheduler |
Typ des Lernratenplaners. Muss warmup_cosine oder step sein. |
warmup_cosine |
step_lr_gamma |
Der Wert von Gamma, wenn der Lernratenplaner step ist.Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.5 |
step_lr_step_size |
Der Wert der Schrittgröße, wenn der Lernratenplaner step ist.Der Wert muss eine positive ganze Zahl sein. |
5 |
warmup_cosine_lr_cycles |
Der Wert des Kosinuszyklus, wenn der Lernratenplaner warmup_cosine ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.45 |
warmup_cosine_lr_warmup_epochs |
Der Wert der Aufwärmepochen, wenn der Lernratenplaner warmup_cosine ist. Der Wert muss eine positive ganze Zahl sein. |
2 |
optimizer |
Typ des Optimierers. Muss entweder sgd , adam oder adamw sein. |
sgd |
momentum |
Der Wert der Dynamik, wenn der Optimierer sgd ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.9 |
weight_decay |
Der Wert des Gewichtungsverfalls, wenn der Optimierer sgd , adam oder adamw ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
1e-4 |
nesterov |
Aktivieren Sie nesterov , wenn der Optimierer sgd ist. Der Wert muss 0 oder 1 sein. |
1 |
beta1 |
Der Wert von beta1 , wenn der Optimierer adam oder adamw ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.9 |
beta2 |
Der Wert von beta2 , wenn der Optimierer adam oder adamw ist.Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.999 |
ams_gradient |
Aktivieren Sie ams_gradient , wenn der Optimierer adam oder adamw ist.Der Wert muss 0 oder 1 sein. |
0 |
evaluation_frequency |
Häufigkeit zum Auswerten des Validierungsdatasets, um Metrikergebnisse zu erhalten. Der Wert muss eine positive ganze Zahl sein. |
1 |
checkpoint_frequency |
Häufigkeit zum Speichern von Modellprüfpunkten. Der Wert muss eine positive ganze Zahl sein. |
Prüfpunkt bei der Epoche mit der besten primären Metrik bei der Validierung. |
checkpoint_run_id |
Die Ausführungs-ID des Experiments, das über einen vortrainierten Prüfpunkt für inkrementelles Training verfügt | Kein Standard |
layers_to_freeze |
Wie viele Ebenen für Ihr Modell eingefroren werden. Die Übergabe von 2 als Wert für seresnext bedeutet z. B. das Einfrieren von Ebene0 und Ebene1 unter Bezugnahme auf die nachfolgend unterstützten Modellebenen. Der Wert muss eine positive ganze Zahl sein. - 'resnet' : [('conv1.', 'bn1.'), 'layer1.', 'layer2.', 'layer3.', 'layer4.'] - 'mobilenetv2' : ['features.0.', 'features.1.', 'features.2.', 'features.3.', 'features.4.', 'features.5.', 'features.6.', 'features.7.', 'features.8.', 'features.9.', 'features.10.', 'features.11.', 'features.12.', 'features.13.', 'features.14.', 'features.15.', 'features.16.', 'features.17.', 'features.18.'] - 'seresnext' : : : ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.'] * 'vit' ['patch_embed', 'blocks.0.', 'blocks.1.', 'blocks.2.', 'blocks.3.', 'blocks.4.', 'blocks.5.', 'blocks.6.','blocks.7.', 'blocks.8.', 'blocks.9.', 'blocks.10.', 'blocks.11.'] * 'yolov5_backbone' ['model.0.', 'model.1.', 'model.2.', 'model.3.', 'model.4.','model.5.', 'model.6.', 'model.7.', 'model.8.', 'model.9.'] - 'resnet_backbone' : ['backbone.body.conv1.', 'backbone.body.layer1.', 'backbone.body.layer2.','backbone.body.layer3.', 'backbone.body.layer4.'] |
Kein Standard |
Spezifische Hyperparameter für die Bildklassifizierung (mehrere Klassen und mehrere Bezeichnungen)
In der folgenden Tabelle sind Hyperparmeter für Bildklassifizierungsaufgaben (mit mehreren Klassen und mehreren Bezeichnungen) zusammengefasst.
Parametername | BESCHREIBUNG | Standard |
---|---|---|
model_name |
Modellname, der für die Bildklassifizierungsaufgabe verwendet werden soll. Muss eines der folgende Formate aufweisen: mobilenetv2 , resnet18 , resnet34 , resnet50 , resnet101 , resnet152 , resnest50 , resnest101 , seresnext , vits16r224 , vitb16r224 , vitl16r224 . |
seresnext |
weighted_loss |
– 0 für nicht gewichteten Verlust. - 1 für gewichtete Verlust mit sqrt. (class_weights) – 2 für gewichteten Verlust mit class_weights. – Muss 0, 1 oder 2 sein. |
0 |
validation_resize_size |
– Bildgröße, auf die die Größe vor dem Zuschneiden für das Validierungsdataset geändert werden soll. – Muss eine positive ganze Zahl sein. Hinweise: - seresnext nimmt keine beliebige Größe an. – Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
256 |
validation_crop_size |
– Größe des Bildausschnitts, der in Ihr neuronales Netzwerk für das Validierungsdataset eingegeben wird. – Muss eine positive ganze Zahl sein. Hinweise: - seresnext nimmt keine beliebige Größe an. - ViT-Varianten müssen für validation_crop_size und training_crop_size dieselben Werte aufweisen. – Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
224 |
training_crop_size |
– Größe des Bildausschnitts, der in Ihr neuronales Netzwerk für das Trainingsdataset eingegeben wird. – Muss eine positive ganze Zahl sein. Hinweise: - seresnext nimmt keine beliebige Größe an. - ViT-Varianten müssen für validation_crop_size und training_crop_size dieselben Werte aufweisen. – Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
224 |
Spezifische Hyperparameter der Objekterkennungs- und Instanzsegmentierungsaufgabe
Die folgenden Hyperparameter sind für Aufgaben der Objekterkennung und der Instanzsegmentierung bestimmt.
Warnung
Diese Parameter werden von der yolov5
-Architektur nicht unterstützt. Informationen zu unterstützen yolov5
-Hyperparametern finden Sie unter modellspezifische Hyperparameter.
Parametername | BESCHREIBUNG | Standard |
---|---|---|
model_name |
Modellname, der für die Bildklassifizierungsaufgabe verwendet werden soll. – Für die Objekterkennungsaufgabe ist eine Angabe für yolov5 , fasterrcnn_resnet18_fpn , fasterrcnn_resnet34_fpn , fasterrcnn_resnet50_fpn , fasterrcnn_resnet101_fpn , fasterrcnn_resnet152_fpn und retinanet_resnet50_fpn erforderlich. – Für die Instanzsegmentierungsaufgabe ist eine Angabe für maskrcnn_resnet18_fpn , maskrcnn_resnet34_fpn , maskrcnn_resnet50_fpn , maskrcnn_resnet101_fpn , maskrcnn_resnet152_fpn erforderlich |
– Für die Objekterkennungsaufgabe: fasterrcnn_resnet50_fpn – Für die Instanzsegmentierungsaufgabe: maskrcnn_resnet50_fpn |
validation_metric_type |
Metrikberechnungsmethode, die für Validierungsmetriken zu verwenden ist. Muss none , coco , voc oder coco_voc sein. |
voc |
validation_iou_threshold |
IOU-Schwellenwert für Rahmenabgleich beim Berechnen von Validierungsmetriken. Muss ein Gleitkommawert im Bereich [0,1; 1] sein. |
0.5 |
min_size |
Mindestgröße des Bilds, das neu skaliert werden soll, bevor es an den Backbone weitergeleitet wird. Der Wert muss eine positive ganze Zahl sein. Hinweis: Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
600 |
max_size |
Maximale Größe des Bilds, das neu skaliert werden soll, bevor es an den Backbone weitergeleitet wird. Der Wert muss eine positive ganze Zahl sein. Hinweis: Bei der Trainingsausführung kann es zu CUDA OOM kommen, wenn die Größe zu groß ist. |
1333 |
box_score_threshold |
Geben Sie während des Rückschlusses nur Vorschläge mit einem Klassifizierungswert zurück, der größer als box_score_threshold ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,3 |
nms_iou_threshold |
IOU-Schwellenwert (Schnittmenge über Vereinigungsmenge), der in der NMS (Non-Maximum Suppression, nicht maximale Unterdrückung) für den Vorhersagekopf verwendet wird. Wird während des Rückschlusses verwendet. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0.5 |
box_detections_per_image |
Maximale Anzahl von Erkennungen pro Bild für alle Klassen. Der Wert muss eine positive ganze Zahl sein. |
100 |
tile_grid_size |
Die Rastergröße, die für die Kachelung der einzelnen Bilder verwendet werden soll. - tile_grid_size darf nicht „None“ (Keine) sein, um die Logik der Erkennung kleiner Objekte zu aktivieren.- tile_grid_size wird für Aufgaben der Instanzsegmentierung nicht unterstützt.Sollte als Zeichenfolge im „3x2“-Format übergeben werden. Beispiel: --tile_grid_size '3x2' |
Kein Standardwert |
tile_overlap_ratio |
Überlappungsverhältnis zwischen angrenzenden Kacheln in den einzelnen Dimensionen. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,25 |
tile_predictions_nms_threshold |
Der IOU-Schwellenwert, der zum Ausführen von NMS beim Zusammenführen von Vorhersagen aus Kacheln und Bildern verwendet werden soll. Wird bei der Validierung bzw. beim Rückschließen verwendet. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,25 |
Nächste Schritte
Informationen zum Einrichten von automatisiertem maschinellem Lernen für das Trainieren von Modellen für maschinelles Sehen mit Python finden Sie hier.
Tutorial: Trainieren eines Objekterkennungsmodells mit AutoML und Python.