mcorrect the format of API files

This commit is contained in:
zhangyi 2022-07-18 15:22:30 +08:00
parent fb7c04f5db
commit 56226400a7
29 changed files with 470 additions and 567 deletions

View File

@ -7,34 +7,31 @@ mindspore.nn.probability.bnn_layers.ConvReparam
更多相关信息可以查阅 `自动编码变分贝叶斯 <https://arxiv.org/abs/1312.6114>`_ 相关论文。
**参数:**
参数:
- **in_channels** (int) - 输入的channels :math:`C_{in}`
- **out_channels** (int) - 输出的channels :math:`C_{out}`
- **kernel_size** (Union[int, tuple[int]]) - 数据类型是 int 或2个 int 的元组。内核大小指定二维卷积窗口的高度和宽度。若为一个整数则高度和宽度均为该值,若为元组则两个值分别为高度和宽度。
- **stride** (Union[int, tuple[int]]) - 内核移动的距离若是一个整数表示则移动的高度和宽度都是步幅或者两个整数的元组分别表示移动的高度和宽度。默认值1。
- **pad_mode** (str) - 指定填充模式。可选值是"same"、"valid"和"pad"。默认值:"same"。
- **in_channels** (int) - 输入的channels :math:`C_{in}`
- **out_channels** (int) 输出的channels :math:`C_{out}`
- **kernel_size** (Union[int, tuple[int]]) - 数据类型是 int 或2个 int 的元组。内核大小指定二维卷积窗口的高度和宽度。若为一个整数则高度和宽度均为该值,若为元组则两个值分别为高度和宽度。
- **stride** (Union[int, tuple[int]]) 内核移动的距离若是一个整数表示则移动的高度和宽度都是步幅或者两个整数的元组分别表示移动的高度和宽度。默认值1。
- **pad_mode** (str) 指定填充模式。可选值是"same"、"valid"和"pad"。默认值:"same"。
- same采用补全方式。输出高度和宽度将与输入相同。将在水平和垂直方向上计算填充的总数并尽可能均匀地分布在顶部和底部、左侧和右侧。否则最后的额外填充将从底部和右侧完成。如果设置了此模式`padding` 必须为0。
- same采用补全方式。输出高度和宽度将与输入相同。将在水平和垂直方向上计算填充的总数并尽可能均匀地分布在顶部和底部、左侧和右侧。否则最后的额外填充将从底部和右侧完成。如果设置了此模式,则 `padding` 必须为0。
- valid采用丢弃的方式。输出的可能最大高度和宽度将不带 padding 返回。多余的像素将被丢弃。如果设置了此模式,则 `padding` 必须为0。
- valid采用丢弃的方式。输出的可能最大高度和宽度将不带 padding 返回。多余的像素将被丢弃。如果设置了此模式,则 `padding` 必须为0。
- pad输入两侧的隐式 padding。 `padding` 的值将被填充到输入 Tensor 边界。 `padding` 必须大于或等于0。
- pad输入两侧的隐式 padding。 `padding` 的值将被填充到输入 Tensor 边界。 `padding` 必须大于或等于0。
- **padding** (Union[int, tuple[int]]) 输入两侧的隐式 padding 。默认值0。
- **dilation** (Union[int, tuple[int]]) 数据类型是 int 或2个 int 的元组。该参数指定空洞卷积的空洞率。如果设置为k>1 将有k1每个采样位置跳过的像素。它的值必须大于或等于1并受输入的高度和宽度限制。默认值1。
- **group** (int) 将过滤器拆分为组,`in_channels``out_channels` 必须能被组数整除。默认值1。
- **has_bias** (bool) 指定层是否使用偏置向量。默认值false。
- **weight_prior_fn** (Cell) 权重的先验分布。它必须返回一个 MindSpore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) 采样权重的后验分布。它必须是一个函数句柄,它返回一个 MindSpore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) 偏置向量的先验分布。它必须返回一个 MindSpore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 MindSpore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **padding** (Union[int, tuple[int]]) - 输入两侧的隐式 padding 。默认值0。
- **dilation** (Union[int, tuple[int]]) - 数据类型是 int 或2个 int 的元组。该参数指定空洞卷积的空洞率。如果设置为k>1将有k1每个采样位置跳过的像素。它的值必须大于或等于1并受输入的高度和宽度限制。默认值1。
- **group** (int) - 将过滤器拆分为组,`in_channels``out_channels` 必须能被组数整除。默认值1。
- **has_bias** (bool) - 指定层是否使用偏置向量。默认值false。
- **weight_prior_fn** (Cell) - 权重的先验分布。它必须返回一个 MindSpore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) - 采样权重的后验分布。它必须是一个函数句柄,它返回一个 MindSpore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) - 偏置向量的先验分布。它必须返回一个 MindSpore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) - 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 MindSpore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
**输入:**
输入:
- **input** (Tensor) - 输入 Tensor 的 shape 为 :math:`(N, C_{in})`
- **input** (Tensor) - 输入 Tensor 的 shape 为 :math:`(N, C_{in})`
**输出:**
Tensor输出张量的形状是 :math:`(N, C_{out}, H_{out}, W_{out})`
输出:
Tensor输出张量的形状是 :math:`(N, C_{out}, H_{out}, W_{out})`

View File

@ -14,21 +14,18 @@ mindspore.nn.probability.bnn_layers.DenseLocalReparam
此公式中activation 为激活函数(若 `activation` 参数传入是与创建层的输入具有相同数据类型的权重矩阵。weight 是从权重的后验分布采样的权重矩阵。bias 是与由层创建的输入具有相同数据类型的偏置向量(仅当 `has_bias` 为 True 时),从 bias 的后验分布中采样。
**参数:**
参数:
- **in_channels** (int) - 输入通道的数量。
- **out_channels** (int) - 输出通道的数量。
- **activation** (str, Cell) - 应用于输出层的正则化函数。激活的类型可以是 string例如'relu')或 Cell例如nn.ReLU())。注意,如果激活的类型是 Cell则必须事先实例化。默认值None。
- **has_bias** (bool) - 指定层是否使用偏置向量。默认值True。
- **weight_prior_fn** (Cell) - 它必须返回一个 mindspore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) - 采样权重的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) - 偏置向量的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) - 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **in_channels** (int) 输入通道的数量。
- **out_channels** (int) - 输出通道的数量。
- **activation** (str, Cell) 应用于输出层的正则化函数。激活的类型可以是 string例如'relu')或 Cell例如nn.ReLU())。注意,如果激活的类型是 Cell则必须事先实例化。默认值None。
- **has_bias** (bool) - 指定层是否使用偏置向量。默认值True。
- **weight_prior_fn** (Cell) - 它必须返回一个 mindspore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) 采样权重的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) 偏置向量的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
输入:
- **input** (Tensor) - `input` 的 shape 是 :math:`(N, in\_channels)`
**输入:**
- **input** (Tensor) - `input` 的 shape 是 :math:`(N, in\_channels)`
**输出:**
Tensor`output` 的 shape 是 :math:`(N, out\_channels)`
输出:
Tensor`output` 的 shape 是 :math:`(N, out\_channels)`

View File

@ -15,21 +15,18 @@ mindspore.nn.probability.bnn_layers.DenseReparam
此公式中activation 为激活函数(若 `activation` 参数传入是与创建层的输入具有相同数据类型的权重矩阵。weight 是从权重的后验分布采样的权重矩阵。bias 是与由层创建的输入具有相同数据类型的偏置向量(仅当 `has_bias` 为 True 时),从 bias 的后验分布中采样。
**参数:**
参数:
- **in_channels** (int) - 输入通道的数量。
- **out_channels** (int) - 输出通道的数量。
- **activation** (str, Cell) - 应用于层输出的正则化函数。激活的类型可以是 str例如'relu')或 Cell例如nn.ReLU())。注意,如果激活的类型是 Cell则必须事先实例化。默认值None。
- **has_bias** (bool) - 指定层是否使用偏置向量。默认值True。
- **weight_prior_fn** (Cell) - 权重的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) - 采样权重的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) - 偏置向量的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) - 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **in_channels** (int) 输入通道的数量。
- **out_channels** (int) 输出通道的数量。
- **activation** (str, Cell) 应用于层输出的正则化函数。激活的类型可以是 str例如'relu')或 Cell例如nn.ReLU())。注意,如果激活的类型是 Cell则必须事先实例化。默认值None。
- **has_bias** (bool) - 指定层是否使用偏置向量。默认值True。
- **weight_prior_fn** (Cell) - 权重的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior。创建标准正态分布的一个实例。当前版本仅支持正态分布。
- **weight_posterior_fn** (function) - 采样权重的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
- **bias_prior_fn** (Cell) - 偏置向量的先验分布。它必须返回一个 mindspore 分布实例。默认值NormalPrior创建标准正态分布的实例。当前版本仅支持正态分布。
- **bias_posterior_fn** (function) 采样偏差向量的后验分布。它必须是一个函数句柄,它返回一个 mindspore 分布实例。默认值normal_post_fn。当前版本仅支持正态分布。
输入:
- **input** (Tensor) - `input` 的 shape 是 :math:`(N, in\_channels)`
**输入:**
- **input** (Tensor) - `input` 的 shape 是 :math:`(N, in\_channels)`
**输出:**
Tensor`output` 的 shape 是 :math:`(N, out\_channels)`
输出:
Tensor`output` 的 shape 是 :math:`(N, out\_channels)`

