Softmax函数及其梯度求导
已剪辑自: https://www.cnblogs.com/alexanderkun/p/8098781.html
Softmax函数定义
假设一个数组,那么
的softmax函数输出值为:
,K为数组长度
Pytorch中softmax函数
torch.nn.Softmax(dim=None)
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:
Shape:
Input:
(*)
where*
means, any number of additional dimensions
- Output:(*)
, same shape as the inputReturns:
a Tensor of the same dimension and shape as the input with values in the range [0, 1]
- Arguments:
dim (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
>>> m = nn.Softmax(dim=1)
# softmax只针对于某一个维度进行rescale
>>> input = torch.randn(2, 3)
>>> output = m(input)