当前位置: 首页 > news >正文

【Pytorch】topk函数

topk 是 PyTorch 中的一个函数,用于从张量中选取最大(或最小)的 k 个元素及其对应的索引。其定义如下:

values, indices = torch.topk(input, k, dim=None, largest=True, sorted=True, *, out=None)

参数说明

  • input (Tensor): 输入张量。
  • k (int): 要选取的最大(或最小)元素的数量。
  • dim (int, 可选): 指定沿着哪个维度进行操作。默认为 None,此时沿着最后一个维度进行操作。
  • largest (bool, 可选): 如果为True,则选取最大的 k 个元素;如果为 False,则选取最小的 k 个元素。默认为 True。
  • sorted (bool, 可选): 如果为 True,则返回的值是排序过的(即最大的值排在前面)。如果为 False,则返回的值是按照它们在原张量中的顺序排列。默认为 True。
  • out (tuple, 可选): 可以指定一个元组来存储输出结果。元组应该包含两个张量,分别用于存储值和索引。默认为None。

代码片段赏析:

    def get_embedding_indices(self, points):r"""Compute the indices of pair-wise distance embedding and triplet-wise angular embedding.Args:points: torch.Tensor (B, N, 3), input point cloudReturns:d_indices: torch.FloatTensor (B, N, N), distance embedding indicesa_indices: torch.FloatTensor (B, N, N, k), angular embedding indices"""batch_size, num_point, _ = points.shapedist_map = torch.sqrt(pairwise_distance(points, points))  # (B, N, N)d_indices = dist_map / self.sigma_dk = self.angle_k##! largest=False的含义是选择K个距离最小的点, dim=2代表从dist_map的第二个维度来选择knn_indices = dist_map.topk(k=k + 1, dim=2, largest=False)[1][:, :, 1:]  # 这里将 dist_map.topk会返回values和indices, 用索引1来取出indices后, 再从所有的knn中去掉自身, 所以取[:, :, 1:] 
http://www.lryc.cn/news/419942.html

相关文章:

  • 使用mybatis注解和xml映射执行javaWeb中增删改查等操作
  • SpringBoot3 响应式编程
  • 【C++ 面试 - 基础题】每日 3 题(二)
  • Modelica建模,Modelica语言的学习,技术调研工作
  • Oracle数据字典之——v$lock 和v$locked_object
  • solidity 以太坊(Ether) 单位(很基础)
  • 关于elementUI 分页 table 使用 toggleRowSelection
  • K8s部署RocketMQ
  • Linux服务管理-Nginx配置
  • C语言典型例题31
  • FFMPEG 工具方法
  • Qt QML 使用QPainterPath绘制弧形曲线和弧形文本
  • VMware虚拟机和Docker的备份与恢复
  • 新加坡服务器延迟大吗?如何进行优化
  • uniapp——列表图片加载太多且空间占用太大的处理方法(降低清晰度)
  • spring+SSM+Mybatis面试题(上)(30道)
  • odoo17 翻译一个小bug
  • sqli-labs-php7-master第5-10关
  • 全方位教程:接入视频美颜SDK与直播美颜插件的完整步骤
  • Apache Curator 分布式锁的介绍,以及案例
  • 自动化测试 — selenium + Java
  • 【SpringBoot系列】接口参数的默认值与必要性
  • 茶余饭后(五)
  • 【网络编程详解】
  • C# winform三层架构 实现增删改查( 显示数据,查询数据 显示,查询篇)
  • Apache Kylin 系列入门教程
  • 如何识别并防御漏洞扫描类攻击
  • 冷思考:低代码的AI Agent构建平台能创造价值吗?
  • Spring Boot如何自定义注解?
  • gin框架传入的gin.context参数是池化的