Softmax

Softmax#

class brainpy.dnn.Softmax(dim=None)[source]#

Applies the Softmax function to an n-dimensional input Tensor rescaling them so that the elements of the n-dimensional output Tensor lie in the range [0,1] and sum to 1.

Softmax is defined as:

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

When the input Tensor is a sparse tensor then the unspecified values are treated as -inf.

Shape:
  • Input: \((*)\) where * means, any number of additional dimensions

  • Output: \((*)\), same shape as the input

Returns:

  • a Tensor of the same dimension and shape as the input with

  • values in the range [0, 1]

Parameters:
  • dim (Optional[int]) – A dimension along which Softmax will be computed (so every slice along dim will sum to 1).

  • note:: (..) – This module doesn’t work directly with NLLLoss, which expects the Log to be computed between the Softmax and itself. Use LogSoftmax instead (it’s faster and has better numerical properties).

Examples

>>> import brainpy as bp
>>> import brainpy.math as bm
>>> m = bp.dnn.Softmax(dim=1)
>>> input = bm.random.randn(2, 3)
>>> output = m(input)
update(input)[source]#

The function to specify the updating rule.

Return type:

TypeVar(ArrayType, Array, Variable, TrainVar, Array, ndarray)