参考来源:
CSDN:Pytorch 学习笔记(七): F.softmax() 和 F.log_softmax() 函数详解
softmax
1. 函数语法格式和作用
F.softmax()
作用:
按照行或者列来做归一化的
F.softmax()
函数语言格式:
# 0是对列做归一化,1是对行做归一化
F.softmax(x,dim=1) 或者 F.softmax(x,dim=0)
F.log_softmax()
作用:
在 softmax 的结果上再做多一次 log 运算。
F.log_softmax()
函数语言格式:
F.log_softmax(x,dim=1) 或者 F.log_softmax(x,dim=0)
2. 参数解释
x
指的是输入矩阵。
dim
指的是归一化的方式,如果为 0 是对列做归一化,1 是对行做归一化。
3. 具体代码
import torch
import torch.nn.functional as F
logits = torch.rand(2, 2)
pred = F.softmax(logits, dim=1)
pred1 = F.log_softmax(logits, dim=1)
print('logits:\n', logits)
print('F.softmax(logits, dim=1):\n', pred)
print('F.log_softmax(logits, dim=1):\n', pred1)
结果:
"""output:
logits:
tensor([[0.9320, 0.5148],
[0.5161, 0.2854]])
F.softmax(logits, dim=1):
tensor([[0.6028, 0.3972],
[0.5574, 0.4426]])
F.log_softmax(logits, dim=1):
tensor([[-0.5062, -0.9233],
[-0.5844, -0.8151]])
"""