pytorch -- topk()

本文详细介绍了PyTorch中的topk()函数,用于获取张量中最大或最小的k个值及其索引。通过示例解释了如何在二分类问题中使用topk()来获取最高概率的预测类别。参数包括k(要获取的值的数量)、dim(排序的维度)、largest(是否取最大值)和sorted(是否排序)。在给定的输出张量中,_表示top1的值,pred是对应的最大值索引。
摘要由CSDN通过智能技术生成

 参考 pytorch -- topk() - 云+社区 - 腾讯云

torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)

沿给定dim维度返回输入张量input中 k 个最大值。
如果不指定dim,则默认为input的最后一维。
如果为largest为 False ,则返回最小的 k 个值。

返回一个元组 (values,indices),其中indices是原始输入张量input中测元素下标。
如果设定布尔值sorted 为_True_,将会确保返回的 k 个值被排序。

参数:

  • input (Tensor) – 输入张量
  • k(int) – “top-k”中的k
  • dim (int, optional) – 排序的维
  • largest (bool, optional) – 布尔值,控制返回最大或最小值
  • sorted (bool, optional) – 布尔值,控制返回值是否排序
  • out (tuple, optional) – 可选输出张量 (Tensor, LongTensor) output buffer

假设神经网络的输出如下,为二分类。batch_size=4。

import torch 
output = torch.tensor([
[-5.4783, 0.2298],                           
[-4.2573, -0.4794],                           
[-0.1070, -5.1511],                           
[-0.1785, -4.3339]])

得到其top1值操作如下:


maxk = max((1,))  # 取top1准确率,若取top1和top5准确率改为max((1,5))

_, pred = output.topk(maxk, 1, True, True)

topk参数中,maxk取得是top1准确率,dim=1是按行取值, largest=1是取最大值。结果如下,

_

tensor([[ 0.2298],

        [-0.4794],

        [-0.1070],

        [-0.1785]])
pred

tensor([[1],

        [1],

        [0],

        [0]])

_是top1的值,pred是最大值的索引(size=4*1),一般会进行转置处理同真实值对比。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值