Softmax

torch.nn.Softmax(dim=None)[源代码]

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

将其重新缩放,使输出的 n 维张量中的元素范围在 [0,1] 之间,并且这些元素的总和为 1。

softmax定义如下:

$\text{Softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}$

如果输入张量是稀疏张量,则未指定的值将被视为-inf

形状:
  • 输入: $(*)$,其中 * 表示任意数量的额外维度。

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

返回值

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

参数

dim (int) – 沿此维度计算软最大值(因此沿 dim 的每个切片的总和都为 1)。

返回类型

无内容

注意

此模块不直接与NLLLoss一起使用,因为NLLLoss期望在Softmax之后计算对数值。建议使用LogSoftmax(它更快且具有更好的数值稳定性)。

示例:

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