log_softmax

paddle.fluid.layers.log_softmax(input, axis=None, dtype=None, name=None)[源代码]

log_softmax激活层:

\[\begin{split}\\output = \frac{1}{1 + e^{-input}}\\\end{split}\]

参数

  • input (Variable) - 任意维度的多维 Tensor ,数据类型为float32或float64。
  • axis (int, 可选) - 指示进行LogSoftmax计算的维度索引,其范围应为 \([-1,rank-1]\) ,其中rank是输入变量的秩。默认值:None(与-1效果相同,表示对最后一维做LogSoftmax操作)。
  • dtype (np.dtype|core.VarDesc.VarType|str) - 期望输出``Tensor``的数据类型。如果指定了``dtype``,输入tensor的数据类型将在计算前被转换为``dtype``类型,可以有效防止数据溢出。默认值:None。支持的类型:float32或float64。
  • name (str, 可选) - 具体用法请参见 Name ,一般无需设置,默认值为None。

返回

表示log_softmax操作结果的 Tensor ,数据类型和 dtype 或者 input 一致,返回维度和 input 一致。

返回类型

Variable

代码示例

import paddle.fluid as fluid
import numpy as np

data = np.array([[[-2.0, 3.0, -4.0, 5.0],
                [3.0, -4.0, 5.0, -6.0],
                [-7.0, -8.0, 8.0, 9.0]],
                [[1.0, -2.0, -3.0, 4.0],
                [-5.0, 6.0, 7.0, -8.0],
                [6.0, 7.0, 8.0, 9.0]]]).astype('float32')
with fluid.dygraph.guard():
    data = fluid.dygraph.to_variable(data)
    res = fluid.layers.log_softmax(data, -1)
    # [[[ -7.1278396   -2.1278396   -9.127839    -0.12783948]
    #   [ -2.1270514   -9.127051    -0.12705144 -11.127051  ]
    #   [-16.313261   -17.313261    -1.3132617   -0.31326184]]
    #  [[ -3.0518122   -6.051812    -7.051812    -0.051812  ]
    #   [-12.313267    -1.3132664   -0.3132665  -15.313267  ]
    #   [ -3.4401896   -2.4401896   -1.4401896   -0.44018966]]]