在自動化機器學習中電腦視覺工作的超參數
適用於: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' 格式的字串形式傳遞。 Example: --tile_grid_size '3x2' |
無預設值 |
tile_overlap_ratio |
每個維度中相鄰圖格之間的重疊比例。 必須是範圍 [0, 1] 內的浮點數 |
0.25 |
tile_predictions_nms_threshold |
從圖格和影像合併預測時用來執行 NMS 的 IOU 閾值。 用於驗證/推斷。 必須是範圍 [0, 1] 內的浮點數 |
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 :128vitb16r224 :48vitl16r224 :10)物件偵測:2 (預期 yolov5 :16)執行個體分割:2 注意:預設值是可用於 12 GIB GPU 記憶體的最大批次大小. |
validation_batch_size |
驗證批次大小。 必須是正整數。 |
多類別/多標籤:78 (預期 vit-variants: vits16r224 :128vitb16r224 :48vitl16r224 :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.025vitl16r224 :0.002)物件偵測:0.005 (預期 yolov5 :0.01)執行個體分割:0.005 |
learning_rate_scheduler |
學習率排程器的類型。 必須是 warmup_cosine 或 step 。 |
warmup_cosine |
step_lr_gamma |
學習速率排程器為 step 時 Gamma 的值。必須是範圍 [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 |
學習速率排程器為 warmup_cosine 時預熱 Epoch 的值。 必須是正整數。 |
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 |
最佳化工具為 adam 或 adamw 時 beta1 的值。 必須是範圍 [0, 1] 內的浮點數。 |
0.9 |
beta2 |
最佳化工具為 adam 或 adamw 時 beta2 的值。必須是範圍 [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 |
用於手邊影像分類工作的模型名稱。 必須是 、、、 resnet34 、 resnest50 resnest101 seresnext resnet50 resnet101 resnet152 、、 vitb16r224 vits16r224 、 vitl16r224 的 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-variants 應該具有相同 validation_crop_size 的 和 training_crop_size 。 - 如果大小太大 ,定型回合可能會進入 CUDA OOM。 |
224 |
training_crop_size |
- 影像裁剪大小,這是用於訓練資料集的神經網路輸入。 - 必須是正整數。 注意: - seresnext 不會採用任意大小。 - ViT-variants 應該具有相同 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 、 fasterrcnn_resnet152_fpn 、 retinanet_resnet50_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' 格式的字串形式傳遞。 Example: --tile_grid_size '3x2' |
無預設值 |
tile_overlap_ratio |
每個維度中相鄰圖格之間的重疊比例。 必須是範圍 [0, 1] 內的浮點數 |
0.25 |
tile_predictions_nms_threshold |
從圖格和影像合併預測時用來執行 NMS 的 IOU 閾值。 用於驗證/推斷。 必須是範圍 [0, 1] 內的浮點數 |
0.25 |