softmax

    该OP实现了softmax层。OP的计算过程如下:

    步骤1:输入 inputaxis 维会被置换到最后一维;

    步骤2:将输入 Tensor 在逻辑上变换为二维矩阵。二维矩阵第一维(列长度)是输入除最后一维之外的其他维度值的乘积,第二维(行长度)和输入 维的长度相同;对于矩阵的每一行,softmax操作对其进行重新缩放,使得该行的每个元素在 [0,1] 范围内,并且总和为1;

    步骤3:softmax操作执行完成后,执行步骤1和步骤2的逆运算,将二维矩阵恢复至和输入 input 相同的维度。

    上述步骤2中softmax操作计算过程如下:

    对于二维矩阵中的第i行和第j列有:

    • 示例2(矩阵一共有三维。axis = 1,表示沿着第二维做softmax操作)

    参数:

    • input (Variable) - 任意维度的多维 Tensor ,数据类型为float32或float64。

    • name (str, 可选) - 具体用法请参见 ,一般无需设置,默认值为None。

    • axis (int, 可选) - 指示进行softmax计算的维度索引,其范围应为

      softmax - 图1

      ,其中rank是输入变量的秩。默认值:-1(表示对最后一维做softmax操作)。

    返回:表示softmax操作结果的 Tensor ,数据类型和 input 一致,返回维度和 input 一致。

    代码示例