自動化機器學習中計算機視覺工作的超參數
適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)
瞭解哪些超參數特別適用於自動化 ML 實驗中的電腦視覺工作。
透過支援電腦視覺工作,您可以控制模型架構和掃掠超參數。 這些模型架構和超參數會當做掃掠的參數空間傳入。 雖然公開的許多超參數都是與模型無關的,但有一個實例,其中超參數是模型特定或工作特定的。
模型特定的超參數
下表摘要說明架構特有的 yolov5
超參數。
參數名稱 | 描述 | 預設 |
---|---|---|
validation_metric_type |
用於驗證計量的計量計算方法。 必須是 none 、 coco 、 voc 或 coco_voc 。 |
voc |
validation_iou_threshold |
計算驗證計量時方塊比對的IOU閾值。 必須是範圍 [0.1, 1] 中的浮點數。 |
0.5 |
image_size |
定型和驗證的影像大小。 必須是正整數。 注意:如果大小太大,定型執行可能會進入 CUDA OOM。 |
640 |
model_size |
模型大小。 必須是 small 、 medium 、 large 或 extra_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.0125vitb16r224 : 0.0125vitl16r224 : 0.001) 多重標籤:0.035 (除了 vit-variants: vits16r224 : 0.025vitb16r224 : 0.025 vitl16r224 : 0.002) 對象偵測:0.005 (除外 yolov5 : 0.01) 實例分割:0.005 |
learning_rate_scheduler |
學習率排程器的類型。 必須是 warmup_cosine 或 step 。 |
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 |
優化工具的類型。 必須是 sgd 、 adam 、 adamw 。 |
sgd |
momentum |
優化器為 sgd 時的勢頭值。 必須是範圍 [0, 1] 內的浮點數。 |
0.9 |
weight_decay |
優化器為 sgd 、 adam 或 adamw 時的權數衰變數。 必須是範圍 [0, 1] 內的浮點數。 |
1e-4 |
nesterov |
當最佳化器為 sgd 時開啟 nesterov 。 必須是 0 或 1。 |
1 |
beta1 |
beta1 優化器為 adam 或 adamw 時的值。 必須是範圍 [0, 1] 內的浮點數。 |
0.9 |
beta2 |
beta2 優化器為 adam 或 adamw 時的值。必須是範圍 [0, 1] 內的浮點數。 |
0.999 |
ams_gradient |
當最佳化器為 adam 或adamw 時開啟 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 |
用於手邊影像分類工作的模型名稱。 必須是 、、、、 resnet152 seresnext resnet34 resnest101 resnest50 resnet50 resnet101 、、、vits16r224 、、vitl16r224 vitb16r224 的其中一個。mobilenetv2 resnet18 |
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_size 和 training_crop_size 。 - 如果大小太大,訓練回合可能會進入 CUDA OOM。 |
224 |
training_crop_size |
- 影像裁剪大小,這是訓練數據集之類神經網路的輸入。 - 必須是正整數。 筆記: - seresnext 不會採用任意大小。 - ViT 變體 應該具有相同 validation_crop_size 和 training_crop_size 。 - 如果大小太大,訓練回合可能會進入 CUDA OOM。 |
224 |
對象偵測和實例分割工作特定的超參數
下列超參數適用於物件偵測和實例分割工作。
警告
架構不支持 yolov5
這些參數。 如需支援的超參數,請參閱模型特定的超參數一節yolov5
。
參數名稱 | 描述 | 預設 |
---|---|---|
model_name |
用於手邊影像分類工作的模型名稱。 - 針對對象偵測工作,必須是 、 yolov5 fasterrcnn_resnet18_fpn 、fasterrcnn_resnet34_fpn 、、fasterrcnn_resnet50_fpn 、fasterrcnn_resnet101_fpn 、、 retinanet_resnet50_fpn fasterrcnn_resnet152_fpn 的其中一項。 - 針對實體分割工作,必須是、 maskrcnn_resnet18_fpn 、maskrcnn_resnet34_fpn 、maskrcnn_resnet50_fpn 、 maskrcnn_resnet101_fpn maskrcnn_resnet152_fpn |
- 針對對象偵測工作, fasterrcnn_resnet50_fpn - 針對實例分割工作, maskrcnn_resnet50_fpn |
validation_metric_type |
用於驗證計量的計量計算方法。 必須是 none 、 coco 、 voc 或 coco_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 |
下一步
瞭解如何 設定 AutoML 以使用 Python 將電腦視覺模型定型。