LogSoftMax

Versioned name : LogSoftmax-5

Category : Activation function

Short description : LogSoftmax computes the natural logarithm of softmax values for the given input.

Note : This is recommended to not compute LogSoftmax directly as Log(Softmax(x, axis)), more numeric stable is to compute LogSoftmax as:

\[\begin{split}t = (x - ReduceMax(x,\ axis)) \\ LogSoftmax(x, axis) = t - Log(ReduceSum(Exp(t),\ axis))\end{split}\]

Attributes

  • axis

    • Description : axis represents the axis of which the LogSoftmax is calculated. Negative value means counting dimensions from the back.

    • Range of values : any integer value

    • Type : int

    • Default value : 1

    • Required : no

Inputs :

  • 1 : Input tensor x of type T with enough number of dimension to be compatible with axis attribute. Required.

Outputs :

  • 1 : The resulting tensor of the same shape and of type T.

Types

  • T : any floating-point type.

Mathematical Formulation

\[y_{c} = ln\left(\frac{e^{Z_{c}}}{\sum_{d=1}^{C}e^{Z_{d}}}\right)\]

where \(C\) is a size of tensor along axis dimension.

Example

<layer ... type="LogSoftmax" ... >
    <data axis="1" />
    <input>
        <port id="0">
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </input>
    <output>
        <port id="3">
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </output>
</layer>