

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Sequence-to-Sequence 超参数
<a name="seq-2-seq-hyperparameters"></a>

下表列出了在使用 Amazon A SageMaker I Sequence-to-Sequence (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`而较短的一边使用按平均 target/source 长度比率缩小的步长。如果一侧的最大长度超过另一侧，则该侧额外存储桶的宽度固定在 `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 |  updates/batches 要处理的最大数量。-1 表示无限。<br />**可选**<br />有效值：整数<br />默认值：-1 | 
| max\_num\_epochs | 在停止调整之前通过训练数据传递的最大纪元数。如果传递此参数，则即使验证准确性没有提高，训练仍将持续到此数量纪元。如果不传递，则会忽略。<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` 条件停止之前，训练必须运行的最少纪元数。<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` 是指 concat，bilinear 是指 general（源自 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` | 