mcorrect the format of API files
This commit is contained in:
parent
fb7c04f5db
commit
56226400a7
|
@ -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, 将有k−1每个采样位置跳过的像素。它的值必须大于或等于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,将有k−1每个采样位置跳过的像素。它的值必须大于或等于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})`。
|
||||
|
|
|
@ -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)`。
|
|
@ -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)`。
|
|
@ -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,一种正态分布结果。
|
||||
|
|
|
@ -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,一种正态分布的结果。
|
||||
|
|
|
@ -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。
|
||||
|
||||
**返回:**
|
||||
|
||||
Cell,backbone_network。
|
||||
返回:
|
||||
Cell,backbone_network。
|
||||
|
|
|
@ -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) - 目标数据的 Tensor,shape 为 :math:`(N,)`。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **input_x** (Tensor) - 输入 Tensor 的 shape 是 :math:`(N, C, H, W)`,与编码器的输入相同。
|
||||
- **input_y** (Tensor) - 目标数据的 Tensor,shape 为 :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) - 重构的输入 Tensor,shape 为 (N, C, H, W)。
|
||||
- **y** (Tensor) - 输入 Tensor 的 label,shape 为 (N, C, H, W)。
|
||||
|
||||
- **x** (Tensor) - 重构的输入 Tensor,shape 为 (N, C, H, W)。
|
||||
- **y** (Tensor) - 输入 Tensor 的 label,shape 为 (N, C, H, W)。
|
||||
|
||||
**返回:**
|
||||
|
||||
Tensor,重建的样本。
|
||||
返回:
|
||||
Tensor,重建的样本。
|
||||
|
|
|
@ -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_x(Tensor),x(Tensor),mu(Tensor),std(Tensor))。
|
||||
输出:
|
||||
- **output** (Tuple) - (recon_x(Tensor),x(Tensor),mu(Tensor),std(Tensor))。
|
||||
|
||||
.. 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) - 要重构的输入 Tensor,shape 为 :math:`(N, C, H, W)`。
|
||||
|
||||
- **x** (Tensor) - 要重构的输入 Tensor,shape 为 :math:`(N, C, H, W)`。
|
||||
|
||||
**返回:**
|
||||
|
||||
Tensor,重构的样本。
|
||||
返回:
|
||||
Tensor,重构的样本。
|
||||
|
|
|
@ -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,损失浮动张量。
|
||||
|
|
|
@ -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,经过训练的概率网络。
|
|
@ -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,数据样本推断结果的任意不确定性。
|
|
@ -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,训练完的模型。
|
|
@ -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 模型。
|
||||
|
||||
|
||||
|
|
@ -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的子类。
|
||||
|
|
|
@ -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,表示对应的交叉熵损失。
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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的倍数。
|
||||
|
|
|
@ -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]):
|
||||
表示掩码的下三角形矩阵。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape为[batch_size, seq_length, hidden_size]。
|
||||
输出:
|
||||
Tensor,shape为[batch_size, seq_length, hidden_size]。
|
||||
|
|
|
@ -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。该参数只在自动并行且非策略传播模式下起作用。
|
||||
|
|
|
@ -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的元组。
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
用于设置数据并行和模型并行的OpParallelConfig。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1
|
||||
- **model_parallel** (int) - 表示模型并行度。默认值:1
|
||||
参数:
|
||||
- **data_parallel** (int) - 表示数据并行度。默认值:1
|
||||
- **model_parallel** (int) - 表示模型并行度。默认值:1
|
||||
|
|
|
@ -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时才会返回。
|
||||
|
|
|
@ -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的元组。
|
||||
|
|
|
@ -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的元组。
|
||||
|
|
|
@ -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为True,shape为[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为True,shape为[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的元组。
|
||||
|
|
|
@ -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为True,shape应为[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为True,shape应为[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的元组。
|
||||
|
|
|
@ -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) - 表示专家并行数,只有在应用混合专家结构(MoE,Mixture 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) - 表示专家并行数,只有在应用混合专家结构(MoE,Mixture 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()
|
||||
|
||||
|
|
|
@ -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。
|
||||
|
|
|
@ -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的子类。
|
||||
|
|
Loading…
Reference in New Issue