torch.nn.Softmax(dim=0,1,2)

文章目录

1.基础概念讲解

1.1 softmax函数

softmax函数:又称 归一化指数函数,是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来
作用:模型已经有分类预测结果以后,将预测结果输入softmax函数,进行非负性和归一化处理,最后得到0-1之内的分类概率

1.2 softmax函数计算方法

图示:

torch.nn.Softmax(dim=0,1,2)

; 1.3 softmax函数公式

softmax函数:

torch.nn.Softmax(dim=0,1,2)

1.4 softmax函数项目代码展示

以下代码只是一个项目中的一部分,主要是看softmax函数:

            sm = torch.nn.Softmax(dim=1)
            scores = sm(model(inputs))

model(inputs)输出为:

torch.nn.Softmax(dim=0,1,2)

torch.nn.Softmax(dim=0,1,2)
注:512为图片张数,2为两类各自的概率
经过softmax函数,进行归一化处理,得到scores为:
torch.nn.Softmax(dim=0,1,2)

torch.nn.Softmax(dim=0,1,2)

2.测试代码

先假设y为一个[2,2,3]的张量

import torch
import torch.nn as nn

y = torch.tensor([[[1.,2.,3.],[4.,5.,6.]],[[7.,8.,9.],[10.,11.,12.]]])

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")
print('dim=1的结果是:\n',net_2(y),"\n")
print('dim=2的结果是:\n',net_3(y),"\n")

3.结果

3.1 y

torch.nn.Softmax(dim=0,1,2)
对于y可以分三个方向:

; 3.1.1 x和y方向:

torch.nn.Softmax(dim=0,1,2)

3.1.2 z方向:

torch.nn.Softmax(dim=0,1,2)

; 3.2 dim=0的结果

torch.nn.Softmax(dim=0,1,2)
解析:
dim = 0指第一个维度,在本例中第一个维度指[2,2,3]中的第一个2,即下图中红色的中括号,红框中包含两组数据(绿色和蓝色),每组数据大小为2*3的矩阵。dim=0也就是在下图中先沿着x轴方向考虑:
torch.nn.Softmax(dim=0,1,2)

将绿色2*3矩阵中的所有数据相加,求均值:

torch.nn.Softmax(dim=0,1,2)

将蓝色2*3矩阵中的所有数据相加,求均值:

torch.nn.Softmax(dim=0,1,2)
用softmax函数计算:
torch.nn.Softmax(dim=0,1,2)
torch.nn.Softmax(dim=0,1,2)

3.3 dim=1的结果

torch.nn.Softmax(dim=0,1,2)
解析:
dim = 1指第二个维度,在本例中第二个维度指[2,2,3]中的第二个2,即下图中红色的中括号,红框中包含两组数据(绿色和黄色)。dim=1也就是在下图中先沿着y轴方向考虑:
torch.nn.Softmax(dim=0,1,2)
将绿色数据相加,求均值:
torch.nn.Softmax(dim=0,1,2)
将黄色数据相加,求均值:
torch.nn.Softmax(dim=0,1,2)
用softmax函数计算:
torch.nn.Softmax(dim=0,1,2)
torch.nn.Softmax(dim=0,1,2)

; 3.4 dim=2的结果

torch.nn.Softmax(dim=0,1,2)
解析:
dim = 2指第三个维度,在本例中第三个维度指[2,2,3]中的第三个3,即下图中红色的中括号,每一列包含一组数据,一共三组数据(绿色,黄色,棕色):
torch.nn.Softmax(dim=0,1,2)
将绿色数据相加,求均值:

torch.nn.Softmax(dim=0,1,2)
将黄色数据相加,求均值:
torch.nn.Softmax(dim=0,1,2)
将棕色数据相加,求均值:
torch.nn.Softmax(dim=0,1,2)
用softmax函数计算:
torch.nn.Softmax(dim=0,1,2)
torch.nn.Softmax(dim=0,1,2)
torch.nn.Softmax(dim=0,1,2)

Original: https://blog.csdn.net/weixin_49883619/article/details/121880326
Author: 计算机量子狗
Title: torch.nn.Softmax(dim=0,1,2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/614580/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球