Hyperparameter für Aufgaben im Bereich maschinelles Sehen beim automatisierten maschinellen Lernen (v1)
GILT FÜR: Python SDK azureml v1
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 den Modellalgorithmus steuern und Hyperparameter bereinigen. Diese Modellalgorithmen und Hyperparameter werden als Parameterraum für den Sweep ü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 den yolov5
-Algorithmus 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 |
img_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 xlarge 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_thresh |
Geben Sie während des Rückschlusses nur Vorschläge mit einem Wert zurück, der größer als box_score_thresh 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_thresh |
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 Ein Tupel mit zwei ganzen Zahlen, die als Zeichenfolge übergeben werden. Beispiel: --tile_grid_size "(3, 2)" |
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_thresh |
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. |
grad_accumulation_step |
Gradientenakkumulation bedeutet, dass eine konfigurierte Anzahl von grad_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 |
lr_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 |
amsgrad |
Aktivieren Sie amsgrad , 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 |
checkpoint_dataset_id |
FileDataset-ID, die vortrainierte Prüfpunkte für inkrementelles Training enthält. Stellen Sie sicher, dass Sie checkpoint_filename zusammen mit checkpoint_dataset_id übergeben. |
Kein Standard |
checkpoint_filename |
Der vorab trainierte Prüfpunktdateiname in FileDataset für inkrementelles Training. Stellen Sie sicher, dass Sie checkpoint_dataset_id zusammen mit checkpoint_filename übergeben. |
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 |
---|---|---|
weighted_loss |
0 für keinen gewichteten Verlust. 1 für gewichteten Verlust mit sqrt (class_weights). 2 für gewichteten Verlust mit class_weights. Muss 0, 1 oder 2 sein. |
0 |
valid_resize_size |
Hinweise: seresnext nimmt keine beliebige Größe an. |
256 |
valid_crop_size |
Hinweise: seresnext nimmt keine beliebige Größe an. valid_crop_size und train_crop_size aufweisen. |
224 |
train_crop_size |
Hinweise: seresnext nimmt keine beliebige Größe an. valid_crop_size und train_crop_size aufweisen. |
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 dem yolov5
-Algorithmus nicht unterstützt. Informationen zu unterstützen yolov5
-Hyperparametern finden Sie unter modellspezifische Hyperparameter.
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 |
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_thresh |
Geben Sie während des Rückschlusses nur Vorschläge mit einem Klassifizierungswert zurück, der größer als box_score_thresh ist. Muss ein Gleitkommawert im Bereich [0, 1] sein. |
0,3 |
nms_iou_thresh |
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_img |
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. Hinweis: tile_grid_size darf nicht „None“ (Keine) sein, um die Logik der Erkennung kleiner Objekte zu aktivieren Ein Tupel mit zwei ganzen Zahlen, die als Zeichenfolge übergeben werden. Beispiel: --tile_grid_size "(3, 2)" |
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_thresh |
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 (Vorschauversion) finden Sie hier.
Tutorial: Trainieren eines Objekterkennungsmodells (Vorschauversion) mit AutoML und Python.