View File

@ -5,16 +5,14 @@ mindspore.nn.probability.bnn_layers.NormalPosterior
用可训练的参数构建正态分布。
**参数:**
参数:
- **name** (str) - 可训练参数的前置名。
- **shape** (list, tuple) - 均值和标准差的 shape。
- **dtype** (:class:`mindspore.dtype`) - 用于定义输出张量的数据类型参数。默认值mindspore.float32。
- **loc_mean** (int, float) - 初始化可训练参数的分布均值。默认值0。
- **loc_std** (int, float) - 初始化可训练参数的分布标准差。默认值0.1。
- **untransformed_scale_mean** (int, float) - 初始化可训练参数的分布均值。默认值:-5。
- **untransformed_scale_std** (int, float) - 初始化可训练参数的分布标准差。默认值0.1。
- **name** (str) 可训练参数的前置名。
- **shape** (list, tuple) 均值和标准差的 shape。
- **dtype** (:class:`mindspore.dtype`) - 用于定义输出张量的数据类型参数。默认值mindspore.float32。
- **loc_mean** (int, float) 初始化可训练参数的分布均值。默认值0。
- **loc_std** (int, float) - 初始化可训练参数的分布标准差。默认值0.1。
- **untransformed_scale_mean** (int, float) 初始化可训练参数的分布均值。默认值:-5。
- **untransformed_scale_std** (int, float) - 初始化可训练参数的分布标准差。默认值0.1。
**返回:**
Cell一种正态分布结果。
返回:
Cell一种正态分布结果。

View File

@ -5,12 +5,10 @@ mindspore.nn.probability.bnn_layers.NormalPrior
初始化均值 0 和标准差 0.1 的正态分布。
**参数:**
参数:
- **dtype** (:class:`mindspore.dtype`) - 用于定义输出 Tensor 的数据类型的参数。默认值mstype.float32。
- **mean** (int, float) - 正态分布的平均值。默认值0。
- **std** (int, float) - 正态分布的标准差。默认值0.1。
- **dtype** (:class:`mindspore.dtype`) 用于定义输出 Tensor 的数据类型的参数。默认值mstype.float32。
- **mean** (int, float) - 正态分布的平均值。默认值0。
- **std** (int, float) - 正态分布的标准差。默认值0.1。
**返回:**
Cell一种正态分布的结果。
返回:
Cell一种正态分布的结果。

View File

@ -5,27 +5,23 @@ mindspore.nn.probability.bnn_layers.WithBNNLossCell
为 BNN 生成一个合适的 WithLossCell用损失函数包装贝叶斯网络。
**参数:**
参数:
- **backbone** (Cell) - 目标网络。
- **loss_fn** (Cell) - 用于计算损失的损失函数。
- **dnn_factor** (int, float) - backbone 的损失系数由损失函数计算。默认值1。
- **bnn_factor** (int, float) - KL 损失系数,即贝叶斯层的 KL 散度。默认值1。
- **backbone** (Cell) - 目标网络。
- **loss_fn** (Cell) - 用于计算损失的损失函数。
- **dnn_factor** (int, float) backbone 的损失系数由损失函数计算。默认值1。
- **bnn_factor** (int, float) - KL 损失系数,即贝叶斯层的 KL 散度。默认值1。
输入:
- **data** (Tensor) - `data` 的 shape :math:`(N, \ldots)`
- **label** (Tensor) - `label` 的 shape :math:`(N, \ldots)`
**输入:**
- **data** (Tensor) - `data` 的 shape :math:`(N, \ldots)`
- **label** (Tensor) - `label` 的 shape :math:`(N, \ldots)`
**输出:**
Tensor任意 shape 的标量 Tensor。
输出:
Tensor任意 shape 的标量 Tensor。
.. py:method:: backbone_network
:property:
返回backbone_network。
**返回:**
Cellbackbone_network。
返回:
Cellbackbone_network。

View File

@ -9,46 +9,39 @@ mindspore.nn.probability.dpn.ConditionalVAE
.. note::
定义编码器和解码器时,编码器的输出 Tensor 和解码器的输入 Tensor 的 shape 必须是 :math:`(N, hidden\_size)`。潜在大小必须小于或等于隐藏大小。
**参数:**
参数:
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的隐藏大小。
- **latent_size** (int) - 潜在空间的大小。
- **num_classes** (int) - 类的数量。
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的隐藏大小。
- **latent_size** (int) - 潜在空间的大小。
- **num_classes** (int) - 类的数量。
输入:
- **input_x** (Tensor) - 输入 Tensor 的 shape 是 :math:`(N, C, H, W)`,与编码器的输入相同。
- **input_y** (Tensor) - 目标数据的 Tensorshape 为 :math:`(N,)`
**输入:**
- **input_x** (Tensor) - 输入 Tensor 的 shape 是 :math:`(N, C, H, W)`,与编码器的输入相同。
- **input_y** (Tensor) - 目标数据的 Tensorshape 为 :math:`(N,)`
**输出:**
- **output** (tuple) - tuple 包含 (recon_x(Tensor), x(Tensor), mu(Tensor), std(Tensor))。
输出:
- **output** (tuple) - tuple 包含 (recon_x(Tensor), x(Tensor), mu(Tensor), std(Tensor))。
.. py:method:: generate_sample(sample_y, generate_nums, shape)
从潜在空间中随机采样以生成样本。
**参数:**
参数:
- **sample_y** (Tensor) - 定义样本的标签。Tensor 的 shape (`generate_nums`, ) 和类型 mindspore.int32。
- **generate_nums** (int) - 要生成的样本数。
- **shape** (tuple) - 样例的 shape格式必须为 (`generate_nums`, C, H, W) 或 (-1, C, H, W)。
- **sample_y** (Tensor) - 定义样本的标签。 Tensor 的 shape (`generate_nums`, ) 和类型 mindspore.int32。
- **generate_nums** (int) - 要生成的样本数。
- **shape** (tuple) - 样例的 shape格式必须为 (`generate_nums`, C, H, W) 或 (-1, C, H, W)。
**返回:**
Tensor生成的样本。
返回:
Tensor生成的样本。
.. py:method:: reconstruct_sample(x, y)
从原始数据重建样本。
**参数:**
参数:
- **x** (Tensor) - 重构的输入 Tensorshape 为 (N, C, H, W)。
- **y** (Tensor) - 输入 Tensor 的 labelshape 为 (N, C, H, W)。
- **x** (Tensor) - 重构的输入 Tensorshape 为 (N, C, H, W)。
- **y** (Tensor) - 输入 Tensor 的 labelshape 为 (N, C, H, W)。
**返回:**
Tensor重建的样本。
返回:
Tensor重建的样本。

View File

@ -6,44 +6,37 @@ mindspore.nn.probability.dpn.VAE
变分自动编码器 (VAE)。
VAE 定义了一个生成模型Z从先验中采样然后由解码器用于重建X。有关更多详细信息请参阅 `自动编码变分贝叶斯 <https://arxiv.org/abs/1312.6114>`_
.. note:: 定义编码器和解码器时,编码器的输出 Tensor 和解码器的输入Tensor 的 shape 必须是 :math:`(N, hidden\_size)` 潜在大小必须小于或等于隐藏大小。
.. note:: 定义编码器和解码器时,编码器的输出 Tensor 和解码器的输入Tensor 的 shape 必须是 :math:`(N, hidden\_size)`。潜在大小必须小于或等于隐藏大小。
**参数:**
参数:
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的隐藏大小。
- **latent_size** (int) - 潜在空间的大小。
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的隐藏大小。
- **latent_size** (int) - 潜在空间的大小。
输入:
- **input** (Tensor) - 输入 Tensor 的 shape 是 :math:`(N, C, H, W)`,与编码器的输入相同。
**输入:**
- **input** (Tensor) - 输入 Tensor 的 shape 是 :math:`(N, C, H, W)`,与编码器的输入相同。
**输出:**
- **output** (Tuple) - recon_xTensorxTensormuTensorstdTensor
输出:
- **output** (Tuple) - recon_xTensorxTensormuTensorstdTensor
.. py:method:: generate_sample(generate_nums, shape)
从潜在空间中随机采样以生成样本。
**参数:**
参数:
- **generate_nums** (int) - 要生成的样本数。
- **shape** (tuple) - 样本的 shape它必须是 :math:`(generate_nums, C, H, W)`:math:`(-1, C, H, W)`
- **generate_nums** int- 要生成的样本数。
- **shape** tuple- 样本的 shape它必须是 :math:`(generate_nums, C, H, W)`:math:`(-1, C, H, W)`
**返回:**
Tensor生成的样本。
返回:
Tensor生成的样本。
.. py:method:: reconstruct_sample(x)
从原始数据重建样本。
**参数:**
参数:
- **x** (Tensor) - 要重构的输入 Tensorshape 为 :math:`(N, C, H, W)`
- **x** (Tensor) - 要重构的输入 Tensorshape 为 :math:`(N, C, H, W)`
**返回:**
Tensor重构的样本。
返回:
Tensor重构的样本。

