torch.nn.functional.F.softmax
公式
import numpy as np
import torch
import torch.nn.functional as F
def my_softmax(x):
exp_x = np.exp(x)
return exp_x/np.sum(exp_x)
x = np.array([1.5, 2.2, 3.1, 0.9, 1.2, 1.7])
xt = torch.from_numpy(x)
print('F.softmax:', F.softmax(xt))
print('my_softmax', my_softmax(x))
结果一致
从源码上来看,torch.nn.functional.F.softmax实际上调用的是Tensor自身的softmax函数
torch.nn.functional.F.softmax
公式
import numpy as np
import torch
import torch.nn.functional as F
def my_softmax(x):
exp_x = np.exp(x)
return exp_x/np.sum(exp_x)
def my_log_softmax(x):
return np.log(my_softmax(x))
x = np.array([1.5, 2.2, 3.1, 0.9, 1.2, 1.7])
xt = torch.from_numpy(x)
print('F.softmax:', F.log_softmax(xt))
print('my_softmax', my_log_softmax(x))
结果一致