

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

# 序列對序列超參數
<a name="seq-2-seq-hyperparameters"></a>

下表列出使用 Amazon SageMaker AI 序列對序列 (seq2seq) 演算法進行訓練時可設定的超參數。


| 參數名稱 | 說明 | 
| --- | --- | 
| batch\_size | 梯度下降的最低批次大小。<br />**選用**<br />有效值：正整數<br />預設值：64 | 
| beam\_size | 光束搜尋的光速長度。用於訓練期間以運算 `bleu`，並用於推論期間。<br />**選用**<br />有效值：正整數<br />預設值：5 | 
| bleu\_sample\_size | 從驗證資料集挑選的執行個體數量，用來在訓練期間解碼並運算 `bleu` 分數。設為 -1 來使用完整的驗證集 (若 `bleu` 已選擇為 `optimized_metric`)。<br />**選用**<br />有效值：整數<br />預設值：0 | 
| bucket\_width | 傳回 (來源、目標) 儲存貯體高達 (`max_seq_len_source`、`max_seq_len_target`)。資料較長的端使用 `bucket_width` 步驟，而較短端則使用根據平均目標/來源長度比例來縮小的步驟。如果一端較另一端較早達到其最高長度，在該端上的額外儲存貯體寬度會固定為 `max_len` 端。<br />**選用**<br />有效值：正整數<br />預設值：10 | 
| bucketing\_enabled | 設為 `false` 以停用值區、展開為最高長度。<br />**選用**<br />有效值：`true` 或 `false`<br />預設值：`true` | 
| checkpoint\_frequency\_num\_batches | 檢查點並評估每 x 批次。此檢查點的超參數會傳遞至 SageMaker AI 的 seq2seq 演算法，提前停止並擷取最佳模型。演算法的檢查點會在演算法的訓練容器中本機執行，而且與 SageMaker AI 檢查點不相容。演算法會暫時將檢查點存放到本機路徑，並在訓練任務停止後，將最佳模型成品存放到 S3 中的模型輸出路徑。<br />**選用**<br />有效值：正整數<br />預設值：1000 | 
| checkpoint\_threshold | 允許最大檢查點數量模型在訓練停止前不會在驗證資料集中的 `optimized_metric` 提升。此檢查點的超參數會傳遞至 SageMaker AI 的 seq2seq 演算法，提前停止並擷取最佳模型。演算法的檢查點會在演算法的訓練容器中本機執行，而且與 SageMaker AI 檢查點不相容。演算法會暫時將檢查點存放到本機路徑，並在訓練任務停止後，將最佳模型成品存放到 S3 中的模型輸出路徑。<br />**選用**<br />有效值：正整數<br />預設值：3 | 
| clip\_gradient | 剪裁絕對梯度值大於此。設定為負以停用。<br />**選用**<br />有效值：浮點數<br />預設值：1 | 
| cnn\_activation\_type | 要使用的 `cnn` 啟用類型。<br />**選用**<br />有效值：字串。下列其中一項：`glu`、`relu`、`softrelu`、`sigmoid` 或 `tanh`。<br />預設值：`glu` | 
| cnn\_hidden\_dropout | 卷積層之間的退出機率。<br />**選用**<br />有效值：浮點數。範圍在 [0,1] 之間。<br />預設值：0 | 
| cnn\_kernel\_width\_decoder | `cnn` 解碼器的核心寬度。<br />**選用**<br />有效值：正整數<br />預設值：5 | 
| cnn\_kernel\_width\_encoder | `cnn` 編碼器的核心寬度。<br />**選用**<br />有效值：正整數<br />預設值：3 | 
| cnn\_num\_hidden | 用於編碼器與解碼器的 `cnn` 隱藏單位數量。<br />**選用**<br />有效值：正整數<br />預設值：512 | 
| decoder\_type | 解碼器類型。<br />**選用**<br />有效值：字串。`rnn` 或 `cnn`。<br />預設值：*rnn* | 
| embed\_dropout\_source | 來源端內嵌的退出機率。<br />**選用**<br />有效值：浮點數。範圍在 [0,1] 之間。<br />預設值：0 | 
| embed\_dropout\_target | 目標端內嵌的退出機率。<br />**選用**<br />有效值：浮點數。範圍在 [0,1] 之間。<br />預設值：0 | 
| encoder\_type | 編碼器類型。`rnn` 架構是以 Bahdanau 等人的焦點機制為基礎，*cnn* 架構則是以 Gehring 等人為基礎。<br />**選用**<br />有效值：字串。`rnn` 或 `cnn`。<br />預設值：`rnn` | 
| fixed\_rate\_lr\_half\_life | 考量用於 `fixed_rate_`\* 排程工具的檢查點數量之學習速率半生命週期。<br />**選用**<br />有效值：正整數<br />預設值：10 | 
| learning\_rate | 初始學習率。<br />**選用**<br />有效值：浮點數<br />預設值：0.0003 | 
| loss\_type | 訓練的損失函式。<br />**選用**<br />有效值：字串。`cross-entropy`<br />預設值：`cross-entropy` | 
| lr\_scheduler\_type | 學習率排程器類型。`plateau_reduce` 表示每當 `validation_accuracy` 上的 `optimized_metric` 上升時便減少學習率。`inv_t` 則是反向時間衰減。`learning_rate`/(1\+`decay_rate`\*t)<br />**選用**<br />有效值：字串。`plateau_reduce`、`fixed_rate_inv_t` 或 `fixed_rate_inv_sqrt_t` 其中之一。<br />預設值：`plateau_reduce` | 
| max\_num\_batches | 更新數/要處理的批次數上限。-1 表示無限次。<br />**選用**<br />有效值：整數<br />預設值：-1 | 
| max\_num\_epochs | 擬合停止前透過訓練資料傳遞的最大 epoch 數量。若此參數傳遞後，即使驗證精確度未提升，訓練也將持續直到達到此 epoch 數量。如果未傳遞則忽略。<br />**選用**<br />有效值：正整數，且小於或等於 max\_num\_epochs。<br />預設值：無 | 
| max\_seq\_len\_source | 來源序列長度的最大長度。超過此長度的序列將會截斷為此長度。<br />**選用**<br />有效值：正整數<br />預設值：100 | 
| max\_seq\_len\_target | 目標序列長度的最大長度。超過此長度的序列將會截斷為此長度。<br />**選用**<br />有效值：正整數<br />預設值：100 | 
| min\_num\_epochs | 在訓練透過 `early_stopping` 條件停止前，應執行的 epoch 最低數量。<br />**選用**<br />有效值：正整數<br />預設值：0 | 
| momentum | 用於 `sgd` 的動力常數。若您使用 `adam` 或 `rmsprop`，請不要傳遞此參數。<br />**選用**<br />有效值：浮點數<br />預設值：無 | 
| num\_embed\_source | 來源符記的內嵌大小。<br />**選用**<br />有效值：正整數<br />預設值：512 | 
| num\_embed\_target | 目標符記的內嵌大小。<br />**選用**<br />有效值：正整數<br />預設值：512 | 
| num\_layers\_decoder | 解碼器 *rnn* 或 *cnn* 的層數。<br />**選用**<br />有效值：正整數<br />預設值：1 | 
| num\_layers\_encoder | 編碼器 `rnn` 或 `cnn` 的層數。<br />**選用**<br />有效值：正整數<br />預設值：1 | 
| optimized\_metric | 最佳化提早停止的指標。<br />**選用**<br />有效值：字串。`perplexity`、`accuracy` 或 `bleu` 其中之一。<br />預設值：`perplexity` | 
| optimizer\_type | 選出最佳化器。<br />**選用**<br />有效值：字串。`adam`、`sgd` 或 `rmsprop` 其中之一。<br />預設值：`adam` | 
| plateau\_reduce\_lr\_factor | 與學習速率相乘的因素 (適用於 `plateau_reduce`)。<br />**選用**<br />有效值：浮點數<br />預設值：0.5 | 
| plateau\_reduce\_lr\_threshold | 對於 `plateau_reduce` 排程工具，若 `optimized_metric` 未改善許多檢查點則將學習速率與降低因素相乘。<br />**選用**<br />有效值：正整數<br />預設值：3 | 
| rnn\_attention\_in\_upper\_layers | 傳遞焦點至 *rnn* 的較上層，像是 Google NMT 論文。只會在使用超過一層時使用。<br />**選用**<br />有效值：布林值 (`true` 或 `false`)<br />預設值：`true` | 
| rnn\_attention\_num\_hidden | 焦點層的隱藏單位數量。預設為 `rnn_num_hidden`。<br />**選用**<br />有效值：正整數<br />預設值：`rnn_num_hidden` | 
| rnn\_attention\_type | 編碼器的焦點模型。`mlp` 表示串連，bilinear (雙線性) 則表示 Luong 等人論文的一般情況。<br />**選用**<br />有效值：字串。`dot`、`fixed`、`mlp` 或 `bilinear` 中的其中一項。<br />預設值：`mlp` | 
| rnn\_cell\_type | `rnn` 架構的特定類型。<br />**選用**<br />有效值：字串。`lstm` 或 `gru`。<br />預設值：`lstm` | 
| rnn\_decoder\_state\_init | 如何從編碼器初始化 `rnn` 解碼器狀態。<br />**選用**<br />有效值：字串。`last`、`avg` 或 `zero` 其中之一。<br />預設值：`last` | 
| rnn\_first\_residual\_layer | 第一個 *rnn* 層有剩餘連線，僅在編碼器或解碼器中的層數大於 1 時適用。<br />**選用**<br />有效值：正整數<br />預設值：2 | 
| rnn\_num\_hidden | 用於編碼器與解碼器的 *rnn* 隱藏單位數量。這必須是 2 的倍數，因為演算法預設使用雙向長短期記憶 (LSTM)。<br />**選用**<br />有效值：正整數，偶數<br />預設值：1024 | 
| rnn\_residual\_connections | 新增剩餘連線到堆疊的 *rnn*。層級數量應大於 1。<br />**選用**<br />有效值：布林值 (`true` 或 `false`)<br />預設值：`false` | 
| rnn\_decoder\_hidden\_dropout | 結合解碼器中含有 *rnn* 內容隱藏狀態的隱藏狀態退出機率。<br />**選用**<br />有效值：浮點數。範圍在 [0,1] 之間。<br />預設值：0 | 
| training\_metric | 追蹤在驗證資料上的訓練之指標。<br />**選用**<br />有效值：字串。`perplexity` 或 `accuracy`。<br />預設值：`perplexity` | 
| weight\_decay | 重量衰減不變。<br />**選用**<br />有效值：浮點數<br />預設值：0 | 
| weight\_init\_scale | 加權初始化尺度 (適用於 `uniform` 和 `xavier` 初始化)。<br />**選用**<br />有效值：浮點數<br />預設值：2.34 | 
| weight\_init\_type | 重量初始化的類型。<br />**選用**<br />有效值：字串。`uniform` 或 `xavier`。<br />預設值：`xavier` | 
| xavier\_factor\_type | Xavier 因素類型。<br />**選用**<br />有效值：字串。`in`、`out` 或 `avg` 其中之一。<br />預設值：`in` | 