View File

@ -8,18 +8,15 @@ mindspore.nn.probability.infer.ELBO
它使 ELBO 最大化,这是观测值 log p(x) 的边际概率的对数的下限。ELBO 等于负 KL 散度加上一个附加常数。更多详细信息,请参阅
`变分推理:统计学家评论 <https://arxiv.org/abs/1601.00670>`_
**参数:**
参数:
- **latent_prior** (str) - 潜在空间的先验分布。默认值Normal。
Normal潜在空间的先验分布是正态的。
- **output_prior** (str) - 输出数据的分布。默认值Normal。
Normal如果输出数据的分布是 Normal那么 reconstruction loss 就是 MSELoss。
- **latent_prior** str - 潜在空间的先验分布。默认值Normal。
Normal : 潜在空间的先验分布是正态的。
- **output_prior** str - 输出数据的分布。默认值Normal。
Normal : 如果输出数据的分布是 Normal那么 reconstruction loss 就是 MSELoss。
输入:
- **input_data** (Tuple) - (recon_x(Tensor), x(Tensor), mu(Tensor), std(Tensor))。
- **target_data** (Tensor) - 目标 Tensor 的 shape 是 :math:`(N,)`
**输入:**
- **input_data** Tuple- (recon_x(Tensor), x(Tensor), mu(Tensor), std(Tensor))。
- **target_data** Tensor- 目标 Tensor 的 shape 是 :math:`(N,)`
**输出:**
Tensor损失浮动张量。
输出:
Tensor损失浮动张量。

View File

@ -5,29 +5,25 @@ mindspore.nn.probability.infer.SVI
随机变分推断Stochastic Variational Inference
变分推断将推理问题转换为优化问题。隐藏变量上的一些分布由一组自由参数索引,这些参数经过优化,使分布成为最接近正确的后验分布。更多详细信息,请参阅
变分推断将推理问题转换为优化问题。隐藏变量上的一些分布由一组自由参数索引,这些参数经过优化使分布成为最接近正确的后验分布。更多详细信息,请参阅
`变分推理:统计学家评论 <https://arxiv.org/abs/1601.00670>`_
**参数:**
- **net_with_loss** (Cell) - 具有损失函数的单元格。
- **optimizer** (Cell) - 更新权重的优化器。
参数:
- **net_with_loss** (Cell) - 具有损失函数的单元格。
- **optimizer** (Cell) - 更新权重的优化器。
.. py:method:: get_train_loss()
**返回:**
numpy.dtype训练损失。
返回:
numpy.dtype训练损失。
.. py:method:: run(train_dataset, epochs=10)
通过训练概率网络来优化参数,并返回训练好的网络。
**参数:**
- **train_dataset** (Dataset) - 训练数据集迭代器。
- **epochs** (int) - 数据的迭代总数。默认值10。
参数:
- **train_dataset** (Dataset) - 训练数据集迭代器。
- **epochs** (int) - 数据的迭代总数。默认值10。
**返回:**
Cell经过训练的概率网络。
返回:
Cell经过训练的概率网络。

View File

@ -5,40 +5,35 @@ mindspore.nn.probability.toolbox.UncertaintyEvaluation
包含数据不确定性和模型不确定性的评估工具箱。
**参数:**
- **model** cell- 不确定性评估的模型。
- **train_dataset** (Dataset) 用于训练模型的数据集迭代器。
- **task_type** (str) 模型任务类型的选项
- regression回归模型。
- classification分类模型。
- **num_classes** (int) - 分类标签的数量。如果任务类型为分类则必须设置否则它是不需要的。默认值None。
- **epochs** (int) - 数据的迭代总数。默认值1。
- **epi_uncer_model_path** (str) - 认知不确定性模型的保存或读取路径。默认值None。
- **ale_uncer_model_path** (str) - 任意不确定性模型的保存或读取路径。默认值None。
- **save_model** (bool) - 是否保存不确定性模型,如果为 true`epi_uncer_model_path``ale_uncer_model_path` 不能为 None。
如果为 false则从不确定性模型的路径中加载要评估的模型如果未给出路径则不会保存或加载不确定性模型。默认值false。
参数:
- **model** (cell) - 不确定性评估的模型。
- **train_dataset** (Dataset) - 用于训练模型的数据集迭代器。
- **task_type** (str) - 模型任务类型的选项。
- regression回归模型。
- classification分类模型。
- **num_classes** (int) - 分类标签的数量。如果任务类型为分类则必须设置否则它是不需要的。默认值None。
- **epochs** (int) - 数据的迭代总数。默认值1。
- **epi_uncer_model_path** (str) - 认知不确定性模型的保存或读取路径。默认值None。
- **ale_uncer_model_path** (str) - 任意不确定性模型的保存或读取路径。默认值None。
- **save_model** (bool) - 是否保存不确定性模型,如果为 true`epi_uncer_model_path``ale_uncer_model_path` 不能为 None。
如果为 false则从不确定性模型的路径中加载要评估的模型如果未给出路径则不会保存或加载不确定性模型。默认值false。
.. py:method:: eval_aleatoric_uncertainty(eval_data)
评估推理结果的任意不确定性,也称为数据不确定性。
**参数:**
参数:
- **eval_data** (Tensor) - 要评估的数据样本shape 必须是 (N,C,H,W)。
- **eval_data** (Tensor) - 要评估的数据样本shape 必须是 (N,C,H,W)。
**返回:**
numpy.dtype数据样本推断结果的任意不确定性。
返回:
numpy.dtype数据样本推断结果的任意不确定性。
.. py:method:: eval_epistemic_uncertainty(eval_data)
评估推理结果的认知不确定性,也称为模型不确定性。
**参数:**
参数:
- **eval_data** (Tensor) - 要评估的数据样本shape 必须是 (N,C,H,W)。
- **eval_data** (Tensor) - 要评估的数据样本shape 必须是 (N,C,H,W)。
**返回:**
numpy.dtype数据样本推断结果的任意不确定性。
返回:
numpy.dtype数据样本推断结果的任意不确定性。

View File

@ -7,47 +7,40 @@ mindspore.nn.probability.toolbox.VAEAnomalyDetection
变分自动编码器VAE可用于无监督异常检测。异常分数是 sample_x 与重建 sample_x 之间的误差。如果分数高,则 X 大多是异常值。
**参数:**
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的大小。默认值400。
- **latent_size** (int) - 潜在空间的大小。默认值20。
参数:
- **encoder** (Cell) - 定义为编码器的深度神经网络 (DNN) 模型。
- **decoder** (Cell) - 定义为解码器的深度神经网络 (DNN) 模型。
- **hidden_size** (int) - 编码器输出 Tensor 的大小。默认值400。
- **latent_size** (int) - 潜在空间的大小。默认值20。
.. py:method:: predict_outlier(sample_x, threshold=100.0)
预测样本是否为异常值。
**参数:**
参数:
- **sample_x** (Tensor) - 待预测的样本shape 为 (N, C, H, W)。
- **threshold** (float) - 异常值的阈值。默认值100.0。
- **sample_x** (Tensor) 待预测的样本shape 为 (N, C, H, W)。
- **threshold** (float) 异常值的阈值。默认值100.0。
**返回:**
bool样本是否为异常值。
返回:
bool样本是否为异常值。
.. py:method:: predict_outlier_score(sample_x)
预测异常值分数。
**参数:**
参数:
- **sample_x** (Tensor) - 待预测的样本shape 为 (N, C, H, W)。
- **sample_x** (Tensor) - 待预测的样本shape 为 (N, C, H, W)。
**返回:**
float样本的预测异常值分数。
返回:
float样本的预测异常值分数。
.. py:method:: train(train_dataset , epochs=5)
训练 VAE 模型。
**参数:**
参数:
- **train_dataset** (Dataset) - 用于训练模型的数据集迭代器。
- **epochs** (int) - 数据的迭代总数。默认值5。
- **train_dataset** (Dataset) - 用于训练模型的数据集迭代器。
- **epochs** (int) - 数据的迭代总数。默认值5。
**返回:**
Cell训练完的模型。
返回:
Cell训练完的模型。

