Hiperparametry dla zadań przetwarzania obrazów w zautomatyzowanym uczeniu maszynowym

DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)Zestaw SDK języka Python azure-ai-ml w wersji 2 (bieżąca)

Dowiedz się, które hiperparametry są dostępne specjalnie dla zadań przetwarzania obrazów w eksperymentach zautomatyzowanego uczenia maszynowego.

Dzięki obsłudze zadań przetwarzania obrazów można kontrolować architekturę modelu i zamiatać hiperparametry. Te architektury modelu i hiperparametry są przekazywane jako przestrzeń parametrów dla zamiatania. Podczas gdy wiele hiperparametrów uwidocznionych jest niezależnie od modelu, istnieją wystąpienia, w których hiperparametry są specyficzne dla modelu lub specyficzne dla zadania.

Hiperparametry specyficzne dla modelu

Ta tabela zawiera podsumowanie hiperparametrów specyficznych dla yolov5 architektury.

Nazwa parametru Opis Domyślny
validation_metric_type Metoda obliczeniowa metryki do użycia na potrzeby metryk weryfikacji.
Musi być none, , voccocolub coco_voc.
voc
validation_iou_threshold Próg operacji we/wy dla pola pasującego podczas przetwarzania metryk weryfikacji.
Musi być zmiennoprzecinkowym w zakresie [0,1, 1].
0,5
image_size Rozmiar obrazu do trenowania i walidacji.
Musi być dodatnią liczbą całkowitą.

Uwaga: uruchomienie treningowe może dostać się do CUDA OOM, jeśli rozmiar jest zbyt duży.
640
model_size Rozmiar modelu.
Musi być small, , largemediumlub extra_large.

Uwaga: uruchomienie trenowania może dostać się do CUDA OOM, jeśli rozmiar modelu jest zbyt duży.
medium
multi_scale Włącz obraz wieloskalowy, różniąc się rozmiarem obrazu o +/- 50%
Musi mieć wartość 0 lub 1.

Uwaga: uruchomienie trenowania może dostać się do cudA OOM, jeśli nie ma wystarczającej pamięci procesora GPU.
0
box_score_threshold Podczas wnioskowania zwracane są tylko propozycje z wynikiem większym niż box_score_threshold. Wynik jest mnożeniem wyniku obiektu i prawdopodobieństwem klasyfikacji.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0.1
nms_iou_threshold Próg operacji we/wy używany podczas wnioskowania w przetwarzaniu po zakończeniu operacji pomijania nie jest maksymalny.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0,5
tile_grid_size Rozmiar siatki, który ma być używany do układania każdego obrazu.
Uwaga: tile_grid_size nie może mieć wartości Brak, aby włączyć logikę wykrywania małych obiektów
Należy przekazać jako ciąg w formacie "3x2". Przykład: --tile_grid_size "3x2"
Brak wartości domyślnej
tile_overlap_ratio Nakładanie się między sąsiednimi kafelkami w każdym wymiarze.
Musi być zmiennoprzecinkowy w zakresie [0, 1)
0,25
tile_predictions_nms_threshold Próg operacji we/wy używany do wykonywania nms podczas scalania przewidywań z kafelków i obrazu. Używane w weryfikacji/wnioskowaniu.
Musi być zmiennoprzecinkowy w zakresie [0, 1]
0,25

Ta tabela zawiera podsumowanie hiperparametrów specyficznych dla maskrcnn_* segmentacji wystąpienia podczas wnioskowania.

Nazwa parametru Opis Domyślny
mask_pixel_score_threshold Ocenianie odcięcia w celu rozważenia piksela w ramach maski obiektu. 0,5
max_number_of_polygon_points Maksymalna liczba par współrzędnych (x, y) w wielokącie po przekonwertowaniu z maski. 100
export_as_image Eksportuj maski jako obrazy. Fałsz
image_type Typ obrazu do wyeksportowania maski jako (opcje to jpg, png, bmp). JPG

Hiperparametry niezależne od modelu

W poniższej tabeli opisano hiperparametry, które są niezależne od modelu.

