Softmax#

  • Domain: ai.onnx

  • Since version: 13

The operator computes the normalized exponential values for the given input. The “axis” attribute indicates the dimension along which Softmax is performed. The output tensor has the same shape as the input tensor.

Inputs

  • input (T): The input tensor of rank >= axis.

Outputs

  • output (T): The output values with the same shape as the input tensor.

Attributes

  • axis (int): Describes the dimension Softmax will be performed on. Negative value means counting dimensions from the back.

Type Constraints

  • T: Constrain input and output types to float tensors. Allowed types: tensor(bfloat16), tensor(double), tensor(float), tensor(float16).

Examples#

test_cc_softmax

Node:
  Softmax(input) -> (output)
  Attributes:
    axis = 1
Inputs:
  input: shape=(2, 3), dtype=float32
    [[1., 2., 3.],
     [1., 2., 3.]]

Outputs:
  output: shape=(2, 3), dtype=float32
    [[0.09003057, 0.24472848, 0.66524094],
     [0.09003057, 0.24472848, 0.66524094]]

test_cc_softmax_default_axis

Node:
  Softmax(input) -> (output)
Inputs:
  input: shape=(2, 3), dtype=float32
    [[ 1.,  2.,  3.],
     [ 4.,  1., -1.]]

Outputs:
  output: shape=(2, 3), dtype=float32
    [[0.09003057, 0.24472848, 0.66524094],
     [0.94649917, 0.04712342, 0.00637746]]

Differences with previous version (11)#

SchemaDiff: Softmax (domain 'ai.onnx')

  • old version: 11

  • new version: 13

  • breaking: yes

Breaking reasons:

  • attribute ‘axis’ (changed): default value changed 1 -> -1

Attributes:

  • [BREAKING] changed ‘axis’: default value changed 1 -> -1

Type constraints:

  • changed ‘T’: added types: [‘tensor(bfloat16)’]

Version History#