View File

@ -5,41 +5,36 @@ mindspore.nn.probability.transforms.TransformToBNN
将深度神经网络 (DNN) 模型转换为贝叶斯神经网络 (BNN) 模型。
**参数:**
参数:
- **trainable_dnn** (Cell) - 由 TrainOneStepCell 包装的可训练 DNN 模型backbone
- **dnn_factor** (int, float) - backbone 的损失系数由损失函数计算。默认值1。
- **bnn_factor** (int, float) - KL 损失系数,即贝叶斯层的 KL 散度。默认值1。
- **trainable_dnn** (Cell) - 由 TrainOneStepCell 包装的可训练 DNN 模型backbone
- **dnn_factor** (int, float) - backbone 的损失系数由损失函数计算。默认值1。
- **bnn_factor** (int, float) KL 损失系数,即贝叶斯层的 KL 散度。默认值1。
.. py:method:: transform_to_bnn_layer(dnn_layer_type , bnn_layer_type , get_args=None , add_args=None )
.. py:method:: transform_to_bnn_layer(dnn_layer_type, bnn_layer_type, get_args=None, add_args=None)
将 DNN 模型中的特定类型的层转换为相应的 BNN 层。
**参数:**
参数:
- **dnn_layer_type** (Cell) - 要转换为 BNN 层的 DNN 层的类型。可选值为 nn.Dense 和 nn.Conv2d。
- **bnn_layer_type** (Cell) - 要转换到的 BNN 层的类型。可选值是 DenseReparam 和 ConvReparam。
- **get_args** - 从 DNN 层获得的参数。默认值None。
- **add_args** (dict) - 添加到 BNN 层的新参数。请注意, `add_args` 中的参数不得与 `get_args` 中的参数重复。默认值None。
- **dnn_layer_type** (Cell) - 要转换为 BNN 层的 DNN 层的类型。可选值为 nn.Dense 和 nn.Conv2d。
- **bnn_layer_type** (Cell) - 要转换到的 BNN 层的类型。可选值是 DenseReparam 和 ConvReparam。
- **get_args** 从 DNN 层获得的参数。默认值None。
- **add_args** (dict) - 添加到 BNN 层的新参数。请注意, `add_args` 中的参数不得与 `get_args` 中的参数重复。默认值None。
**返回:**
Cell由 TrainOneStepCell 包裹的可训练模型,其特定类型的层被转换为对应的贝叶斯层。
返回:
Cell由 TrainOneStepCell 包裹的可训练模型,其特定类型的层被转换为对应的贝叶斯层。
.. py:method:: transform_to_bnn_model(get_dense_args=lambda dp: {"in_channels": dp.in_channels, "has_bias": dp.has_bias, "out_channels": dp.out_channels, "activation": dp.activation}, get_conv_args=lambda dp: {"in_channels": dp.in_channels, "out_channels": dp.out_channels, "pad_mode": dp.pad_mode, "kernel_size": dp.kernel_size, "stride": dp.stride, "has_bias": dp.has_bias, "padding": dp.padding, "dilation": dp.dilation, "group": dp.group}, add_dense_args=None, add_conv_args=None)
将整个DNN模型转换为BNN模型并通过TrainOneStepCell封装BNN模型。
**参数:**
参数:
- **get_dense_args** - 从 DNN 全连接层获得的参数。默认值lambda dp: {"in_channels": dp.in_channels, "has_bias": dp.has_bias, "out_channels": dp.out_channels, "activation": dp.activation}。
- **get_conv_args** - 从 DNN 卷积层获得的参数。默认值lambda dp: {"in_channels": dp.in_channels, "out_channels": dp.out_channels, "pad_mode": dp.pad_mode, "kernel_size": dp.kernel_size, "stride": dp.stride, "has_bias": dp.has_bias, "padding": dp.padding, "dilation": dp.dilation, "group": dp.group}。
- **add_dense_args** (dict) - 添加到 BNN 全连接层的新参数。请注意, `add_dense_args` 中的参数不得与 `get_dense_args` 中的参数重复。默认值None。
- **add_conv_args** (dict) - 添加到 BNN 卷积层的新参数。请注意, `add_conv_args` 中的参数不得与 `get_conv_args` 中的参数重复。默认值None。
- **get_dense_args** - 从 DNN 全连接层获得的参数。默认值lambda dp: {"in_channels": dp.in_channels, "has_bias": dp.has_bias, "out_channels": dp.out_channels, "activation": dp.activation}。
- **get_conv_args** - 从 DNN 卷积层获得的参数。默认值lambda dp: {"in_channels": dp.in_channels, "out_channels": dp.out_channels, "pad_mode": dp.pad_mode, "kernel_size": dp.kernel_size, "stride": dp.stride, "has_bias": dp.has_bias, "padding": dp.padding, "dilation": dp.dilation, "group": dp.group}。
- **add_dense_args** (dict) - 添加到 BNN 全连接层的新参数。请注意, `add_dense_args` 中的参数不得与 `get_dense_args` 中的参数重复。默认值None。
- **add_conv_args** (dict) - 添加到 BNN 卷积层的新参数。请注意, `add_conv_args` 中的参数不得与 `get_conv_args` 中的参数重复。默认值None。
**返回:**
Cell由 TrainOneStepCell 封装的可训练 BNN 模型。
返回:
Cell由 TrainOneStepCell 封装的可训练 BNN 模型。

View File

@ -2,21 +2,17 @@
从输入掩码中获取下三角矩阵。输入掩码是值为1或0的二维Tensor (batch_size, seq_length)。1表示当前位置是一个有效的标记0则表示当前位置不是一个有效的标记。
**参数:**
参数:
- **seq_length** (int) - 表示输入Tensor的序列长度。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
- **seq_length** (int) - 表示输入Tensor的序列长度。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例
输入:
- **input_mask** (Tensor) - 掩码矩阵shape为(batch_size, seq_length),表示每个位置是否为有效输入
**输入:**
输出:
Tensor表示shape为(batch_size, seq_length, seq_length)的注意力掩码矩阵。
- **input_mask** (Tensor) - 掩码矩阵shape为(batch_size, seq_length),表示每个位置是否为有效输入。
**输出:**
Tensor表示shape为(batch_size, seq_length, seq_length)的注意力掩码矩阵。
**异常:**
- **TypeError** - `seq_length` 不是整数。
- **ValueError** - `seq_length` 不是正数。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
异常:
- **TypeError** - `seq_length` 不是整数。
- **ValueError** - `seq_length` 不是正数。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。

View File