Nazwa parametru Opis Domyślny
number_of_epochs Liczba epok treningowych.
Musi być dodatnią liczbą całkowitą.
15
(z wyjątkiem yolov5: 30)
training_batch_size Rozmiar partii trenowania.
Musi być dodatnią liczbą całkowitą.
Multi-class/multi-label: 78
(z wyjątkiem wariantów vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Wykrywanie obiektu: 2
(z wyjątkiem yolov5: 16)

Segmentacja wystąpienia: 2

Uwaga: wartości domyślne to największy rozmiar partii, który może być używany w pamięci procesora GPU 12 GiB.
validation_batch_size Walidacja rozmiaru partii.
Musi być dodatnią liczbą całkowitą.
Multi-class/multi-label: 78
(z wyjątkiem wariantów vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Wykrywanie obiektu: 1
(z wyjątkiem yolov5: 16)

Segmentacja wystąpienia: 1

Uwaga: wartości domyślne to największy rozmiar partii, który może być używany w pamięci procesora GPU 12 GiB.
gradient_accumulation_step Akumulacja gradientu oznacza uruchomienie skonfigurowanej liczby gradient_accumulation_step bez aktualizowania wag modelu podczas gromadzenia gradientów tych kroków, a następnie użycie skumulowanych gradientów do obliczenia aktualizacji wagi.
Musi być dodatnią liczbą całkowitą.
1
early_stopping Włącz logikę wczesnego zatrzymywania podczas trenowania.
Musi mieć wartość 0 lub 1.
1
early_stopping_patience Minimalna liczba epok lub ocen walidacji z
brak podstawowej poprawy metryk przed zatrzymaniem przebiegu.
Musi być dodatnią liczbą całkowitą.
5
early_stopping_delay Minimalna liczba epok lub ocen poprawności do oczekiwania
przed poprawa podstawowej metryki jest śledzona pod kątem wczesnego zatrzymywania.
Musi być dodatnią liczbą całkowitą.
5
learning_rate Początkowa stawka nauki.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
Wieloklasowa klasa: 0.01
(z wyjątkiem wariantów vit:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

Wiele etykiet: 0,035
(z wyjątkiem wariantów vit:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

Wykrywanie obiektów: 0,005
(z wyjątkiem yolov5: 0,01)

Segmentacja wystąpień: 0,005
learning_rate_scheduler Typ harmonogramu szybkości nauki.
Musi być warmup_cosine lub step.
warmup_cosine
step_lr_gamma Wartość gamma, gdy harmonogram szybkości uczenia to step.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0,5
step_lr_step_size Wartość rozmiaru kroku, gdy harmonogram szybkości nauki to step.
Musi być dodatnią liczbą całkowitą.
5
warmup_cosine_lr_cycles Wartość cyklu cosinusowego, gdy harmonogram szybkości nauki to warmup_cosine.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0,45
warmup_cosine_lr_warmup_epochs Wartość epok rozgrzewki, gdy harmonogram szybkości nauki to warmup_cosine.
Musi być dodatnią liczbą całkowitą.
2
optimizer Typ optymalizatora.
Musi być albo sgd, , adamwadam.
sgd
momentum Wartość tempa, gdy optymalizator ma wartość sgd.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0,9
weight_decay Wartość rozpadu wagi, gdy optymalizator to sgd, adamlub adamw.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
1e-4
nesterov Włącz nesterov , gdy optymalizator ma wartość sgd.
Musi mieć wartość 0 lub 1.
1
beta1 Wartość parametru beta1 , gdy optymalizator ma wartość adam lub adamw.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0,9
beta2 Wartość parametru beta2 , gdy optymalizator ma wartość adam lub adamw.
Musi być zmiennoprzecinkowym w zakresie [0, 1].
0.999
ams_gradient Włącz ams_gradient , gdy optymalizator ma wartość adam lub adamw.
Musi mieć wartość 0 lub 1.
0
evaluation_frequency Częstotliwość oceny zestawu danych weryfikacji w celu uzyskania wyników metryk.
Musi być dodatnią liczbą całkowitą.
1
checkpoint_frequency Częstotliwość przechowywania punktów kontrolnych modelu.
Musi być dodatnią liczbą całkowitą.
Punkt kontrolny w epoki z najlepszą podstawową metrykami weryfikacji.
checkpoint_run_id Identyfikator przebiegu eksperymentu, który ma wstępnie wytrenowany punkt kontrolny na potrzeby trenowania przyrostowego. brak wartości domyślnej
layers_to_freeze Ile warstw ma być blokowanych dla modelu. Na przykład przekazanie wartości 2 jako wartości seresnext oznacza zamrożenie warstwy 0 i warstwy 1 odwołujące się do poniższych obsługiwanych informacji o warstwie modelu.
Musi być dodatnią liczbą całkowitą.

- '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.']
brak wartości domyślnej

Hiperparametry specyficzne dla klasyfikacji obrazów (wieloklasowej i wieloklasowej)

Poniższa tabela zawiera podsumowanie hiperparmetrów dla zadań klasyfikacji obrazów (wieloklasowych i wieloemetrycznych).

Nazwa parametru Opis Domyślny
model_name Nazwa modelu do użycia w zadaniu klasyfikacji obrazów.

Musi być jednym z mobilenetv2, , resnet18, resnet50vitb16r224resnet34resnet101vits16r224resnet152resnest50resnest101seresnext. vitl16r224
seresnext
weighted_loss - 0 bez odchudzania.
- 1 dla odchudzania z sqrt. (class_weights)
- 2 dla odchudzania z class_weights.
- Musi mieć wartość 0 lub 1 lub 2.
0
validation_resize_size — Rozmiar obrazu, którego rozmiar ma być zmieniany przed przycinaniem zestawu danych weryfikacji.
- Musi być dodatnią liczbą całkowitą.

Notatki:
- seresnext nie ma dowolnego rozmiaru.
- Uruchomienie treningowe może dostać się do CUDA OOM, jeśli rozmiar jest zbyt duży
.
256
validation_crop_size — Rozmiar przycinania obrazów, który jest wejściowy do sieci neuronowej na potrzeby zestawu danych weryfikacji.
- Musi być dodatnią liczbą całkowitą.

Notatki:
- seresnext nie ma dowolnego rozmiaru.
- Warianty ViT powinny mieć te same validation_crop_size i training_crop_size.
- Uruchomienie treningowe może dostać się do CUDA OOM, jeśli rozmiar jest zbyt duży
.
224
training_crop_size — Rozmiar przycinania obrazów, który jest wejściowy do sieci neuronowej na potrzeby trenowania zestawu danych.
- Musi być dodatnią liczbą całkowitą.

Notatki:
- seresnext nie ma dowolnego rozmiaru.
- Warianty ViT powinny mieć te same validation_crop_size i training_crop_size.
- Uruchomienie treningowe może dostać się do CUDA OOM, jeśli rozmiar jest zbyt duży
.
224

Hiperparametry dotyczące wykrywania obiektów i segmentacji wystąpień

Następujące hiperparametry są przeznaczone do zadań wykrywania obiektów i segmentacji wystąpień.

Ostrzeżenie

Te parametry nie są obsługiwane w architekturze yolov5 . Zobacz sekcję hiperparametrów specyficznych dla modelu , aby zapoznać się z yolov5 obsługiwanymi hiperparmetrami.

Nazwa parametru Opis Domyślny
model_name Nazwa modelu do użycia w zadaniu klasyfikacji obrazów.
- W przypadku zadania wykrywania obiektów musi być jednym z yolov5elementów , fasterrcnn_resnet18_fpn, , fasterrcnn_resnet50_fpnfasterrcnn_resnet34_fpn, fasterrcnn_resnet101_fpn, fasterrcnn_resnet152_fpn. retinanet_resnet50_fpn
— W przypadku zadania segmentacji wystąpień musi być jednym z maskrcnn_resnet18_fpn, maskrcnn_resnet34_fpn, maskrcnn_resnet50_fpn, , maskrcnn_resnet101_fpnmaskrcnn_resnet152_fpn
- Dla zadania wykrywania obiektów, fasterrcnn_resnet50_fpn
— W przypadku zadania segmentacji wystąpienia, maskrcnn_resnet50_fpn
validation_metric_type Metoda obliczania metryki do użycia na potrzeby metryk walidacji.
Musi mieć wartość none, coco, voclub coco_voc.
voc
validation_iou_threshold Próg operacji we/wy dla pola dopasowania podczas przetwarzania metryk weryfikacji.
Musi być zmiennoprzecinkiem w zakresie [0.1, 1].
0,5
min_size Minimalny rozmiar obrazu do ponownego skalowania przed przesłaniem go do sieci szkieletowej.
Musi być dodatnią liczbą całkowitą.

Uwaga: przebieg trenowania może dostać się do cudA OOM, jeśli rozmiar jest zbyt duży.
600
max_size Maksymalny rozmiar obrazu do ponownego skalowania przed przesłaniem go do sieci szkieletowej.
Musi być dodatnią liczbą całkowitą.

Uwaga: przebieg trenowania może dostać się do cudA OOM, jeśli rozmiar jest zbyt duży.
1333
box_score_threshold Podczas wnioskowania zwracane są tylko propozycje z wynikiem klasyfikacji większym niż box_score_threshold.
Musi być zmiennoprzecinkiem w zakresie [0, 1].
0.3
nms_iou_threshold Wartość IOU (przecięcie przeciętego nad unią) używana w przypadku braku maksymalnego pomijania (NMS) dla głowy przewidywania. Używane podczas wnioskowania.
Musi być zmiennoprzecinkiem w zakresie [0, 1].
0,5
box_detections_per_image Maksymalna liczba wykryć na obrazie dla wszystkich klas.
Musi być dodatnią liczbą całkowitą.
100
tile_grid_size Rozmiar siatki do użycia na potrzeby układania obrazów.
- tile_grid_size nie może być brak, aby włączyć logikę wykrywania małych obiektów .
- tile_grid_size nie jest obsługiwana w przypadku zadań segmentacji wystąpień.
Należy przekazać jako ciąg w formacie "3x2". Przykład: --tile_grid_size "3x2"
Brak wartości domyślnej
tile_overlap_ratio Współczynnik nakładania się między sąsiednimi kafelkami w każdym wymiarze.
Musi być zmiennoprzecinkowy w zakresie [0, 1)
0,25
tile_predictions_nms_threshold Próg operacji we/wy używany do wykonywania nmS podczas scalania przewidywań z kafelków i obrazu. Używany w weryfikacji/wnioskowaniu.
Musi być zmiennoprzecinkowa w zakresie [0, 1]
0,25

Następne kroki