forked from mindspore-Ecosystem/mindspore
!27919 optimize the documentation of chinese API of ELU, ReLU, Tril, etc.
Merge pull request !27919 from wangshuide/code_docs_wsd_master1
This commit is contained in:
commit
4045601345
|
@ -10,10 +10,11 @@ mindspore.nn.ELU
|
|||
.. math::
|
||||
E_{i} =
|
||||
\begin{cases}
|
||||
x, &\text{if } x \geq 0; \cr
|
||||
\text{alpha} * (\exp(x_i) - 1), &\text{otherwise.}
|
||||
x_i, &\text{if } x_i \geq 0; \cr
|
||||
\alpha * (\exp(x_i) - 1), &\text{otherwise.}
|
||||
\end{cases}
|
||||
|
||||
其中,:math:`x_i` 表示输入的元素,:math:`\alpha` 表示 `alpha` 参数。
|
||||
|
||||
ELU相关图参见 `ELU <https://en.wikipedia.org/wiki/Activation_function#/media/File:Activation_elu.svg>`_ 。
|
||||
|
||||
|
@ -23,11 +24,11 @@ mindspore.nn.ELU
|
|||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 用于计算ELU的Tensor,数据类型为float16或float32。shape为 :math:`(N,*)` , :math:`*` 表示任意的附加维度数。
|
||||
- **x** (Tensor) - 用于计算ELU的任意维度的Tensor,数据类型为float16或float32。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,具有与 `x` 相同的数据类型和shape。
|
||||
Tensor,数据类型和shape与 `x` 相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@ mindspore.nn.Flatten
|
|||
|
||||
.. py:class:: mindspore.nn.Flatten
|
||||
|
||||
对输入Tensor的第0维的batch size之外的维度进行展平操作。
|
||||
对输入Tensor的第0维之外的维度进行展平操作。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 要展平的输入Tensor。shape为 :math:`(N,*)`,其中 :math:`*` 表示任意的附加维度数。数据类型为Number。
|
||||
- **x** (Tensor) - 要展平的输入Tensor。shape为 :math:`(N, *)`,其中 :math:`*` 表示任意的附加维度。数据类型为 `number <https://www.mindspore.cn/docs/api/zh-CN/master/api_python/mindspore.html#mindspore.dtype>`_。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape为 :math:`(N,X)`,其中 :math:`X` 是输入 `x` 的shape除N之外的其余维度的乘积。
|
||||
Tensor,shape为 :math:`(N, X)`,其中 :math:`X` 是输入 `x` 的shape除N之外的其余维度的乘积。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
@ -30,7 +30,7 @@ mindspore.nn.Flatten
|
|||
[[1.2 1.2 2.1 2.1]
|
||||
[2.2 2.2 3.2 3.2]]
|
||||
>>> print(f"Before flatten the x shape is {x.shape}.")
|
||||
展平前x的shape为(2, 2, 2)
|
||||
Before flatten the x shape is (2, 2, 2)
|
||||
>>> print(f"After flatten the output shape is {output.shape}.")
|
||||
展平后输出的shape为(2, 4)
|
||||
After flatten the output shape is (2, 4)
|
||||
|
|
@ -3,9 +3,9 @@ mindspore.nn.L1Loss
|
|||
|
||||
.. py:class:: mindspore.nn.L1Loss(reduction='mean')
|
||||
|
||||
L1Loss用于测量 :math:`x` 和 :math:`y` 元素之间的平均绝对误差(MAE),其中 :math:`x` 是输入Tensor和 :math:`y` 是标签Tensor。
|
||||
L1Loss用于计算预测值和目标值之间的平均绝对误差。
|
||||
|
||||
假设 :math:`x` 和 :math:`y` 为一维Tensor,长度 :math:`N` ,则计算 :math:`x` 和 :math:`y` 的unreduced loss(即reduction参数设置为"none")的公式如下:
|
||||
假设 :math:`x` 和 :math:`y` 为一维Tensor,长度 :math:`N` ,则计算 :math:`x` 和 :math:`y` 的loss而不进行降维操作(即reduction参数设置为"none")的公式如下:
|
||||
|
||||
.. math::
|
||||
\ell(x, y) = L = \{l_1,\dots,l_N\}^\top, \quad \text{with } l_n = \left| x_n - y_n \right|,
|
||||
|
@ -21,20 +21,21 @@ mindspore.nn.L1Loss
|
|||
|
||||
**参数:**
|
||||
|
||||
**reduction** (str) - 应用于loss的reduction类型。取值为"mean","sum",或"none"。默认值:"mean"。
|
||||
**reduction** (str) - 应用于loss的reduction类型。取值为"mean","sum",或"none"。默认值:"mean"。如果 `reduction` 为'mean'或'sum',则输出一个标量Tensor;如果 `reduction` 为'none',则输出Tensor的shape为广播后的shape。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **logits** (Tensor) - shape为 :math:`(N, *)` 的tensor,其中 :math:`*` 表示任意的附加维度。
|
||||
- **labels** (Tensor) - shape为 :math:`(N, *)` 的tensor,在通常情况下与 `logits` 的shape相同。但是如果 `logits` 和 `labels` 的shape不同,需要保证他们之间可以互相广播。
|
||||
- **logits** (Tensor) - 预测值,任意维度的Tensor。
|
||||
- **labels** (Tensor) - 目标值,通常情况下与 `logits` 的shape相同。但是如果 `logits` 和 `labels` 的shape不同,需要保证他们之间可以互相广播。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,为loss float tensor,如果 `reduction` 为'mean'或'sum',则shape为零;如果 `reduction` 为'none',则输出的shape为广播的shape。
|
||||
Tensor,类型为float。
|
||||
|
||||
**异常:**
|
||||
|
||||
**ValueError** - `reduction` 不为"mean"、"sum"或"none"。
|
||||
**ValueError** - `logits` 和 `labels` 的shape不同,且不能互相广播。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
|
@ -42,14 +43,14 @@ mindspore.nn.L1Loss
|
|||
|
||||
**样例:**
|
||||
|
||||
>>> #用例1:logits.shape = labels.shape = (3,)
|
||||
>>> # case1:logits.shape = labels.shape = (3,)
|
||||
>>> loss = nn.L1Loss()
|
||||
>>> logits = Tensor(np.array([1, 2, 3]), mindspore.float32)
|
||||
>>> labels = Tensor(np.array([1, 2, 2]), mindspore.float32)
|
||||
>>> output = loss(logits, labels)
|
||||
>>> print(output)
|
||||
0.33333334
|
||||
>>> #用例2:logits.shape = (3,), labels.shape = (2, 3)
|
||||
>>> # case2:logits.shape = (3,), labels.shape = (2, 3)
|
||||
>>> loss = nn.L1Loss(reduction='none')
|
||||
>>> logits = Tensor(np.array([1, 2, 3]), mindspore.float32)
|
||||
>>> labels = Tensor(np.array([[1, 1, 1], [1, 2, 2]]), mindspore.float32)
|
||||
|
|
|
@ -5,12 +5,13 @@ mindspore.nn.LeakyReLU
|
|||
|
||||
Leaky ReLU激活函数。
|
||||
|
||||
LeakyReLU与ReLU相似,但LeakyReLU有一个斜率,使其在x<0时不等于0,该激活函数定义如下:
|
||||
该激活函数定义如下:
|
||||
|
||||
.. math::
|
||||
\text{leaky_relu}(x) = \begin{cases}x, &\text{if } x \geq 0; \cr
|
||||
\text{alpha} * x, &\text{otherwise.}\end{cases}
|
||||
{\alpha} * x, &\text{otherwise.}\end{cases}
|
||||
|
||||
其中,:math:`\alpha` 表示 `alpha` 参数。
|
||||
|
||||
更多细节详见 `Rectifier Nonlinearities Improve Neural Network Acoustic Models <https://ai.stanford.edu/~amaas/papers/relu_hybrid_icml2013_final.pdf>`_。
|
||||
|
||||
|
@ -20,11 +21,11 @@ mindspore.nn.LeakyReLU
|
|||
|
||||
**输入:**
|
||||
|
||||
**x** (Tensor) - LeakyReLU的输入。shape为 :math:`(N, *)` ,其中 :math:`*` 表示任意的附加维度数。
|
||||
**x** (Tensor) - 计算LeakyReLU的任意维度的Tensor。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape和数据类型与 `x` 的相同。
|
||||
Tensor,数据类型和shape与 `x` 相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
@ -36,9 +37,9 @@ mindspore.nn.LeakyReLU
|
|||
|
||||
**样例:**
|
||||
|
||||
>>> x = Tensor(np.array([[-1.0, 4.0, -8.0], [2.0, -5.0, 9.0]]), mindspore.float32)
|
||||
>>> leaky_relu = nn.LeakyReLU()
|
||||
>>> output = leaky_relu(x)
|
||||
>>> print(output)
|
||||
[[-0.2 4. -1.6]
|
||||
[ 2. -1. 9. ]]
|
||||
>>> x = Tensor(np.array([[-1.0, 4.0, -8.0], [2.0, -5.0, 9.0]]), mindspore.float32)
|
||||
>>> leaky_relu = nn.LeakyReLU()
|
||||
>>> output = leaky_relu(x)
|
||||
>>> print(output)
|
||||
[[-0.2 4. -1.6]
|
||||
[ 2. -1. 9. ]]
|
|
@ -3,18 +3,16 @@ mindspore.nn.Moments
|
|||
|
||||
.. py:class:: mindspore.nn.Moments(axis=None, keep_dims=None)
|
||||
|
||||
计算 `x` 的均值和方差。
|
||||
|
||||
均值和方差是通过聚合 `x` 在 `axis` 上的值来计算的。特别的,如果 `x` 是1-D的Tensor, `axis` 等于0,这相当于计算向量的均值和方差。
|
||||
沿指定轴 `axis` 计算输入 `x` 的均值和方差。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **axis** (Union[int, tuple(int), None]) - 沿指定 `axis` 计算均值和方差,值为None时代表计算 `x` 所有值的均值和方差。默认值:None。
|
||||
- **keep_dims** (Union[bool, None]) - 如果为True,计算结果会保留 `axis` 的维度,即均值和方差的维度与输入的相同。如果为False或None,则会消减 `axis` 的维度。默认值:None。
|
||||
- **axis** (Union[int, tuple(int), None]) - 沿指定轴 `axis` 计算均值和方差,值为None时代表计算 `x` 所有值的均值和方差。默认值:None。
|
||||
- **keep_dims** (Union[bool, None]) - 如果为True,计算结果会保留 `axis` 的维度,即均值和方差的维度与输入的相同。如果为False或None,则会降低 `axis` 的维度。默认值:None。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 用于计算均值和方差的Tensor。数据类型仅支持float16和float32。shape为 :math:`(N,*)`, 其中 :math:`*` 表示任意的附加维度数。
|
||||
- **x** (Tensor) - 用于计算均值和方差的任意维度的Tensor。数据类型仅支持float16和float32。
|
||||
|
||||
**输出:**
|
||||
|
||||
|
@ -33,38 +31,37 @@ mindspore.nn.Moments
|
|||
|
||||
**样例:**
|
||||
|
||||
>>> x = Tensor(np.array([[[[1, 2, 3, 4], [3, 4, 5, 6]]]]), mindspore.float32)
|
||||
>>> # case1: axis = 0, keep_dims=True
|
||||
>>> x = Tensor(np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]), mindspore.float32)
|
||||
>>> net = nn.Moments(axis=0, keep_dims=True)
|
||||
>>> output = net(x)
|
||||
>>> print(output)
|
||||
(Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
|
||||
[[[[ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00, 4.00000000e+00],
|
||||
[ 3.00000000e+00, 4.00000000e+00, 5.00000000e+00, 6.00000000e+00]]]]),
|
||||
Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
|
||||
[[[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
|
||||
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]]]))
|
||||
(Tensor(shape=[1, 2, 2], dtype=Float32, value=
|
||||
[[[ 3.00000000e+00, 4.00000000e+00],
|
||||
[ 5.00000000e+00, 6.00000000e+00]]]), Tensor(shape=[1, 2, 2], dtype=Float32, value=
|
||||
[[[ 4.00000000e+00, 4.00000000e+00],
|
||||
[ 4.00000000e+00, 4.00000000e+00]]]))
|
||||
>>> # case2: axis = 1, keep_dims=True
|
||||
>>> net = nn.Moments(axis=1, keep_dims=True)
|
||||
>>> output = net(x)
|
||||
>>> print(output)
|
||||
(Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
|
||||
[[[[ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00, 4.00000000e+00],
|
||||
[ 3.00000000e+00, 4.00000000e+00, 5.00000000e+00, 6.00000000e+00]]]]),
|
||||
Tensor(shape=[1, 1, 2, 4], dtype=Float32, value=
|
||||
[[[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
|
||||
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]]]))
|
||||
>>> net = nn.Moments(axis=2, keep_dims=True)
|
||||
(Tensor(shape=[2, 1, 2], dtype=Float32, value=
|
||||
[[[ 2.00000000e+00, 3.00000000e+00]],
|
||||
[[ 6.00000000e+00, 7.00000000e+00]]]), Tensor(shape=[2, 1, 2], dtype=Float32, value=
|
||||
[[[ 1.00000000e+00, 1.00000000e+00]],
|
||||
[[ 1.00000000e+00, 1.00000000e+00]]]))
|
||||
>>> # case3: axis = 2, keep_dims=None(default)
|
||||
>>> net = nn.Moments(axis=2)
|
||||
>>> output = net(x)
|
||||
>>> print(output)
|
||||
(Tensor(shape=[1, 1, 1, 4], dtype=Float32, value=
|
||||
[[[[ 2.00000000e+00, 3.00000000e+00, 4.00000000e+00, 5.00000000e+00]]]]),
|
||||
Tensor(shape=[1, 1, 1, 4], dtype=Float32, value=
|
||||
[[[[ 1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00]]]]))
|
||||
>>> net = nn.Moments(axis=3, keep_dims=True)
|
||||
(Tensor(shape=[2, 2], dtype=Float32, value=
|
||||
[[ 1.50000000e+00, 3.50000000e+00],
|
||||
[ 5.50000000e+00, 7.50000000e+00]]), Tensor(shape=[2, 2], dtype=Float32, value=
|
||||
[[ 2.50000000e-01, 2.50000000e-01],
|
||||
[ 2.50000000e-01, 2.50000000e-01]]))
|
||||
>>> # case4: axis = None(default), keep_dims=None(default)
|
||||
>>> net = nn.Moments()
|
||||
>>> output = net(x)
|
||||
>>> print(output)
|
||||
(Tensor(shape=[1, 1, 2, 1], dtype=Float32, value=
|
||||
[[[[ 2.50000000e+00],
|
||||
[ 4.50000000e+00]]]]), Tensor(shape=[1, 1, 2, 1], dtype=Float32, value=
|
||||
[[[[ 1.25000000e+00],
|
||||
[ 1.25000000e+00]]]]))
|
||||
(Tensor(shape=[], dtype=Float32, value= 4.5), Tensor(shape=[], dtype=Float32, value= 5.25))
|
||||
|
|
@ -5,7 +5,7 @@ mindspore.nn.ReLU
|
|||
|
||||
修正线性单元激活函数(Rectified Linear Unit activation function)。
|
||||
|
||||
按元素返回 :math:`\max(x,\ 0)` 。特别说明,负数输出值会被修改为0,正数输出不受影响。
|
||||
逐元素求 :math:`\max(x,\ 0)` 。特别说明,负数输出值会被修改为0,正数输出不受影响。
|
||||
|
||||
.. math::
|
||||
|
||||
|
@ -15,15 +15,15 @@ mindspore.nn.ReLU
|
|||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor) - 用于计算ReLU的Tensor。数据类型为Number。shape为 :math:`(N,*)` ,其中 :math:`*` 表示任意的附加维度数。
|
||||
- **x** (Tensor) - 用于计算ReLU的任意维度的Tensor。数据类型为 `number <https://www.mindspore.cn/docs/api/zh-CN/master/api_python/mindspore.html#mindspore.dtype>`_。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,具有与 `x` 相同的数据类型和shape。
|
||||
Tensor,数据类型和shape与 `x` 相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `x` 的数据类型不是Number。
|
||||
- **TypeError** - `x` 的数据类型不是number。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
|
|
|
@ -3,38 +3,41 @@ mindspore.nn.SmoothL1Loss
|
|||
|
||||
.. py:class:: mindspore.nn.SmoothL1Loss(beta=1.0)
|
||||
|
||||
创建一个标准来计算loss函数,如果输入的绝对误差小于 `beta` 则用平方项,否则用绝对误差项。
|
||||
SmoothL1损失函数,如果预测值和目标值的逐个元素绝对误差小于设定阈值 `beta` 则用平方项,否则用绝对误差项。
|
||||
|
||||
SmoothL1Loss可以看成 :class:`mindspore.nn.L1Loss` 的修改版本,也可以看成 :class:`mindspore.nn.L1Loss` 和 :class:`mindspore.ops.L2Loss` 的组合。 :class:`mindspore.nn.L1Loss` 计算两个输入Tensor之间的绝对误差,而 :class:`mindspore.ops.L2Loss` 计算两个输入Tensor之间的平方误差。 :class:`mindspore.ops.L2Loss` 通常更快收敛,但对离群值的鲁棒性较差。
|
||||
|
||||
给定两个输入 :math:`x,\ y`,长度为 :math:`N`, unreduced SmoothL1Loss定义如下:
|
||||
给定两个输入 :math:`x,\ y`,SmoothL1Loss定义如下:
|
||||
|
||||
.. math::
|
||||
L_{i} =
|
||||
\begin{cases}
|
||||
\frac{0.5 (x_i - y_i)^{2}}{\text{beta}}, & \text{if } |x_i - y_i| < \text{beta} \\
|
||||
|x_i - y_i| - 0.5 \text{beta}, & \text{otherwise.}
|
||||
\frac{0.5 (x_i - y_i)^{2}}{\beta}, & \text{if } |x_i - y_i| < {\beta} \\
|
||||
|x_i - y_i| - 0.5 {\beta}, & \text{otherwise.}
|
||||
\end{cases}
|
||||
|
||||
其中, :math:`\text{beta}` 控制loss函数从二次变为线性。 默认值为1.0。 :math:`N` 为batch size。该函数返回一个unreduced loss Tensor。
|
||||
其中,:math:`{\beta}` 代表阈值 `beta` 。
|
||||
|
||||
.. note::
|
||||
SmoothL1Loss可以看成 :class:`mindspore.nn.L1Loss` 的修改版本,也可以看成 :class:`mindspore.nn.L1Loss` 和 :class:`mindspore.ops.L2Loss` 的组合。 :class:`mindspore.nn.L1Loss` 计算两个输入Tensor之间的绝对误差,而 :class:`mindspore.ops.L2Loss` 计算两个输入Tensor之间的平方误差。 :class:`mindspore.ops.L2Loss` 通常更快收敛,但对离群值的鲁棒性较差。该损失函数具有较好的鲁棒性。
|
||||
|
||||
**参数:**
|
||||
|
||||
**beta** (float) - 用于控制loss函数从二次变为线性的参数。默认值:1.0。
|
||||
**beta** (float) - 损失函数计算在L1Loss和L2Loss间变换的阈值。默认值:1.0。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **logits** (Tensor) - 预测值,shape为 :math:`(N, *)` 的Tensor,其中 :math:`*` 表示任意的附加维度数。数据类型必须为float16或float32。
|
||||
- **labels** (Tensor) - 目标值,shape为 :math:`(N, *)` 的Tensor,数据类型和shape与 `logits` 相同。
|
||||
- **logits** (Tensor) - 预测值,任意维度Tensor。数据类型必须为float16或float32。
|
||||
- **labels** (Tensor) - 目标值,数据类型和shape与 `logits` 相同的Tensor。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape和数据类型与 `logits` 相同。
|
||||
Tensor,数据类型和shape与 `logits` 相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `beta` 不是float。
|
||||
- **TypeError** - `logits` 或 `labels` 不是Tensor。
|
||||
- **TypeError** - `logits` 或 `labels` 的数据类型既不是float16,也不是float32。
|
||||
- **TypeError** - `logits` 或 `labels` 的数据类型不相同。
|
||||
- **ValueError** - `beta` 小于或等于0。
|
||||
- **ValueError** - `logits` 的shape与 `labels` 不同。
|
||||
|
||||
|
|
|
@ -3,22 +3,20 @@ mindspore.nn.Softmax
|
|||
|
||||
.. py:class:: mindspore.nn.Softmax(axis=-1)
|
||||
|
||||
Softmax激活函数。
|
||||
Softmax函数,它是二分类函数 :class:`mindspore.nn.Sigmoid` 在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。
|
||||
|
||||
计算n维输入Tensor的Softmax函数。
|
||||
|
||||
对输入Tensor在 `axis` 上的元素计算其指数函数值,然后归一化到[0, 1]范围,总和为1。
|
||||
对输入Tensor在轴 `axis` 上的元素计算其指数函数值,然后归一化到[0, 1]范围,总和为1。
|
||||
|
||||
Softmax定义为:
|
||||
|
||||
.. math::
|
||||
\text{softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_{j=0}^{n-1}\exp(x_j)},
|
||||
|
||||
其中, :math:`x_{i}` 是输入Tensor在 `axis` 上的第 :math:`i` 个元素。
|
||||
其中, :math:`x_{i}` 是输入Tensor在轴 `axis` 上的第 :math:`i` 个元素。
|
||||
|
||||
**参数:**
|
||||
|
||||
**axis** (Union[int, tuple[int]]) - 指定Softmax运算的axis,-1表示最后一个维度。默认值:-1。
|
||||
**axis** (Union[int, tuple[int]]) - 指定Softmax运算的轴axis,假设输入 `x` 的维度为x.ndim,则axis的范围为 `[-x.ndim, x.ndim)` ,-1表示最后一个维度。默认值:-1。
|
||||
|
||||
**输入:**
|
||||
|
||||
|
@ -26,7 +24,7 @@ mindspore.nn.Softmax
|
|||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape和数据类型与 `x` 相同,取值范围[0,1]。
|
||||
Tensor,数据类型和shape与 `x` 相同,取值范围为[0, 1]。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
@ -41,9 +39,11 @@ mindspore.nn.Softmax
|
|||
|
||||
**样例:**
|
||||
|
||||
>>> # axis = -1(default), and the sum of return value is 1.0.
|
||||
>>> x = Tensor(np.array([-1, -2, 0, 2, 1]), mindspore.float16)
|
||||
>>> softmax = nn.Softmax()
|
||||
>>> output = softmax(x)
|
||||
>>> print(output)
|
||||
[0.03168 0.01166 0.0861 0.636 0.2341 ]
|
||||
>>> assert(1.0 == output.sum())
|
||||
|
|
@ -3,20 +3,20 @@ mindspore.nn.Tril
|
|||
|
||||
.. py:class:: mindspore.nn.Tril
|
||||
|
||||
返回一个Tensor,其中第 `k` 个对角线以上的元素被置为零。
|
||||
返回一个Tensor,指定主对角线以上的元素被置为零。
|
||||
|
||||
矩阵的下三角把矩阵分成对角线上和对角线下的元素。
|
||||
将矩阵元素沿主对角线分为上三角和下三角(包含对角线)。
|
||||
|
||||
参数 `k` 控制着矩阵的对角线。如果 `k` 为0,则保留主对角线上和下面的所有元素。正值包括主对角线上方尽可能多的对角线,类似地,负值排除主对角线下方尽可能多的对角线。
|
||||
参数 `k` 控制对角线的选择。若 `k` 为0,则沿主对角线分割并保留下三角所有元素。若 `k` 为正值,则沿主对角线向上选择对角线 `k` ,并保留下三角所有元素。若 `k` 为负值,则沿主对角线向下选择对角线 `k` ,并保留下三角所有元素。
|
||||
|
||||
**输入:**
|
||||
|
||||
- **x** (Tensor):输入Tensor。数据类型为Number。shape为 :math:`(N,*)`,其中 :math:`*` 表示任意的附加维度数。
|
||||
- **k** (Int):对角线的索引。默认值:0。
|
||||
- **x** (Tensor):输入Tensor。数据类型为`number <https://www.mindspore.cn/docs/api/zh-CN/master/api_python/mindspore.html#mindspore.dtype>`_。
|
||||
- **k** (int):对角线的索引。默认值:0。假设输入的矩阵的维度分别为d1,d2,则k的范围应在[-min(d1, d2)+1, min(d1, d2)-1],超出该范围时输出值与输入 `x` 一致。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor,shape和数据类型与 `x` 相同。
|
||||
Tensor,数据类型和shape与 `x` 相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
@ -29,6 +29,7 @@ mindspore.nn.Tril
|
|||
|
||||
**样例:**
|
||||
|
||||
>>> # case1: k = 0
|
||||
>>> x = Tensor(np.array([[ 1, 2, 3, 4],
|
||||
... [ 5, 6, 7, 8],
|
||||
... [10, 11, 12, 13],
|
||||
|
@ -40,6 +41,7 @@ mindspore.nn.Tril
|
|||
[ 5 6 0 0]
|
||||
[10 11 12 0]
|
||||
[14 15 16 17]]
|
||||
>>> # case2: k = 1
|
||||
>>> x = Tensor(np.array([[ 1, 2, 3, 4],
|
||||
... [ 5, 6, 7, 8],
|
||||
... [10, 11, 12, 13],
|
||||
|
@ -51,6 +53,7 @@ mindspore.nn.Tril
|
|||
[ 5 6 7 0]
|
||||
[10 11 12 13]
|
||||
[14 15 16 17]]
|
||||
>>> # case3: k = 2
|
||||
>>> x = Tensor(np.array([[ 1, 2, 3, 4],
|
||||
... [ 5, 6, 7, 8],
|
||||
... [10, 11, 12, 13],
|
||||
|
@ -62,6 +65,7 @@ mindspore.nn.Tril
|
|||
[ 5 6 7 8]
|
||||
[10 11 12 13]
|
||||
[14 15 16 17]]
|
||||
>>> # case4: k = -1
|
||||
>>> x = Tensor(np.array([[ 1, 2, 3, 4],
|
||||
... [ 5, 6, 7, 8],
|
||||
... [10, 11, 12, 13],
|
||||
|
|
Loading…
Reference in New Issue