@ -2,16 +2,13 @@
计算输入和输出之间的交叉熵损失。
**参数:**
参数:
- **parallel_config** (OpParallelConfig, MoEParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
- **parallel_config** (OpParallelConfig, MoEParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
输入:
- **logits** (Tensor) - shape为(N, C)的Tensor。表示的输出logits。其中N表示任意大小的维度C表示类别个数。数据类型必须为float16或float32。
- **labels** (Tensor) - shape为(N, )的Tensor。表示样本的真实标签其中每个元素的取值区间为[0,C)。
- **input_mask** (Tensor) - shape为(N, )的Tensor。input_mask表示是否有填充输入。1表示有效0表示无效其中元素值为0的位置不会计算进损失值。
**输入:**
- **logits** (Tensor) - shape为(N, C)的Tensor。表示的输出logits。其中N表示任意大小的维度C表示类别个数。数据类型必须为float16或float32。
- **labels** (Tensor) - shape为(N, )的Tensor。表示样本的真实标签其中每个元素的取值区间为[0,C)。
- **input_mask** (Tensor) - shape为(N, )的Tensor。input_mask表示是否有填充输入。1表示有效0表示无效其中元素值为0的位置不会计算进损失值。
**输出:**
Tensor表示对应的交叉熵损失。
输出:
Tensor表示对应的交叉熵损失。

View File

@ -2,11 +2,10 @@
`VocabEmbedding` 类中的并行配置。当vocab_emb_dp为True时设置Embedding查找为数据并行其中model_parallel参数会被忽略。当vocab_emb_dp为False时在Embedding表的第0轴进行按model_parallel的大小进行切分。
**参数:**
- **data_parallel** (int) - 表示数据并行度。默认值1。
- **model_parallel** (int) - 表示模型平行度。默认值1。
- **vocab_emb_dp** (bool) - 表示模型并行或数据并行中的Shard embedding。默认值True。
参数:
- **data_parallel** (int) - 表示数据并行度。默认值1。
- **model_parallel** (int) - 表示模型平行度。默认值1。
- **vocab_emb_dp** (bool) - 表示模型并行或数据并行中的Shard embedding。默认值True。
.. py:method:: dp_mp_config()

View File

@ -1,35 +1,31 @@
.. py:class:: mindspore.nn.transformer.FeedForward(hidden_size, ffn_hidden_size, dropout_rate, hidden_act="gelu", expert_num=1, expert_group_size=None, param_init_type=mstype.float32, parallel_config=default_dpmp_config)
具有两层线性层的多层感知器并在最终输出上使用Dropout。第一个线性层将输入维度从hidden_size投影到ffn_hidden_size并在中间应用激活层。第二个线性层将该维度从ffn_hidden_size投影到hidden_size。配置parallel_config之后
第一个线性层的权重将在输入维度上被分片,第二个线性层在输出维度上进行切分。总体过程如下
第一个线性层的权重将在输入维度上被分片,第二个线性层在输出维度上进行切分。总体过程如下
.. math::
Dropout((xW_1+b_1)W_2 + b_2))
其中 :math:`W_1, W_2, b_1`:math:`b_2` 为可训练参数。
**参数:**
参数:
- **hidden_size** (int) - 表示输入的维度。
- **ffn_hidden_size** (int) - 表示中间隐藏大小。
- **dropout_rate** (float) - 表示第二个线性层输出的丢弃率。
- **hidden_act** (str) - 表示第一个线性层的激活。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:'gelu'。
- **expert_num** (int) - 表示线性层中使用的专家数量。对于expert_num > 1用例使用BatchMatMul。BatchMatMul中的第一个维度表示expert_num。默认值1。
- **expert_group_size** (int) - 表示每个数据并行组收到的词语token数量。默认值None。该参数只在自动并行且非策略传播模式下起作用。
- **param_init_type** (dtype.Number) - 表示参数初始化类型。其值应为mstype.float32或mstype.float16。默认值mstype.float32。
- **parallel_config** (OpParallelConfig) - 表示配置该网络的并行度的并行配置。更多详情,请参见 :class:`mindspore.nn.transformer.OpParallelConfig` 。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
- **hidden_size** (int) - 表示输入的维度。
- **ffn_hidden_size** (int) - 表示中间隐藏大小。
- **dropout_rate** (float) - 表示第二个线性层输出的丢弃率。
- **hidden_act** (str) - 表示第一个线性层的激活。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值:'gelu'。
- **expert_num** (int) - 表示线性层中使用的专家数量。对于expert_num > 1用例使用BatchMatMul。BatchMatMul中的第一个维度表示expert_num。默认值1。
- **expert_group_size** (int) - 表示每个数据并行组收到的词语token数量。默认值None。该参数只在自动并行且非策略传播模式下起作用。
- **param_init_type** (dtype.Number) - 表示参数初始化类型。其值应为mstype.float32或mstype.float16。默认值mstype.float32。
- **parallel_config** (OpParallelConfig) - 表示配置该网络的并行度的并行配置。更多详情,请参见 :class:`mindspore.nn.transformer.OpParallelConfig` 。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
输入:
- **x** (Tensor) - 应为 `[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]` 。表示浮点Tensor。
**输入:**
输出:
Tensor表示映射后该层的输出。shape为 `[batch, seq_length, hidden_size]``[batch * seq_length, hidden_size]`
- **x** (Tensor) - 应为 `[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]` 。表示浮点Tensor。
**输出:**
Tensor表示映射后该层的输出。shape为 `[batch, seq_length, hidden_size]``[batch * seq_length, hidden_size]`
**异常:**
- **ValueError** - `hidden_act` 不是字符串。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
- **ValueError** - `ffn_hidden_size` 不是parallel_config中model_parallel的倍数。
- **ValueError** - `hidden_size` 不是parallel_config中model_parallel的倍数。
异常:
- **ValueError** - `hidden_act` 不是字符串。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
- **ValueError** - `ffn_hidden_size` 不是parallel_config中model_parallel的倍数。
- **ValueError** - `hidden_size` 不是parallel_config中model_parallel的倍数。

View File

@ -9,25 +9,22 @@
1. 正常注意力的更快实现(不计算上三角,并且融合了许多操作)。
2. 如论文Sparse Transformers所述“分散”和“固定”注意力的实现。
**参数:**
参数:
- **batch_size** (int) - 表示输入batch size的数量。
- **num_heads** (int) - 表示注意力头数。
- **block_size** (int) - 表示用来确定block size的整数。目前稀疏自注意力的实现基于稀疏块矩阵。此参数定义了稀疏矩阵块的大小。目前仅支持64。
- **seq_length** (int) - 表示输入序列的长度。目前只支持1024。默认值为1024。
- **num_different_global_patterns** (int) - 表示用于确定不同的全局注意力数量。虽然全局注意力由局部的代表性的块决定,
但由于有多个头所以每个头都可以使用不同的全局代表。目前只支持4。默认值为4。
- **size_per_head** (int) - 表示每个注意力头的向量大小。目前仅支持64和128。
- **parallel_config** (OpParallelConfig) - 并行设置,内容请参阅 `OpParallelConfig` 的定义。默认值为 `default_dpmp_config` ,一个用默认参数初始化的 `OpParallelConfig` 的实例。
- **batch_size** (int) - 表示输入batch size的数量。
- **num_heads** (int) - 表示注意力头数。
- **block_size** (int) - 表示用来确定block size的整数。目前稀疏自注意力的实现基于稀疏块矩阵。此参数定义了稀疏矩阵块的大小。目前仅支持64。
- **seq_length** (int) - 表示输入序列的长度。目前只支持1024。默认值为1024。
- **num_different_global_patterns** (int) - 表示用于确定不同的全局注意力数量。虽然全局注意力由局部的代表性的块决定,
但由于有多个头所以每个头都可以使用不同的全局代表。目前只支持4。默认值为4。
- **size_per_head** (int) - 表示每个注意力头的向量大小。目前仅支持64和128。
- **parallel_config** (OpParallelConfig) - 并行设置,内容请参阅 `OpParallelConfig` 的定义。默认值为 `default_dpmp_config` ,一个用默认参数初始化的 `OpParallelConfig` 的实例。
输入:
- **q** (Tensor) - Tensor query (:class:`mstype.fp16` [batch_size, seq_length, hidden_size])表示上下文的query向量。
- **k** (Tensor) - Tensor key (:class:`mstype.fp16` [batch_size, seq_length, hidden_size])表示上下文的key向量。
- **v** (Tensor) - Tensor value (:class:`mstype.fp16` [批次大小, seq_length, hidden_size])表示上下文的value向量。
- **attention_mask** (Tensor) - Float Tensor the mask of (:class:`mstype.fp32` , :class:`mstype.fp16` [batch_size, seq_length, seq_length])
表示掩码的下三角形矩阵。
**输入:**
- **q** (Tensor) - Tensor query (:class:`mstype.fp16` [batch_size, seq_length, hidden_size])表示上下文的query向量。
- **k** (Tensor) - Tensor key (:class:`mstype.fp16` [batch_size, seq_length, hidden_size])表示上下文的key向量。
- **v** (Tensor) - Tensor value (:class:`mstype.fp16` [批次大小, seq_length, hidden_size])表示上下文的value向量。
- **attention_mask** (Tensor) - Float Tensor the mask of (:class:`mstype.fp32` , :class:`mstype.fp16` [batch_size, seq_length, seq_length])
表示掩码的下三角形矩阵。
**输出:**
Tensorshape为[batch_size, seq_length, hidden_size]。
输出:
Tensorshape为[batch_size, seq_length, hidden_size]。

View File

@ -2,10 +2,9 @@
MoE (Mixture of Expert)的配置。
**参数:**
- **expert_num** (int) - 表示使用的专家数量。默认值1。
- **capacity_factor** (float) - 表示专家处理的容量关系其值大于等于1.0。默认值1.1。
- **aux_loss_factor** (float) - 表示负载均衡损失由路由器产生的平衡系数。相乘的结果会加到总损失函数中。此系数的值小于1.0。默认值0.05。
- **num_experts_chosen** (int) - 表示每个标识选择的专家数量其值小于等于专家数量。默认值1。
- **expert_group_size** (int) - 表示每个数据并行组收到的词语token数量。默认值None。该参数只在自动并行且非策略传播模式下起作用。
参数:
- **expert_num** (int) - 表示使用的专家数量。默认值1。
- **capacity_factor** (float) - 表示专家处理的容量关系其值大于等于1.0。默认值1.1。
- **aux_loss_factor** (float) - 表示负载均衡损失由路由器产生的平衡系数。相乘的结果会加到总损失函数中。此系数的值小于1.0。默认值0.05。
- **num_experts_chosen** (int) - 表示每个标识选择的专家数量其值小于等于专家数量。默认值1。
- **expert_group_size** (int) - 表示每个数据并行组收到的词语token数量。默认值None。该参数只在自动并行且非策略传播模式下起作用。

View File

@ -9,38 +9,35 @@
如果query tensor、key tensor和value tensor相同则上述即为自注意力机制的计算过程。
**参数:**
参数:
- **batch_size** (int) - 表示训练批次的大小。
- **src_seq_length** (int) - 表示query向量的序列长度。
- **tgt_seq_length** (int) - 表示key向量和value向量的序列长度。
- **hidden_size** (int) - 表示输入的向量大小。
- **num_heads** (int) - 表示注意力机制中头的数量。
- **hidden_dropout_rate** (float) - 表示最后dense输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **compute_dtype** (dtype.Number) - 表示dense中矩阵乘法的计算类型。默认值mstype.float16。其值应为mstype.float32或mstype.float16。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。默认值mstype.float32。其值应为mstype.float32或mstype.float16。
- **softmax_compute_type** (dtype.Number) - 表示softmax计算模块的类型。默认值mstype.float32。 其值应为mstype.float32或mstype.float16。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以执行预测。
第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行循环。默认值False
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有参数的 `OpParallelConfig` 实例。
- **batch_size** (int) - 表示训练批次的大小。
- **src_seq_length** (int) - 表示query向量的序列长度。
- **tgt_seq_length** (int) - 表示key向量和value向量的序列长度。
- **hidden_size** (int) - 表示输入的向量大小。
- **num_heads** (int) - 表示注意力机制中头的数量。
- **hidden_dropout_rate** (float) - 表示最后dense输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **compute_dtype** (dtype.Number) - 表示dense中矩阵乘法的计算类型。默认值mstype.float16。其值应为mstype.float32或mstype.float16。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。默认值mstype.float32。其值应为mstype.float32或mstype.float16。
- **softmax_compute_type** (dtype.Number) - 表示softmax计算模块的类型。默认值mstype.float32。 其值应为mstype.float32或mstype.float16。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以执行预测。
第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行循环。默认值False
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有参数的 `OpParallelConfig` 实例。
输入:
- **query_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的query向量。否则shape必须为(batch_size, 1, hidden_size)。
- **key_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的key向量。否则shape必须为(batch_size, 1, hidden_size)。
- **value_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的value向量。否则shape必须为(batch_size, 1, hidden_size)。
- **attention_mask** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, tgt_seq_length)的注意力掩码矩阵。否则shape必须为(batch_size, 1, tgt_seq_length)。
- **key_past** (Tensor) - shape为(batch_size, num_heads, size_per_head, tgt_seq_length)的Float16 tensor表示过去所计算的key向量。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
- **value_past** (Tensor) - shape为(batch_size, num_heads, tgt_seq_length, size_per_head)的Float16 tensor表示过去所计算的value向量。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
- **batch_valid_length** (Tensor) - shape为(batch_size,)的Int32 tensor表示已经计算的token索引。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
**输入:**
输出:
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **query_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的query向量。否则shape必须为(batch_size, 1, hidden_size)。
- **key_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的key向量。否则shape必须为(batch_size, 1, hidden_size)。
- **value_tensor** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, tgt_seq_length, hidden_size)或(batch_size * tgt_seq_length, hidden_size)的value向量。否则shape必须为(batch_size, 1, hidden_size)。
- **attention_mask** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, tgt_seq_length)的注意力掩码矩阵。否则shape必须为(batch_size, 1, tgt_seq_length)。
- **key_past** (Tensor) - shape为(batch_size, num_heads, size_per_head, tgt_seq_length)的Float16 tensor 表示过去所计算的key向量。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
- **value_past** (Tensor) - shape为(batch_size, num_heads, tgt_seq_length, size_per_head)的Float16 tensor表示过去所计算的value向量。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
- **batch_valid_length** (Tensor) - shape为(batch_size,)的Int32 tensor表示已经计算的token索引。
当use_past为True时需要传入非None值用于增量预测。默认值为None。
**输出:**
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **output** (Tensor) - Tensor。use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
- **output** (Tensor) - Tensor。use_past为False或is_first_iteration为True时表示shape为(batch_size, src_seq_length, hidden_size)或(batch_size * src_seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。

View File

@ -2,7 +2,6 @@
用于设置数据并行和模型并行的OpParallelConfig。
**参数:**
- **data_parallel** (int) - 表示数据并行度。默认值1
- **model_parallel** (int) - 表示模型并行度。默认值1
参数:
- **data_parallel** (int) - 表示数据并行度。默认值1
- **model_parallel** (int) - 表示模型并行度。默认值1

View File

@ -6,43 +6,40 @@
.. note::
这是一个实验接口,可能会被更改或者删除。
**参数:**
参数:
- **batch_size** (int) - 表示输入的批次大小。
- **encoder_layers** (int) - 表示 `TransformerEncoderLayer` 的层数。
- **decoder_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
- **hidden_size** (int) - 表示输入向量的大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **src_seq_length** (int) - 表示编码器的输入Tensor的seq_length。
- **tgt_seq_length** (int) - 表示解码器的输入Tensor的seq_length。
- **num_heads** (int) - 表示注意力头的数量。默认值2
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **use_past** (bool) - 表示是否开启增量推理。在推理中会缓存注意力机制计算结果避免冗余计算。默认值为False。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力机制中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **hidden_act** (str) - 表示前馈层的激活行为。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_id需要一个偏移。pipeline的默认设置为 `(layer_id + offset) // ((encoder_layers + decoder_length) / pipeline_stage)` 。默认值为None。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
- **batch_size** (int) - 表示输入的批次大小。
- **encoder_layers** (int) - 表示 `TransformerEncoderLayer` 的层数。
- **decoder_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
- **hidden_size** (int) - 表示输入向量的大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **src_seq_length** (int) - 表示编码器的输入Tensor的seq_length。
- **tgt_seq_length** (int) - 表示解码器的输入Tensor的seq_length。
- **num_heads** (int) - 表示注意力头的数量。默认值2
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **use_past** (bool) - 表示是否开启增量推理。在推理中会缓存注意力机制计算结果避免冗余计算。默认值为False。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力机制中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **hidden_act** (str) - 表示前馈层的激活行为。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_id需要一个偏移。pipeline的默认设置为 `(layer_id + offset) // ((encoder_layers + decoder_length) / pipeline_stage)` 。默认值为None。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
输入:
- **encoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入Tensor。
- **encoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
- **decoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。如果解码器层数为0则此值应为None。
- **decoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。如果解码器层为0则shape为[batch_size, seq_length, hidden_size]的编码器的输出应为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输入:**
输出:
Tuple表示包含(`output`, `encoder_layer_present`, `encoder_layer_present`, `accum_loss`)的元组。
- **encoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入Tensor。
- **encoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
- **decoder_inputs** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。如果解码器层数为0则此值应为None。
- **decoder_masks** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。如果解码器层为0则shape为[batch_size, seq_length, hidden_size]的编码器的输出应为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输出:**
Tuple表示包含(`output`, `encoder_layer_present`, `encoder_layer_present`, `accum_loss`)的元组。
- **output** (Tensor) - 如果只有编码器则表示编码器层的输出logit。shape为[batch, src_seq_length, hidden_size] or [batch * src_seq_length, hidden_size]。如果有编码器和解码器则输出来自于解码器层。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
- **encoder_layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor的元组。
- **decoder_layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。如果未设置解码器返回值将为None。
- **accum_loss** (Tensor) - 表示一个辅助损失来最小化路由到每个专家的数据部分的均方且仅仅在专家数大于1时才会返回。
- **output** (Tensor) - 如果只有编码器则表示编码器层的输出logit。shape为[batch, src_seq_length, hidden_size] or [batch * src_seq_length, hidden_size]。如果有编码器和解码器则输出来自于解码器层。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
- **encoder_layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor的元组。
- **decoder_layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head))的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。如果未设置解码器返回值将为None。
- **accum_loss** (Tensor) - 表示一个辅助损失来最小化路由到每个专家的数据部分的均方且仅仅在专家数大于1时才会返回。

