评价此页

Softmax#

class torch.nn.Softmax(dim=None)[source]#

对 n 维输入张量应用 Softmax 函数。

重新缩放这些值,使得 n 维输出张量的元素位于 [0,1] 范围内,并且它们的和为 1。

Softmax 定义为

Softmax(xi)=exp(xi)jexp(xj)\text{Softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}

当输入张量是稀疏张量时,未指定的值被视为 -inf

形状
  • 输入: ()(*),其中 * 表示任何数量的附加维度

  • 输出: ()(*),与输入形状相同

返回

一个维度和形状与输入相同的张量,其值在 [0, 1] 范围内

参数

dim (int) – 计算 Softmax 的维度(因此沿 dim 的每个切片将求和为 1)。

返回类型

注意

此模块不能直接与 NLLLoss 一起使用,NLLLoss 需要在 Softmax 和它自身之间计算 Log。请改用 LogSoftmax(它更快,并且具有更好的数值特性)。

示例

>>> m = nn.Softmax(dim=1)
>>> input = torch.randn(2, 3)
>>> output = m(input)