物件偵測超參數 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

物件偵測超參數

CreateTrainingJob 請求中,請指定您想要使用的訓練演算法。您也可以指定演算法特定的超參數,用來協助預估訓練資料集的模型參數。下表列出 Amazon 提供的超參數, SageMaker 用於訓練物件偵測演算法。如需物件訓練運作方式的詳細資訊,請參閱物件偵測的運作方式

參數名稱 描述
num_classes

輸出類別的數量。此參數會定義網路輸出的維度,且通常會以資料集中的類別數量來設定該維度。

必要

有效值:正整數

num_training_samples

輸入資料集中的訓練範例數量。

注意

如果此值與訓練集中的範例數量不相符,則表示 lr_scheduler_step 參數未定義行為,且可能會影響分散式訓練的準確度。

必要

有效值:正整數

base_network

可使用的基礎網路架構。

選用

有效值:'vgg-16' 或 'resnet-50'

預設值:'vgg-16'

early_stopping

True 以在訓練期間使用提前停止的邏輯。False 則不使用它。

選用

有效值:TrueFalse

預設值:False

early_stopping_min_epochs

調用提前停止邏輯前,應執行的 epoch 數量下限。只有在 early_stopping = True 時才會使用。

選用

有效值:正整數

預設值:10

early_stopping_patience

若未在相關指標中進行改善,結束訓練前等待的 epoch 數量,如 early_stopping_tolerance 超參數所定義。只有在 early_stopping = True 時才會使用。

選用

有效值:正整數

預設值:5

early_stopping_tolerance

若要避免提早停止,validation:mAP (平均精度均值 (mAP)) 中的相關改進需要超過的公差值。如果 mAP 中的變更率除以過去最佳 mAP 的結果小於 early_stopping_tolerance 值,則提早停止會將其視為毫無改進。只有在 early_stopping = True 時才會使用。

選用

有效值:0 ≤ 浮點數 ≤ 1

預設值:0.0

image_shape

輸入影像的影像大小。我們會使用此大小將輸入影像重新調整為方形影像。我們建議您使用 300 和 512,以獲得更好的效能。

選用

有效值:正整數 ≥300

預設:300

epochs

訓練 epoch 的數量。

選用

有效值:正整數

預設:30

freeze_layer_pattern

可在基礎網路中凍結層的正規表示式 (regex)。例如,假設我們設定 freeze_layer_pattern = "^(conv1_|conv2_).*",則會凍結任何名稱包含 "conv1_""conv2_" 的層,這表示訓練時不會更新這些層的權重。您可以在網路符號檔案 vgg16-symbol.jsonresnet-50-symbol.json 中找到層名稱。凍結層表示不能進一步修改其權重。這可大幅縮短訓練時間,但會犧牲適度的準確率損失。此技術通常在不需要保留基礎網路中較低層的情況下,用於傳輸學習。

選用

有效值:字串

預設:不凍結任何層。

kv_store

用於分散式訓練的權重更新同步模式。各機器能採用同步或非同步的方式來更新權重。同步更新的準確度通常會高於非同步更新,但執行速度較慢。如需詳細資訊,請參閱分散式訓練MXNet教學課程。

注意

此參數不適用於單部機器訓練。

選用

有效值:'dist_sync''dist_async'

  • 'dist_sync':所有工作者會在每個批次的作業執行完畢後,同步更新梯度。透過 'dist_sync',batch-size 目前可表示各機器所使用的批次大小。所以,假設有 n 部機器使用批次大小 b,則 dist_sync 的行為就像批次大小 n*b 的單一機器。

  • 'dist_async':此參數會執行非同步更新。從任何機器接收到梯度時,系統即會更新權重;權重更新作業不可部分完成。然而,此操作無法保證更新的先後順序。

預設:-

label_width

用來進行跨訓練和驗證資料同步的強制填補標籤寬度。例如,如果資料中的一個影像包含最多 10 個物件,且每個物件註釋指定了 5 個數字 [class_id, left, top, width, height],則 label_width 不得小於 (10*5 + 標題資訊長度)。標題資訊長度通常是 2。我們建議您針對訓練使用稍微大於 label_width 的值,例如此範例的 60。

選用

有效值:足以容納資料中最大註釋資訊長度的正整數。

預設:350

learning_rate

初始學習率。

選用

有效值:浮點數 (0, 1]

預設:0.001

lr_scheduler_factor

降低學習率的比率。搭配使用定義為 lr_new = lr_old * lr_scheduler_factorlr_scheduler_step 參數。

選用

有效值:浮點數 (0, 1)

預設:0.1

lr_scheduler_step

要降低學習率的 epoch。lr_scheduler_factor 會降低提列於逗號分隔字串 "epoch1, epoch2, ..." 中的 epoch 學習速率。例如,假設該值的設定為 "10, 20" 且 lr_scheduler_factor 設為 1/2,則系統會將第 10 個 epoch 後的學習率減半,並再將第 20 個 epoch 後的學習率減半。

選用

有效值:字串

預設:空白字串

mini_batch_size

訓練的批次大小。在單一機器多 CPU 設定中,每個 都會GPU處理mini_batch_size/num_gpu訓練範例。若是 dist_sync 模式中的多部機器訓練,實際批次大小則為:mini_batch_size*機器數量。通常,mini_batch_size 越大訓練更快,但可能會導致記憶體不足問題。記憶體使用量與 mini_batch_sizeimage_shapebase_network 架構相關。例如,在單一 p3.2xlarge 執行個體中,不會導致記憶體不足錯誤的最大 mini_batch_size 為 32,且 base_network 設為 "resnet-50" 而 image_shape 為 300。使用相同的執行個體時,您可以使用 64 的 mini_batch_sizevgg-16 的基礎網路和 300 的 image_shape

選用

有效值:正整數

預設:32

momentum

sgd 的動量。若是其他最佳化工具則忽略。

選用

有效值:浮點數 (0, 1]

預設:0.9

nms_threshold

非最大的抑制閾值。

選用

有效值:浮點數 (0, 1]

預設:0.45

optimizer

最佳化工具類型。如需最佳化工具值的詳細資訊,請參閱 MXNet的 API

選用

有效值:['sgd', 'adam', 'rmsprop', 'adadelta']

預設:'sgd'

overlap_threshold

評估重疊閾值。

選用

有效值:浮點數 (0, 1]

預設:0.5

use_pretrained_model

指出是否要使用預先訓練模型進行訓練。若將此值設定為 1,則系統會載入具備對應架構的預先訓練模型,以進行訓練。否則,網路皆是從頭開始訓練。

選用

有效值:0 或 1

預設:1

weight_decay

sgdrmsprop 的權重衰減係數。若是其他最佳化工具則忽略。

選用

有效值:浮點數 (0, 1)

預設:0.0005