View File

@ -2,43 +2,40 @@
Transformer中的解码器模块为多层堆叠的 `TransformerDecoderLayer` ,包括多头自注意力层、交叉注意力层和前馈层。
**参数:**
参数:
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **num_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **src_seq_length** (int) - 表示输入源序列长度。
- **tgt_seq_length** (int) - 表示输入目标序列长度。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 表示是否开启增量推理。在推理中会缓存注意力机制计算结果避免冗余计算。默认值为False。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **offset** (int) - 表示 `decoder` 的初始层索引偏移值。其用于设置梯度聚合的融合值和流水线并行的stage值使其不与编码器层的相关属性重叠。默认值为0。
- **lambda_func** - 表示确定梯度融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_index需要一个偏置。pipeline的默认设置为 `(layer_id + offset) // (layers / pipeline_stage)` 。默认值None。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **num_layers** (int) - 表示 `TransformerDecoderLayer` 的层数。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **src_seq_length** (int) - 表示输入源序列长度。
- **tgt_seq_length** (int) - 表示输入目标序列长度。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 表示是否开启增量推理。在推理中会缓存注意力机制计算结果避免冗余计算。默认值为False。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **offset** (int) - 表示 `decoder` 的初始层索引偏移值。其用于设置梯度聚合的融合值和流水线并行的stage值使其不与编码器层的相关属性重叠。默认值为0。
- **lambda_func** - 表示确定梯度融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_index需要一个偏置。pipeline的默认设置为 `(layer_id + offset) // (layers / pipeline_stage)` 。默认值None。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
输入:
- **hidden_stats** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入tensor。
- **attention_mask** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码。
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。
**输入:**
.. note::当网络位于最外层时此参数不能通过None传递。默认值为None。
- **hidden_stats** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的输入tensor
- **attention_mask** (Tensor) - shape为[batch_size, seq_length, seq_length]的解码器的注意力掩码
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
.. note::当网络位于最外层时此参数不能通过None传递。默认值为None。
输出:
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输出:**
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **output** (Tensor) - 输出的logit。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
- **layer_present** (Tuple) - 大小为层数的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。
- **output** (Tensor) - 输出的logit。shape为[batch, tgt_seq_length, hidden_size]或[batch * tgt_seq_length, hidden_size]。
- **layer_present** (Tuple) - 大小为层数的元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。

