

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

# 物件偵測超參數
<a name="object-detection-api-config"></a>

在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 請求中，請指定您想要使用的訓練演算法。您也可以指定演算法特定的超參數，用來協助預估訓練資料集的模型參數。下表列出 Amazon SageMaker AI 所提供用於物件偵測演算法訓練的超參數。如需物件訓練運作方式的詳細資訊，請參閱[物件偵測的運作方式](algo-object-detection-tech-notes.md)。


| 參數名稱 | Description | 
| --- | --- | 
| num\$1classes |  輸出類別的數量。此參數會定義網路輸出的維度，且通常會以資料集中的類別數量來設定該維度。 **必要** 有效值：正整數  | 
| num\$1training\$1samples |  輸入資料集中的訓練範例數量。  如果此值與訓練集中的範例數量不相符，則表示 `lr_scheduler_step` 參數未定義行為，且可能會影響分散式訓練的準確度。  **必要** 有效值：正整數  | 
| base\$1network |  可使用的基礎網路架構。 **選用** 有效值：'vgg-16' 或 'resnet-50' 預設值：'vgg-16'  | 
| early\$1stopping |  `True` 以在訓練期間使用提前停止的邏輯。`False` 則不使用它。 **選用** 有效值：`True` 或 `False` 預設值：`False`  | 
| early\$1stopping\$1min\$1epochs |  調用提前停止邏輯前，應執行的 epoch 數量下限。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：正整數 預設值：10  | 
| early\$1stopping\$1patience |  若未在相關指標中進行改善，結束訓練前等待的 epoch 數量，如 `early_stopping_tolerance` 超參數所定義。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：正整數 預設值：5  | 
| early\$1stopping\$1tolerance |  若要避免提早停止，`validation:mAP` (平均精度均值 (mAP)) 中的相關改進需要超過的公差值。如果 mAP 中的變更率除以過去最佳 mAP 的結果小於 `early_stopping_tolerance` 值，則提早停止會將其視為毫無改進。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：0 ≤ 浮點數 ≤ 1 預設值：0.0  | 
| image\$1shape |  輸入影像的影像大小。我們會使用此大小將輸入影像重新調整為方形影像。我們建議您使用 300 和 512，以獲得更好的效能。 **選用** 有效值：正整數 ≥300 預設：300  | 
| epochs |  訓練 epoch 的數量。 **選用** 有效值：正整數 預設：30  | 
| freeze\$1layer\$1pattern |  可在基礎網路中凍結層的正規表示式 (regex)。例如，假設我們設定 `freeze_layer_pattern` = `"^(conv1_\|conv2_).*"`，則會凍結任何名稱包含 `"conv1_"` 或 `"conv2_"` 的層，這表示訓練時不會更新這些層的權重。您可以在網路符號檔案 [vgg16-symbol.json](http://data.mxnet.io/models/imagenet/vgg/vgg16-symbol.json ) 和 [resnet-50-symbol.json](http://data.mxnet.io/models/imagenet/resnet/50-layers/resnet-50-symbol.json) 中找到層名稱。凍結層表示不能進一步修改其權重。這可大幅縮短訓練時間，但會犧牲適度的準確率損失。此技術通常在不需要保留基礎網路中較低層的情況下，用於傳輸學習。 **選用** 有效值：字串 預設：不凍結任何層。  | 
| kv\$1store |  用於分散式訓練的權重更新同步模式。各機器能採用同步或非同步的方式來更新權重。同步更新的準確度通常會高於非同步更新，但執行速度較慢。請參閱 MXNet 的[分散式訓練](https://mxnet.apache.org/api/faq/distributed_training)教學課程，以了解詳細資訊。  此參數不適用於單部機器訓練。  **選用** 有效值：`'dist_sync'` 或 `'dist_async'` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/object-detection-api-config.html) 預設：-  | 
| label\$1width |  用來進行跨訓練和驗證資料同步的強制填補標籤寬度。例如，如果資料中的一個影像包含最多 10 個物件，且每個物件註釋指定了 5 個數字 [class\$1id, left, top, width, height]，則 `label_width` 不得小於 (10\$15 \$1 標題資訊長度)。標題資訊長度通常是 2。我們建議您針對訓練使用稍微大於 `label_width` 的值，例如此範例的 60。 **選用** 有效值：足以容納資料中最大註釋資訊長度的正整數。 預設：350  | 
| learning\$1rate |  初始學習率。 **選用** 有效值：浮點數 (0, 1] 預設：0.001  | 
| lr\$1scheduler\$1factor |  降低學習率的比率。搭配使用定義為 `lr_new` = `lr_old` \$1 `lr_scheduler_factor` 的 `lr_scheduler_step` 參數。 **選用** 有效值：浮點數 (0, 1) 預設：0.1  | 
| lr\$1scheduler\$1step |  要降低學習率的 epoch。`lr_scheduler_factor` 會降低提列於逗號分隔字串 "epoch1, epoch2, ..." 中的 epoch 學習速率。例如，假設該值的設定為 "10, 20" 且 `lr_scheduler_factor` 設為 1/2，則系統會將第 10 個 epoch 後的學習率減半，並再將第 20 個 epoch 後的學習率減半。 **選用** 有效值：字串 預設：空白字串  | 
| mini\$1batch\$1size |  訓練的批次大小。在單部機器的多 GPU 設定中，每個 GPU 可以處理的訓練範例數為：`mini_batch_size`/`num_gpu`。若是 `dist_sync` 模式中的多部機器訓練，實際批次大小則為：`mini_batch_size`\$1機器數量。通常，`mini_batch_size` 越大訓練更快，但可能會導致記憶體不足問題。記憶體使用量與 `mini_batch_size`、`image_shape` 和 `base_network` 架構相關。例如，在單一 p3.2xlarge 執行個體中，不會導致記憶體不足錯誤的最大 `mini_batch_size` 為 32，且 base\$1network 設為 "resnet-50" 而 `image_shape` 為 300。使用相同的執行個體時，您可以使用 64 的 `mini_batch_size`、`vgg-16` 的基礎網路和 300 的 `image_shape`。 **選用** 有效值：正整數 預設：32  | 
| momentum |  `sgd` 的動量。若是其他最佳化工具則忽略。 **選用** 有效值：浮點數 (0, 1] 預設：0.9  | 
| nms\$1threshold |  非最大的抑制閾值。 **選用** 有效值：浮點數 (0, 1] 預設：0.45  | 
| optimizer |  最佳化工具類型。如需最佳化工具值的詳細資訊，請參閱 [MXNet 的 API](https://mxnet.apache.org/api/python/docs/api/)。 **選用** 有效值：['sgd', 'adam', 'rmsprop', 'adadelta'] 預設：'sgd'  | 
| overlap\$1threshold |  評估重疊閾值。 **選用** 有效值：浮點數 (0, 1] 預設：0.5  | 
| use\$1pretrained\$1model |  指出是否要使用預先訓練模型進行訓練。若將此值設定為 1，則系統會載入具備對應架構的預先訓練模型，以進行訓練。否則，網路皆是從頭開始訓練。 **選用** 有效值：0 或 1 預設：1  | 
| weight\$1decay |  `sgd` 和 `rmsprop` 的權重衰減係數。若是其他最佳化工具則忽略。 **選用** 有效值：浮點數 (0, 1) 預設：0.0005  | 