mindspore.ops.softmin

mindspore.ops.softmin(x, axis=- 1, *, dtype=None)[源代码]

在指定轴上对输入Tensor执行Softmin函数做归一化操作。假设指定轴 \(x\) 上有切片,那么每个元素 \(x_i\) 所对应的Softmin函数如下所示:

\[\text{output}(x_i) = \frac{exp(-x_i)}{\sum_{j = 0}^{N-1}\exp(-x_j)},\]

其中 \(N\) 代表Tensor的长度。

参数:
  • x (Tensor) - Softmin的输入,其数据类型为float16或float32。其shape为 \((N, *)\) ,其中 \(*\) 为任意数量的额外维度。

  • axis (Union[int, tuple[int]], 可选) - 指定Softmin操作的轴。默认值:-1。

关键字参数:
  • dtype (mindspore.dtype, 可选) - 如果设置此参数,则会在执行之前将 x 转换为指定的类型,返回的Tensor类型也将为指定类型 dtype。默认值:None。

返回:

Tensor,数据类型和shape与 x 相同。

异常:
  • TypeError - axis 不是int或者tuple。

  • TypeError - x 的数据类型既不是float16也不是float32。

  • ValueError - axis 是长度小于1的tuple。

  • ValueError - axis 是一个tuple,其元素不全在[-len(x.shape), len(x.shape))范围中。

支持平台:

Ascend GPU CPU

样例:

>>> x = Tensor(np.array([-1, -2, 0, 2, 1]), mindspore.float16)
>>> output = ops.softmin(x)
>>> print(output)
[0.2341  0.636  0.0862  0.01165  0.03168 ]