View File

@ -2,37 +2,34 @@
Transformer的解码器层。Transformer的解码器层上的单层的实现包括自注意力层、交叉注意力层和前馈层。当encoder_output为None时交叉注意力将无效。
**参数:**
参数:
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **src_seq_length** (int) - 表示输入源序列长度。
- **tgt_seq_length** (int) - 表示输入目标序列长度。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。默认值False。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **hidden_size** (int):表示输入的隐藏大小。
- **src_seq_length** (int) - 表示输入源序列长度。
- **tgt_seq_length** (int) - 表示输入目标序列长度。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。默认值False。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
输入:
- **hidden_stats** (Tensor) - shape为[batch_size, tgt_seq_length, hidden_size]或[batch_size * tgt_seq_length, hidden_size]的输入tensor。
- **decoder_mask** (Tensor) - shape为[batch_size, src_seq_length, seq_length]的解码器的注意力掩码。
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输入:**
输出:
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **hidden_stats** (Tensor) - shape为[batch_size, tgt_seq_length, hidden_size]或[batch_size * tgt_seq_length, hidden_size]的输入tensor。
- **decoder_mask** (Tensor) - shape为[batch_size, src_seq_length, seq_length]的解码器的注意力掩码。
- **encoder_output** (Tensor) - shape为[batch_size, seq_length, hidden_size]或[batch_size * seq_length, hidden_size]的编码器的输出。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **memory_mask** (Tensor) - shape为[batch, tgt_seq_length, src_seq_length]的交叉注意力的memory掩码其中tgt_seq_length表示解码器的长度。注当网络位于最外层时此参数不能通过None传递。默认值为None。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输出:**
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **output** (Tensor) - 此层的输出logit。shape为[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]。
- **layer_present** (Tuple) - 元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。
- **output** (Tensor) - 此层的输出logit。shape为[batch, seq_length, hidden_size]或[batch * seq_length, hidden_size]。
- **layer_present** (Tuple) - 元组其中每个元组都是shape为((batch_size, num_heads, size_per_head, tgt_seq_length)或(batch_size, num_heads, tgt_seq_length, size_per_head)的自注意力中的投影key向量和value向量的tensor的元组或者是shape为(batch_size, num_heads, size_per_head, src_seq_length)或(batch_size, num_heads, src_seq_length, size_per_head))的交叉注意力中的投影key向量和value向量的tensor的元组。

View File

