nn.Softmax(dim=1)(outputs) 与 torch.max(probs, 1)[1]的理解

  已知在模型训练之后,会得出一个outputs,后遇到torch.max(probs, 1)[1]这行代码,不是很清楚它的意思,所以对其进行逐步调试,理清了思路:

outputs = model(inputs)
probs = nn.Softmax(dim=1)(outputs) # 得出一个(batch_size, 101)的Tensor, 指的是outputs在维度1,即每行上的元素相加等于1,即每个视频动作分别属于101个动作的概率相加等于1
# tupleProbs = torch.max(probs, 1)
# typeProbs = torch.max(probs, 1)[0]
# indexProbs = torch.max(probs, 1)[1]
# print(typeProbs)
# print(indexProbs)
preds = torch.max(probs, 1)[1]
# torch.max(probs, 1)是一个2元tuple, 两个元素都是一个(20,)维的Tensor,
# 第一个Tensor : (torch.max(probs, 1)[1])内存放的是batch_size个视频所预测的最大动作概率, 如第一轮的20个概率值[0.2508, 0.3159, ... , 0.2173, 0.2409]
# 第一个Tensor : (torch.max(probs, 1)[0])内存放的是batch_size个视频所预测的最大动作概率的下标, 即所属的类别标签,如第一轮的20个类别标签[55, 53, ... , 78, 38]

  在代码中设置三个断点:
在这里插入图片描述  可以看到torch.max(probs, 1)的值是一个2元tuple
在这里插入图片描述  分别输出typeProbs = torch.max(probs, 1)[0] 与 indexProbs = torch.max(probs, 1)[1]的值,也可以加以验证
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值