本篇主要分析softmax函数中的dim参数
首先介绍一下softmax函数:
设 x = [1,2,3]
则softmax(x)= [ e 1 e 1 + e 2 + e 3 \frac{e^1}{e^1+e^2+e^3} e1+e2+e3e1 , e 2 e 1 + e 2 + e 3 \frac{e^2}{e^1+e^2+e^3} e1+e2+e3e2 , e 3 e 1 + e 2 + e 3 \frac{e^3}{e^1+e^2+e^3} e1+e2+e3e3]
接下来分析torch.nn里面的softmax函数
y = torch.rand(size=[2,2,3])
print(y)
#y的size是2,2,3。可以看成有两张表,每张表2行3列
tensor([[[0.7536, 0.2712, 0.4176],
[0.2008, 0.9512, 0.4904]],
[[0.2232, 0.7459, 0.9858],
[0.9141, 0.0604, 0.4307]]])
net_1 = nn.Softmax(dim=0)
net_2 = nn.Softmax(dim=1)
net_3 = nn.Softmax(dim=2)
print('dim=0的结果是:\n',net_1(y),"\n"