@ -2,37 +2,34 @@
Transformer中的编码器模块具有多层堆叠的 `TransformerEncoderLayer` ,包括多头自注意力层和前馈层。
**参数:**
参数:
- **batch_size** (int) - 表示输入tensor的批次大小。
- **num_layers** (int) - 表示 `TransformerEncoderLayer` 的层。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **seq_length** (int) - 表示输入序列长度。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行环回。默认值False。
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_index需要一个偏置。pipeline的默认设置为 `(layer_id + offset) // (layers / pipeline_stage)` 。默认值None。
- **offset** (int) - 表示 `decoder` 的初始层索引。其用于设置梯度聚合的融合值和流水线并行的stage值。默认值0。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
- **batch_size** (int) - 表示输入tensor的批次大小。
- **num_layers** (int) - 表示 `TransformerEncoderLayer` 的层。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **seq_length** (int) - 表示输入序列长度。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行环回。默认值False。
- **lambda_func** - 表示设置融合索引、pipeline阶段和重计算属性的函数。如果用户想确定pipeline阶段和梯度聚合融合用户可以传递一个接受 `network``layer_id``offset``parallel_config``layers` 的函数。 `network(Cell)` 表示transformer块 `layer_id(int)` 表示当前模块的层索引,从零开始计数, `offset(int)` 表示如果网络中还有其他模块则layer_index需要一个偏置。pipeline的默认设置为 `(layer_id + offset) // (layers / pipeline_stage)` 。默认值None。
- **offset** (int) - 表示 `decoder` 的初始层索引。其用于设置梯度聚合的融合值和流水线并行的stage值。默认值0。
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (TransformerOpParallelConfig) - 表示并行配置。默认值为 `default_transformer_config` ,表示带有默认参数的 `TransformerOpParallelConfig` 实例。
输入:
- **hidden_states** (Tensor) - Tensor。如果use_past为False或者is_first_iteration为Trueshape为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则shape应为[batch_size, 1, hidden_size]。
- **attention_mask** (Tensor) - Tensor表示shape为[[batch_size, seq_length, seq_length]的注意力掩码。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输入:**
输出:
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **hidden_states** (Tensor) - Tensor。如果use_past为False或者is_first_iteration为Trueshape为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则shape应为[batch_size, 1, hidden_size]。
- **attention_mask** (Tensor) - Tensor表示shape为[[batch_size, seq_length, seq_length]的注意力掩码。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输出:**
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **output** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都包含shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
- **output** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 大小为num_layers的元组其中每个元组都包含shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。

View File

@ -2,35 +2,31 @@
Transformer的编码器层。Transformer的编码器层上的单层的实现包括多头注意力层和前馈层。
**参数:**
参数:
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **seq_length** (int) - 表示输入序列长度。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行环回。默认值False
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
- **batch_size** (int) - 表示输入Tensor的批次大小。
- **hidden_size** (int) - 表示输入的隐藏大小。
- **seq_length** (int) - 表示输入序列长度。
- **ffn_hidden_size** (int) - 表示前馈层中bottleneck的隐藏大小。
- **num_heads** (int) - 表示注意力头的数量。
- **hidden_dropout_rate** (float) - 表示作用在隐藏层输出的丢弃率。默认值0.1
- **attention_dropout_rate** (float) - 表示注意力score的丢弃率。默认值0.1
- **post_layernorm_residual** (bool) - 表示是否在LayerNorm之前使用残差即是否选择残差为Post-LayerNorm或者Pre-LayerNorm。默认值False
- **hidden_act** (str) - 表示内部前馈层的激活函数。其值可为'relu'、'relu6'、'tanh'、'gelu'、'fast_gelu'、'elu'、'sigmoid'、'prelu'、'leakyrelu'、'hswish'、'hsigmoid'、'logsigmoid'等等。默认值gelu。
- **layernorm_compute_type** (dtype.Number) - 表示LayerNorm的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **softmax_compute_type** (dtype.Number) - 表示注意力中softmax的计算类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **param_init_type** (dtype.Number) - 表示模块的参数初始化类型。其值应为mstype.float32或mstype.float16。默认值为mstype.float32。
- **use_past** (bool) - 使用过去状态进行计算用于增量预测。例如如果我们有两个单词想生成十个或以上单词。我们只需要计算一次这两个单词的状态然后逐个生成下一个单词。当use_past为True时有两个步骤可以运行预测。第一步是通过 `model.add_flags_recursive(is_first_iteration=True)` 将is_first_iteration设为True并传递完整的输入。然后通过 `model.add_flags_recursive(is_first_iteration=False)` 将is_first_iteration设为False。此时传递step的输入tensor并对其进行环回。默认值False
- **moe_config** (MoEConfig) - 表示MoE (Mixture of Expert)的配置。默认值为 `default_moe_config` ,表示带有默认参数的 `MoEConfig` 实例。
- **parallel_config** (OpParallelConfig) - 表示并行配置。默认值为 `default_dpmp_config` ,表示一个带有默认参数的 `OpParallelConfig` 实例。
输入:
- **x** (Tensor) - Float Tensor。如果use_past为False或者is_first_iteration为Trueshape应为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则shape应为[batch_size, 1, hidden_size]。
- **input_mask** (Tensor) - Float tensor。use_past为False或者is_first_iteration为True时表示shape为[batch_size, seq_length, seq_length]的注意力掩码。否则shape应为[batch_size, 1, hidden_size]。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输入:**
输出:
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **x** (Tensor) - Float Tensor。如果use_past为False或者is_first_iteration为Trueshape应为[batch_size, seq_length, hidden_size]或者[batch_size * seq_length, hidden_size]。否则shape应为[batch_size, 1, hidden_size]。
- **input_mask** (Tensor) - Float tensor。use_past为False或者is_first_iteration为True时表示shape为[batch_size, seq_length, seq_length]的注意力掩码。否则shape应为[batch_size, 1, hidden_size]。
- **init_reset** (Tensor) - shape为[1]的bool tensor用于清除增量预测中使用的past key参数和past value参数。仅当use_past为True时有效。默认值为True。
- **batch_valid_length** (Tensor) - shape为[batch_size]的Int32 tensor表示过去所计算的索引。当use_past为True时它用于增量预测。默认值为None。
**输出:**
Tuple表示一个包含(`output`, `layer_present`)的元组。
- **output** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。
- **output** (Tensor) - use_past为False或is_first_iteration为True时表示shape为(batch_size, seq_length, hidden_size)或(batch_size * seq_length, hidden_size)的层输出的float tensor。否则shape将为(batch_size, 1, hidden_size)。
- **layer_present** (Tuple) - 表示shape为((batch_size, num_heads, size_per_head, seq_length)或(batch_size, num_heads, seq_length, size_per_head))的投影key向量和value向量的Tensor的元组。

View File

@ -6,17 +6,16 @@
除recompute参数外当用户未将auto_parallel_context设为 `SEMI_AUTO_PARALLEL``AUTO_PARALLEL` 时,其他参数将无效。
在训练时micro_batch_num的值必须大于或等于equal to pipeline_stage的值。data_parallel\*model_parallel \*pipeline_stage的值必须等于或小于总设备的数量。设置pipeline_stage和optimizer_shard时其配置将覆盖auto_parallel_context的配置。
**参数:**
- **data_parallel** (int) - 表示数据并行数。默认值1。
- **model_parallel** (int) - 表示模型并行数。默认值1。
- **expert_parallel** (int) - 表示专家并行数只有在应用混合专家结构MoEMixture of Experts时才会生效。默认值1.
- **pipeline_stage** (int) - 表示将Transformer切分成的stage数目。其值应为正数。默认值1。
- **micro_batch_num** (int) - 表示用于pipeline训练的batch的微型大小。默认值1。
- **optimizer_shard** (bool) - 表示是否使能优化器切分。默认值False。
- **gradient_aggregation_group** (int) - 表示优化器切分的融合组大小。默认值4。
- **recompute** (bool) - 表示是否启用transformer每层的的重计算。默认值一个按默认参数初始化的 `TransformerRecomputeConfig` 实例。
- **vocab_emb_dp** (bool) - 表示Embedding表是否为数据并行否则将在查找表中的第0维度根据模型并行度进行切分。默认值True。
参数:
- **data_parallel** (int) - 表示数据并行数。默认值1。
- **model_parallel** (int) - 表示模型并行数。默认值1。
- **expert_parallel** (int) - 表示专家并行数只有在应用混合专家结构MoEMixture of Experts时才会生效。默认值1.
- **pipeline_stage** (int) - 表示将Transformer切分成的stage数目。其值应为正数。默认值1。
- **micro_batch_num** (int) - 表示用于pipeline训练的batch的微型大小。默认值1。
- **optimizer_shard** (bool) - 表示是否使能优化器切分。默认值False。
- **gradient_aggregation_group** (int) - 表示优化器切分的融合组大小。默认值4。
- **recompute** (bool) - 表示是否启用transformer每层的的重计算。默认值一个按默认参数初始化的 `TransformerRecomputeConfig` 实例。
- **vocab_emb_dp** (bool) - 表示Embedding表是否为数据并行否则将在查找表中的第0维度根据模型并行度进行切分。默认值True。
.. py:method:: dp_mp_config()

View File

@ -2,9 +2,8 @@
Transformer的重计算配置接口。
**参数:**
- **recompute** (bool) - 是否使能重计算。默认值为False。
- **parallel_optimizer_comm_recompute** (bool) - 指定由优化器切分产生的AllGather算子是否进行重计算。默认值为False。
- **mp_comm_recompute** (bool) - 指定由模型并行成分产生的通信算子是否进行重计算。默认值为True。
- **recompute_slice_activation** (bool) - 指定激活层是否切片保存。默认值为False。
参数:
- **recompute** (bool) - 是否使能重计算。默认值为False。
- **parallel_optimizer_comm_recompute** (bool) - 指定由优化器切分产生的AllGather算子是否进行重计算。默认值为False。
- **mp_comm_recompute** (bool) - 指定由模型并行成分产生的通信算子是否进行重计算。默认值为True。
- **recompute_slice_activation** (bool) - 指定激活层是否切片保存。默认值为False。

View File

@ -5,27 +5,23 @@
.. note::
启用 `AUTO_PARALLEL` / `SEMI_AUTO_PARALLEL` 模式时此层仅支持2维度的输入因为策略是为2D输入而配置的。
**参数:**
参数:
- **vocab_size** (int) - 表示查找表的大小。
- **embedding_size** (int)- 表示查找表中每个嵌入向量的大小。
- **param_init** (Union[Tensor, str, Initializer, numbers.Number] - 表示embedding_table的Initializer。当指定字符串时请参见 `initializer` 类了解字符串的值。默认值:'normal'。
- **parallel_config** (EmbeddingOpParallelConfig) - 表示网络的并行配置。默认值为 `default_embedding_parallel_config` ,表示带有默认参数的 `EmbeddingOpParallelConfig` 实例。
- **vocab_size** int) - 表示查找表的大小。
- **embedding_size** int- 表示查找表中每个嵌入向量的大小。
- **param_init** Union[Tensor, str, Initializer, numbers.Number]- 表示embedding_table的Initializer。当指定字符串时请参见 `initializer` 类了解字符串的值。默认值:'normal'。
- **parallel_config** (EmbeddingOpParallelConfig) - 表示网络的并行配置。默认值为 `default_embedding_parallel_config` ,表示带有默认参数的 `EmbeddingOpParallelConfig` 实例。
输入:
- **input_ids** (Tensor) - shape为(batch_size, seq_length)的输入其数据类型为int32。
**输入:**
输出:
Tuple表示一个包含(`output`, `embedding_table`)的元组。
- **input_ids** (Tensor) - shape为(batch_size, seq_length)的输入其数据类型为int32。
- **output** (Tensor) - shape为(batch_size, seq_length, embedding_size)嵌入向量查找结果。
- **embedding_table** (Tensor) - shape为(vocab_size, embedding_size)的嵌入表。
**输出:**
Tuple表示一个包含(`output`, `embedding_table`)的元组。
- **output** (Tensor) - shape为(batch_size, seq_length, embedding_size)嵌入向量查找结果。
- **embedding_table** (Tensor) - shape为(vocab_size, embedding_size)的嵌入表。
**异常:**
- **ValueError** - parallel_config.vocab_emb_dp为True时词典的大小不是parallel_config.model_parallel的倍数。
- **ValueError** - `vocab_size` 不是正值。
- **ValueError** - `embedding_size` 不是正值。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。
异常:
- **ValueError** - parallel_config.vocab_emb_dp为True时词典的大小不是parallel_config.model_parallel的倍数。
- **ValueError** - `vocab_size` 不是正值。
- **ValueError** - `embedding_size` 不是正值。
- **TypeError** - `parallel_config` 不是OpParallelConfig的子类。