

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

# 影像分類超參數
<a name="IC-Hyperparameter"></a>

超參數是在機器學習模型開始學習之前設定的參數。Amazon SageMaker AI 內建的影像分類演算法可支援下列超參數。如需影像分類超參數調校的資訊，請參閱[調校影像分類模型](IC-tuning.md)。


| 參數名稱 | Description | 
| --- | --- | 
| num\$1classes | 輸出類別的數量。此參數會定義網路輸出的維度，且通常會以資料集中的類別數量來設定該維度。 除了multi-class 分類外，也支援 multi-label 分類。如需如何利用擴增資訊清單檔案使用 multi-label 分類的詳細資料，請參閱[影像分類演算法的輸入/輸出介面](image-classification.md#IC-inputoutput)。 **必要** 有效值：正整數  | 
| num\$1training\$1samples | 輸入資料集中的訓練範例數量。 如果此值與訓練集中的範例數量不相符，則表示 `lr_scheduler_step` 參數未定義行為，可能會影響分散式訓練的準確度。 **必要** 有效值：正整數  | 
| augmentation\$1type |  資料增強類型。您可以採用多種指定方式來增強輸入影像，如下所述。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/IC-Hyperparameter.html) **選用**  有效值：`crop`、`crop_color` 或 `crop_color_transform`。 預設值：沒有預設值  | 
| beta\$11 | `adam` 的 beta1，這是第一刻估計的指數衰減率。 **選用**  有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.9 | 
| beta\$12 | `adam` 的 beta2，這是第二刻估計的指數衰減率。 **選用**  有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.999 | 
| checkpoint\$1frequency | 存放模型參數的週期 (以 epoch 為單位)。 請注意，所有檢查點檔案都儲存為最終模型檔案 “model.tar.gz” 的一部分，並上傳到 S3 中指定的模型位置。根據訓練期間儲存的檢查點數目，這會成比例地增加模型檔案的大小。 **選用** 有效值：正整數，且不得大於 `epochs`。 預設值：無預設值 (在有最佳驗證準確度的 epoch 上儲存檢查點。) | 
| early\$1stopping | `True` 以在訓練期間使用提前停止的邏輯。`False` 則不使用它。 **選用** 有效值：`True` 或 `False` 預設值：`False` | 
| early\$1stopping\$1min\$1epochs | 調用提前停止邏輯前，應執行的 epoch 數量下限。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：正整數 預設值：10 | 
| early\$1stopping\$1patience | 若未在相關指標中進行改善，結束訓練前等待的 epoch 數量。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：正整數 預設值：5 | 
| early\$1stopping\$1tolerance | 測量準確度驗證指標中改善的相對容錯度。如準確度中的改善除以過去最佳準確度的比率小於所設定的 `early_stopping_tolerance` 值，提前停止會將其視為無改善。只有在 `early_stopping` = `True` 時才會使用。 **選用** 有效值：0 ≤ 浮點數 ≤ 1 預設值：0.0 | 
| epochs | 要訓練的 epoch 數量。 **選用** 有效值：正整數 預設值：30 | 
| eps | `adam` 和 `rmsprop` 的 epsilon。該參數通常會設定為較小值，避免要將該值除以 0。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：1e-8 | 
| gamma | `rmsprop` 的 gamma 值，即平方梯度的移動平均衰減因子。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.9 | 
| image\$1shape | 輸入影像的維度，其與網路的輸入層大小相同。該參數的格式定義為 '`num_channels`，高度，寬度'。網路可以處理各種輸入維度，因此影像維度可以輸入任何值。然而，若採用較大的影像維度 ，記憶體容量可能會因而受限。預先訓練的模型只能使用 224 x 224 的固定影像大小。影像分類所使用的影像維度一般為 '3,224,224'。與 ImageNet 資料集類似。 針對訓練，如果任何輸入影像在任一維度中都小於此參數，則訓練失敗。如果影像大於此參數，則會裁切影像的一部分，而裁切的區域由此參數指定。如果已設定超參數 `augmentation_type`，則會採取隨機裁切；否則，會裁切中央區域。 推論時，輸入影像會調整到訓練期間所使用的 `image_shape` 影像大小。不會保留長寬比，且不會裁切影像。 **選用** 有效值：字串 預設值：'3,224,224' | 
| kv\$1store |  分散式訓練期間的權重更新同步模式。各機器能採用同步或非同步的方式來更新權重。同步更新的準確度通常會高於非同步更新，但執行速度較慢。請參閱 MXNet 中的分散式訓練，進一步了解詳細資訊。 此參數不適用於單部機器訓練。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/IC-Hyperparameter.html) **選用** 有效值：`dist_sync` 或 `dist_async` 預設值：沒有預設值  | 
| learning\$1rate | 初始學習率。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.1 | 
| lr\$1scheduler\$1factor | 該比率會搭配使用 `lr_scheduler_step` 參數以降低學習率，其定義為：`lr_new` = `lr_old` \$1 `lr_scheduler_factor`。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.1 | 
| lr\$1scheduler\$1step | 要降低學習率的 epoch。如 `lr_scheduler_factor` 參數所述，系統會依這些 epoch 中的 `lr_scheduler_factor` 來降低學習率。例如，假設該值的設定為 “10, 20”，則系統會依第 10 個 epoch 後的 `lr_scheduler_factor` 降低學習率，並再次依第 20 個 epoch 後的 `lr_scheduler_factor` 降低學習率。而 epoch 會以 “,” 分隔。 **選用** 有效值：字串 預設值：沒有預設值 | 
| mini\$1batch\$1size | 訓練的批次大小。在單部機器的多 GPU 設定中，每個 GPU 可以處理的訓練範例數為：`mini_batch_size`/num\$1gpu。至於 dist\$1sync 模式中的多部機器訓練，實際批次大小則為：`mini_batch_size` \$1 機器數量。請參閱 MXNet 文件，進一步了解詳細資訊。 **選用** 有效值：正整數 預設值：32 | 
| momentum | `sgd` 和 `nag` 的動力，其他最佳化工具會忽略此項。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.9 | 
| multi\$1label |  用於多標籤分類的標記，其中每個樣本皆可以指派多個標籤。所有記錄類別間的平均準確度。 **選用** 有效值：0 或 1 預設值：0  | 
| num\$1layers | 網路的層級數。如果資料的影像尺寸較大 (如 224 x 224 - 類似 ImageNet)，建議您選取 [18, 34, 50, 101, 152, 200] 組的層級數。如果資料的影像尺寸較小 (如 28 x 28 - 類似 CIFAR)，則建議您選取 [20, 32, 44, 56, 110] 組的層級數。每組的層級數會以 ResNet 白皮書為準則。在遷移學習中，層級數會定義基本網路的架構，因此僅能選取 [18, 34, 50, 101, 152, 200] 組的層級數。 **選用** 有效值：[18, 34, 50, 101, 152, 200] 或 [20, 32, 44, 56, 110] 中的正整數 預設值：152 | 
| optimizer | 最佳化工具類型。如需最佳化工具參數的詳細資訊，請參閱 MXNet 的 API。 **選用** 有效值：`sgd`、`adam`、`rmsprop` 或 `nag` 的其中之一。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/IC-Hyperparameter.html) 預設值：`sgd` | 
| precision\$1dtype | 用於訓練的加權精確度。演算法可以針對加權使用單精確度 (`float32`) 或半精確度 (`float16`)。針對加權使用半精確度可減少記憶體的使用。 **選用** 有效值：`float32` 或 `float16` 預設值：`float32` | 
| resize | 調整影像大小以進行訓練後，影像最短邊的像素數目。若未設定此參數，則系統不會重新調整訓練資料的大小。該參數應大於 `image_shape` 的寬度和高度元件，以免訓練失敗。 使用影像內容類型時**需要** 使用 RecordIO 內容類型時**可選用** 有效值：正整數 預設值：沒有預設值  | 
| top\$1k | 在訓練期間報告 top-k 準確度。由於 top-1 訓練準確度與回報的定期訓練準確度相同，此參數必須大於 1。 **選用** 有效值：正整數，且必須大於 1。 預設值：沒有預設值 | 
| use\$1pretrained\$1model | 指出是否要使用預先訓練模型進行訓練的標記。若將此值設定為 1，則系統會載入具備對應層級數的預先訓練模型，藉此進行訓練。且唯有頂端的 FC 層會重新初始化為隨機權重。否則，網路皆是從頭開始訓練。 **選用** 有效值：0 或 1 預設值：0 | 
| use\$1weighted\$1loss |  指出針對多標籤分類 (只有在 `multi_label` = 1 時才會使用) 使用加權交叉熵遺失的標記，其中會根據類別的分布計算加權。 **選用** 有效值：0 或 1 預設值：0  | 
| weight\$1decay | `sgd` 與 `nag` 的權重衰減係數，其他最佳化工具會予以忽略。 **選用** 有效值：浮點數。範圍在 [0, 1] 之間。 預設值：0.0001 | 