自動化機器學習中電腦視覺工作的超參數 (v1)
適用於: Python SDK azureml v1 (部分機器翻譯)
瞭解哪些超參數特別適用於自動化 ML 實驗中的電腦視覺工作。
透過電腦視覺工作的支援,您可以控制模型演算法和掃掠超參數。 這些模型演算法和超參數會傳入作為參數空間進行掃掠。 雖然公開的許多超參數都是與模型無關的,但有一個實例,其中超參數是模型特定或工作特定的。
模型特定的超參數
下表摘要說明演算法特有的 yolov5
超參數。
參數名稱 | 描述 | 預設 |
---|---|---|
validation_metric_type |
用於驗證計量的計量計算方法。 必須是 none 、 coco 、 voc 或 coco_voc 。 |
voc |
validation_iou_threshold |
計算驗證計量時方塊比對的IOU閾值。 必須是範圍 [0.1, 1] 中的浮點數。 |
0.5 |
img_size |
定型和驗證的影像大小。 必須是正整數。 注意:如果大小太大,定型執行可能會進入 CUDA OOM。 |
640 |
model_size |
模型大小。 必須是 small 、 medium 、 large 或 xlarge 。 注意:如果模型大小太大,定型執行可能會進入 CUDA OOM。 |
medium |
multi_scale |
依 +/- 50% 的不同影像大小啟用多重縮放影像 必須是 0 或 1。 注意:如果沒有足夠的 GPU 記憶體,定型執行可能會進入 CUDA OOM。 |
0 |
box_score_thresh |
在推斷期間,只傳回分數大於 box_score_thresh 的建議。 分數是物件性分數和分類機率的乘法。 必須是範圍 [0, 1] 內的浮點數。 |
0.1 |
nms_iou_thresh |
在非最大隱藏后處理中推斷期間使用的IOU臨界值。 必須是範圍 [0, 1] 內的浮點數。 |
0.5 |
tile_grid_size |
要用於每個並排影像的格線大小。 注意:tile_grid_size不得為 None,才能啟用 小型物件偵測 邏輯 傳遞為字串之兩個整數的 Tuple。 範例:--tile_grid_size “(3, 2)” |
無預設值 |
tile_overlap_ratio |
每個維度中相鄰磚之間的重疊比例。 必須是 [0, 1] 範圍內的 float |
0.25 |
tile_predictions_nms_thresh |
用來執行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 記憶體上使用的最大批次大小。 |
grad_accumulation_step |
漸層累積表示在不更新模型權數的情況下執行已設定的數目 grad_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 |
lr_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 |
amsgrad |
當最佳化器為 adam 或adamw 時開啟 amsgrad 。必須是 0 或 1。 |
0 |
evaluation_frequency |
評估驗證數據集以取得計量分數的頻率。 必須是正整數。 |
1 |
checkpoint_frequency |
儲存模型檢查點的頻率。 必須是正整數。 |
在驗證時具有最佳主要計量的 Epoch 檢查點。 |
checkpoint_run_id |
具有累加定型定型檢查點之實驗的執行標識碼。 | 無預設值 |
checkpoint_dataset_id |
FileDataset 識別符,其中包含累加式定型的預先定型檢查點。。 請務必與 一checkpoint_dataset_id 起傳遞checkpoint_filename 。 |
無預設值 |
checkpoint_filename |
FileDataset 中用於累加訓練的預先定型檢查點檔名。 請務必與 一checkpoint_filename 起傳遞checkpoint_dataset_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.'] |
無預設值 |
影像分類 (多類別和多標籤) 特定超參數
下表摘要說明影像分類(多類別和多標籤)工作的超參數。
參數名稱 | 描述 | 預設 |
---|---|---|
weighted_loss |
0 沒有減肥。 1 用於與 sqrt 減肥。(class_weights) 2 用於減肥與class_weights。 必須是 0 或 1 或 2。 |
0 |
valid_resize_size |
筆記: seresnext 不會採用任意大小。 |
256 |
valid_crop_size |
筆記: seresnext 不會採用任意大小。 valid_crop_size 和 train_crop_size 。 |
224 |
train_crop_size |
筆記: seresnext 不會採用任意大小。 valid_crop_size 和 train_crop_size 。 |
224 |
對象偵測和實例分割工作特定的超參數
下列超參數適用於物件偵測和實例分割工作。
警告
演算法不支持 yolov5
這些參數。 如需支援的超參數,請參閱模型特定的超參數一節yolov5
。
參數名稱 | 描述 | 預設 |
---|---|---|
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_thresh |
在推斷期間,只傳回分類分數大於 box_score_thresh 的建議。 必須是範圍 [0, 1] 內的浮點數。 |
0.3 |
nms_iou_thresh |
在非最大歸併 (NMS) 中用於預測前端的 IOU (交叉超過等位) 臨界值。 在推斷期間使用。 必須是範圍 [0, 1] 內的浮點數。 |
0.5 |
box_detections_per_img |
所有類別的每個影像偵測數目上限。 必須是正整數。 |
100 |
tile_grid_size |
要用於每個並排影像的格線大小。 注意:tile_grid_size不得為 None,才能啟用 小型物件偵測 邏輯 傳遞為字串之兩個整數的 Tuple。 範例:--tile_grid_size “(3, 2)” |
無預設值 |
tile_overlap_ratio |
每個維度中相鄰磚之間的重疊比例。 必須是 [0, 1] 範圍內的 float |
0.25 |
tile_predictions_nms_thresh |
用來執行NMS的IOU閾值,同時合併磚和影像的預測。 用於驗證/推斷。 必須是 [0, 1] 範圍內的 float |
0.25 |