参考来源:
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 torchimport torch.nn.functional as Flogits = 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]])"""
