共用方式為


自動化機器學習中計算機視覺工作的超參數

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

瞭解哪些超參數特別適用於自動化 ML 實驗中的電腦視覺工作。

透過支援電腦視覺工作,您可以控制模型架構和掃掠超參數。 這些模型架構和超參數會當做掃掠的參數空間傳入。 雖然公開的許多超參數都是與模型無關的,但有一個實例,其中超參數是模型特定或工作特定的。

模型特定的超參數

下表摘要說明架構特有的 yolov5 超參數。

參數名稱 描述 預設
validation_metric_type 用於驗證計量的計量計算方法。
必須是 nonecocovoccoco_voc
voc
validation_iou_threshold 計算驗證計量時方塊比對的IOU閾值。
必須是範圍 [0.1, 1] 中的浮點數。
0.5
image_size 定型和驗證的影像大小。
必須是正整數。

注意:如果大小太大,定型執行可能會進入 CUDA OOM。
640
model_size 模型大小。
必須是 smallmediumlargeextra_large

注意:如果模型大小太大,定型執行可能會進入 CUDA OOM。
medium
multi_scale 依 +/- 50% 的不同影像大小啟用多重縮放影像
必須是 0 或 1。

注意:如果沒有足夠的 GPU 記憶體,定型執行可能會進入 CUDA OOM。
0
box_score_threshold 在推斷期間,只傳回分數大於 box_score_threshold的建議。 分數是物件性分數和分類機率的乘法。
必須是範圍 [0, 1] 內的浮點數。
0.1
nms_iou_threshold 在非最大隱藏后處理中推斷期間使用的IOU臨界值。
必須是範圍 [0, 1] 內的浮點數。
0.5
tile_grid_size 要用於每個並排影像的格線大小。
注意:tile_grid_size不得為 None,才能啟用 小型物件偵測 邏輯
應以 『3x2』 格式的字串形式傳遞。 範例:--tile_grid_size '3x2'
無預設值
tile_overlap_ratio 每個維度中相鄰磚之間的重疊比例。
必須是 [0, 1] 範圍內的 float
0.25
tile_predictions_nms_threshold 用來執行NMS的IOU閾值,同時合併磚和影像的預測。 用於驗證/推斷。
必須是 [0, 1] 範圍內的 float
0.25

下表摘要說明推斷期間實例分割的特定 maskrcnn_* 超參數。

參數名稱 描述 預設
mask_pixel_score_threshold 將像素視為物件遮罩的一部分進行評分截斷。 0.5
max_number_of_polygon_points 從遮罩轉換後,多邊形中的座標組數上限(x,y) 。 100
export_as_image 將遮罩導出為影像。 False
image_type 要匯出遮罩的影像類型(選項為 jpg、png、bmp)。 JPG

模型無從驗證超參數

下表描述與模型無關的超參數。

參數名稱 描述 預設
number_of_epochs 定型 Epoch 的數目。
必須是正整數。
15
(除外 yolov5: 30)
training_batch_size 定型批次大小。
必須是正整數。
多類別/多重標籤:78
(除了 vit-variants
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

對象偵測:2
(除外 yolov5: 16)

實例分割:2

注意:預設值是可在 12 GiB GPU 記憶體上使用的最大批次大小。
validation_batch_size 驗證批次大小。
必須是正整數。
多類別/多重標籤:78
(除了 vit-variants
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

對象偵測:1
(除外 yolov5: 16)

實例分割:1

注意:預設值是可在 12 GiB GPU 記憶體上使用的最大批次大小。
gradient_accumulation_step 漸層累積表示在不更新模型權數的情況下執行已設定的數目 gradient_accumulation_step ,同時累積這些步驟的漸層,然後使用累積的漸層來計算權數更新。
必須是正整數。
1
early_stopping 在定型期間啟用早期停止邏輯。
必須是 0 或 1。
1
early_stopping_patience 使用的最小 Epoch 或驗證評估數目
停止執行之前,沒有主要計量改進。
必須是正整數。
5
early_stopping_delay 要等候的 Epoch 或驗證評估數目下限
在追蹤主要計量改善以進行早期停止之前。
必須是正整數。
5
learning_rate 初始學習速率。
必須是範圍 [0, 1] 內的浮點數。
多類別:0.01
(除了 vit-variants
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

多重標籤:0.035
(除了 vit-variants
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

對象偵測:0.005
(除外 yolov5: 0.01)

實例分割:0.005
learning_rate_scheduler 學習率排程器的類型。
必須是 warmup_cosinestep
warmup_cosine
step_lr_gamma 學習速率排程器 step為 時伽瑪的值。
必須是範圍 [0, 1] 內的浮點數。
0.5
step_lr_step_size 學習速率排程器 step為 時的步驟大小值。
必須是正整數。
5
warmup_cosine_lr_cycles 學習速率排程器 warmup_cosine為 時餘弦迴圈的值。
必須是範圍 [0, 1] 內的浮點數。
0.45
warmup_cosine_lr_warmup_epochs 學習速率排程器為 時,熱身 Epoch 的值。warmup_cosine
必須是正整數。
2
optimizer 優化工具的類型。
必須是 sgdadamadamw
sgd
momentum 優化器為 sgd時的勢頭值。
必須是範圍 [0, 1] 內的浮點數。
0.9
weight_decay 優化器為 sgdadamadamw時的權數衰變數。
必須是範圍 [0, 1] 內的浮點數。
1e-4
nesterov 當最佳化器為 sgd時開啟 nesterov
必須是 0 或 1。
1
beta1 beta1優化器為 adamadamw時的值。
必須是範圍 [0, 1] 內的浮點數。
0.9
beta2 beta2優化器為 adamadamw時的值。
必須是範圍 [0, 1] 內的浮點數。
0.999
ams_gradient 當最佳化器為 adamadamw時開啟 ams_gradient
必須是 0 或 1。
0
evaluation_frequency 評估驗證數據集以取得計量分數的頻率。
必須是正整數。
1
checkpoint_frequency 儲存模型檢查點的頻率。
必須是正整數。
在驗證時具有最佳主要計量的 Epoch 檢查點。
checkpoint_run_id 具有累加定型定型檢查點之實驗的執行標識碼。 無預設值
layers_to_freeze 要凍結模型多少層。 例如,傳遞 2 做為值, seresnext 表示凍結 layer0 和 layer1,參考下列支援的模型層資訊。
必須是正整數。

- '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.']
無預設值

影像分類 (多類別和多標籤) 特定超參數

下表摘要說明影像分類(多類別和多標籤)工作的超參數。

參數名稱 描述 預設
model_name 用於手邊影像分類工作的模型名稱。

必須是 、、、、resnet152seresnextresnet34resnest101resnest50resnet50resnet101、、、vits16r224、、vitl16r224vitb16r224 的其中一個。mobilenetv2resnet18
seresnext
weighted_loss - 0 沒有減肥。
- 1 用於 sqrt 的加權減肥。(class_weights)
- 2 用於減肥與class_weights。
- 必須是 0 或 1 或 2。
0
validation_resize_size - 在裁剪驗證數據集之前要重設大小的影像大小。
- 必須是正整數。

筆記:
- seresnext 不會採用任意大小。
- 如果大小太大
,訓練回合可能會進入 CUDA OOM。
256
validation_crop_size - 影像裁剪大小,這是用於驗證數據集的神經網路輸入。
- 必須是正整數。

筆記:
- seresnext 不會採用任意大小。
- ViT 變體 應該具有相同 validation_crop_sizetraining_crop_size
- 如果大小太大
,訓練回合可能會進入 CUDA OOM。
224
training_crop_size - 影像裁剪大小,這是訓練數據集之類神經網路的輸入。
- 必須是正整數。

筆記:
- seresnext 不會採用任意大小。
- ViT 變體 應該具有相同 validation_crop_sizetraining_crop_size
- 如果大小太大
,訓練回合可能會進入 CUDA OOM。
224

對象偵測和實例分割工作特定的超參數

下列超參數適用於物件偵測和實例分割工作。

警告

架構不支持 yolov5 這些參數。 如需支援的超參數,請參閱模型特定的超參數一節yolov5

參數名稱 描述 預設
model_name 用於手邊影像分類工作的模型名稱。
- 針對對象偵測工作,必須是 、yolov5fasterrcnn_resnet18_fpnfasterrcnn_resnet34_fpn、、fasterrcnn_resnet50_fpnfasterrcnn_resnet101_fpn、、 retinanet_resnet50_fpnfasterrcnn_resnet152_fpn的其中一項。
- 針對實體分割工作,必須是、maskrcnn_resnet18_fpnmaskrcnn_resnet34_fpnmaskrcnn_resnet50_fpnmaskrcnn_resnet101_fpnmaskrcnn_resnet152_fpn
- 針對對象偵測工作, fasterrcnn_resnet50_fpn
- 針對實例分割工作, maskrcnn_resnet50_fpn
validation_metric_type 用於驗證計量的計量計算方法。
必須是 nonecocovoccoco_voc
voc
validation_iou_threshold 計算驗證計量時方塊比對的IOU閾值。
必須是範圍 [0.1, 1] 中的浮點數。
0.5
min_size 將影像饋送至骨幹之前,要重新調整的影像大小下限。
必須是正整數。

注意:如果大小太大,定型執行可能會進入 CUDA OOM。
600
max_size 在將影像饋送至骨幹之前,要重新調整的影像大小上限。
必須是正整數。

注意:如果大小太大,定型執行可能會進入 CUDA OOM。
1333
box_score_threshold 在推斷期間,只傳回分類分數大於 box_score_threshold的建議。
必須是範圍 [0, 1] 內的浮點數。
0.3
nms_iou_threshold 在非最大歸併 (NMS) 中用於預測前端的 IOU (交叉超過等位) 臨界值。 在推斷期間使用。
必須是範圍 [0, 1] 內的浮點數。
0.5
box_detections_per_image 所有類別的每個影像偵測數目上限。
必須是正整數。
100
tile_grid_size 要用於每個並排影像的格線大小。
- tile_grid_size 不得為 None,才能啟用 小型物件偵測 邏輯。
- tile_grid_size 實例分割工作不支援。
應以 『3x2』 格式的字串形式傳遞。 範例:--tile_grid_size '3x2'
無預設值
tile_overlap_ratio 每個維度中相鄰磚之間的重疊比例。
必須是 [0, 1] 範圍內的 float
0.25
tile_predictions_nms_threshold 用來執行NMS的IOU閾值,同時合併磚和影像的預測。 用於驗證/推斷。
必須是 [0, 1] 範圍內的 float
0.25

下一步