torch.searchsorted

torch.searchsorted

官方文档链接:torch.searchsorted — PyTorch 2.3 documentation

该函数用于在已排序的序列中查找要插入的值的位置,以保持序列的顺序,

torch.searchsorted(sorted_sequence, values, *, out_int32=False, right=False, side=None, out=None, sorter=None) → Tensor

参数如下,

  • sorted_sequence:这是一个N-D或1-D的张量,其中包含按最内部维度单调递增的序列。如果提供了sorter参数,则序列不需要按顺序排列

  • values:这是一个N-D张量或标量,包含要搜索的值

  • out_int32:这是一个可选参数,用于指示输出数据类型。如果为True,则输出数据类型为torch.int32,否则为torch.int64

  • right:这是一个可选参数,如果为False,则返回找到的第一个合适位置。如果为 True,则返回最后一个索引。如果找不到合适的索引,则对于非数值值(例如nan、inf),返回0,或者返回sorted_sequence内最内部维度的大小(超过最内部维度的最后一个索引)。如果为False,则获取每个值在sorted_sequence相应内部维度上的下限索引,如果为True,则获取上限索引。默认值为False

  • side:这是一个可选参数,"left" 对应于right为 False,"right" 对应于right为 True。如果将其设置为 "left",而right为 True,则会报错。默认值为None。

  • out:这是一个可选参数,输出张量,如果提供,则必须与 values 的大小相同

  • sorter:这是一个可选参数,如果提供,则是一个与未排序的sorted_sequence形状相匹配的张量,其中包含一个按最内部维度升序排列的索引序列

使用示例如下,

sorted_sequence = torch.tensor([[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]])
"""
tensor([[ 1,  3,  5,  7,  9],[ 2,  4,  6,  8, 10]])
"""values = torch.tensor([[3, 6, 9], [3, 6, 9]])
"""
tensor([[3, 6, 9],[3, 6, 9]])
"""torch.searchsorted(sorted_sequence, values)
"""
tensor([[1, 3, 4],[1, 2, 4]])
对于第一行 [3, 6, 9]:
数字3在第一行的sorted_sequence中的位置是索引1
数字6在第一行的sorted_sequence中的位置是索引3(6大于5而小于7,因此将6插入到索引3的位置时,能够使序列保持升序排序)
数字9在第一行的sorted_sequence中的位置是索引4
对于第二行 [3, 6, 9]:
数字3在第二行的sorted_sequence中的位置是索引1(3大于2而小于4,因此当索引为1时,不会改变序列的升序排序)
数字6在第二行的sorted_sequence中的位置是索引2
数字9在第二行的sorted_sequence中的位置是索引4(9大于8而小于10,因此当索引为4时,不会改变序列的升序排序)
"""## 当side='right'时, 函数会返回每个值在对应行的sorted_sequence中的右侧插入位置索引
torch.searchsorted(sorted_sequence, values, side='right')
"""
tensor([[2, 3, 5],[1, 3, 4]])对于第一行 [3, 6, 9]:
数字3在第一行的sorted_sequence中的右侧插入位置是索引2(数字3的右侧插入位置索引是2)
数字6在第一行的sorted_sequence中的右侧插入位置是索引3
数字9在第一行的sorted_sequence中的右侧插入位置是索引5(数字9的右侧插入位置索引是5)
对于第二行 [3, 6, 9]:
数字3在第二行的sorted_sequence中的右侧插入位置是索引1
数字6在第二行的sorted_sequence中的右侧插入位置是索引3(数字6的右侧插入位置索引是3)
数字9在第二行的sorted_sequence中的右侧插入位置是索引4
"""sorted_sequence_1d = torch.tensor([1, 3, 5, 7, 9])
"""
tensor([1, 3, 5, 7, 9])
"""torch.searchsorted(sorted_sequence_1d, values)
"""
tensor([[1, 3, 4],[1, 3, 4]])
"""

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/324251.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis是单线程吗?为什么6.0之后引入了多线程?

Redis是单线程吗?为什么6.0之后引入了多线程? Redis 是单线程吗?Redis 单线程模式是怎样的?Redis 采用单线程为什么还这么快?Redis 6.0 之前为什么使用单线程?Redis 6.0 之后为什么引入了多线程&#xff1f…

如何使用 ArcGIS Pro 制作地震动画

在做某些汇报的时候,除了图文,如果有动画肯定会成为加分项,这里为大家介绍一下如何使用 ArcGIS Pro 制作地震动画,希望能对你有所帮助。 添加时间 在图层属性内,选择时间选项卡,图层时间选择每个要素具有…

GA-CNN-LSTM多输入时序预测|遗传算法-卷积-长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

前端开发指导

前端开发指导 本文介绍了配置前端开发环境需要的软件、配置项等,指导如何开始进行UDM部门前端开发的全流程。本文以Windows系统下在Microsoft Virtual Studio Code中开发为基础。 一、综述 目标:零基础或者新员工依照此文档,能够完成开发环境的搭建及熟悉测试环境的搭建。…

Day 29 MySQL的主从复制集群

一:主从复制 1.主从复制概念 什么是主从复制: ​ 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库 主从复制的作用: ​ 做数据的热备&#xf…

TriCore: Architecture

说明 本文是 英飞凌 架构文档 TriCore TC162P core archiecture Volume 1 of 2 (infineon.com) 的笔记,稍作整理方便查阅,错误之处,还请指正,谢谢 :) 1. Architecture 2. General Purpose & System Register 名词列表&#…

【基础算法总结】二分查找一

二分查找一 1. 二分查找2.在排序数组中查找元素的第一个和最后一个位置3.x 的平方根4.搜索插入位置 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃&#x1…

【程序设计和c语言-谭浩强配套】(适合专升本、考研)

一晃大半年没更新了,这一年一直在备考,想着这几天把前段时间学的c语言给大家分享一下,在此做了一个专栏,有需要的小伙伴可私信获取o。 简介:本专栏所有内容皆适合专升本、考研的复习资料,本人手上也有日常…

Android 系统启动流程源码分析

一、Init进程启动 是一个由内核启动的用户级进程。内核自行启动之后,就通过启动一个用户级程序init的方式,完成引导进程。 启动的代码init.c中的main函数执行过程:system\core\init.c中: 主要下面两个重要的过程: 1…

鹦鹉优化算法原理及代码实现

鹦鹉(Pyrrhura Molinae)表现出四种不同的行为特征:觅食、停留、交流和对陌生人的恐惧。这些行为(如图1所示)在现实环境中构成了我们设计PO动机的基础。 觅食:驯化的鹦鹉(Pyrrhura Molinae)的觅食行为令人着迷,因为个体选择在食物丰富的小群体…

支付宝小程序如何去除页面下拉回弹

描述:支付宝小程序页面下拉时会产生回弹,如果页面上有拖拽功能,会有影响 解决方法: 页面xx.config.js中设置:allowsBounceVertical: “NO” 官方文档:https://opensupport.alipay.com/support/FAQ/7110b5d…

VM虚拟机安装调试(步骤如下图)

VM虚拟机安装调试 随着一顿安装操作,还有enter键敲下,出现如下界面。

深入理解线程的两阶段终止模式:确保线程安全退出

序言 在多线程编程中,线程的安全退出是一个重要的问题。在实际应用中,我们经常需要确保线程在退出时能够完成必要的清理工作,同时避免因资源泄漏或状态不一致而导致的问题。线程的两阶段终止模式是一种解决这个问题的有效方法。本文将深入探…

python之并发编程

python之并发编程 线程的创建方式线程的创建方式(方法包装)线程的创建方式(类包装)join()【让主线程等待子线程结束】守护线程【主线程结束,子线程就结束】 锁多线程操作同一个对象(未使用线程同步)多线程操作同一个对象(增加互斥锁,使用线程同步)死锁案…

[muduo网络库]——muduo库三大核心组件之 Poller/EpollPoller类(剖析muduo网络库核心部分、设计思想)

接着上文,[muduo网络库]——muduo库三大核心组件之Channel类(剖析muduo网络库核心部分、设计思想),本章我们来学习muduo网络库中第二大核心组件Poller/EpollPoller类。 先回顾一下三大核心组件之间的关系。 接着我们进入正题。 P…

Java入门——类和对象(上)

经读者反映与笔者考虑,近期以及往后内容更新将主要以java为主,望读者周知、见谅。 类与对象是什么? C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 JAVA是基于面向对…

java中的并发编程

1、上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现 这个机制。这个时间片特别短,一般是几十毫秒,所以会让我们觉得好多任务同时进行。 CPU通过时间片分配算法来循环执行任务,当前任务执…

Java面试——MyBatis

优质博文:IT-BLOG-CN 一、MyBatis 与 JDBC 的区别 【1】JDBC 是 Java 提供操作数据库的 API;MyBatis 是一个持久层 ORM 框架,底层是对 JDBC 的封装。 【2】使用 JDBC 需要连接数据库,注册驱动和数据库信息工作量大,每…

QT 小项目:登录注册账号和忘记密码(下一章实现远程登录)

一、环境搭建 参考上一章环境 二、项目工程目录 三、主要源程序如下: registeraccountwindow.cpp 窗口初始化: void registeraccountWindow::reginit() {//去掉?号this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButt…

牛客小白月赛93

B交换数字 题目&#xff1a; 思路&#xff1a;我们可以知道&#xff0c;a*b% mod (a%mod) * (b%mod) 代码&#xff1a; void solve(){int n;cin >> n;string a, b;cin >> a >> b;for(int i 0;i < n;i )if(a[i] > b[i])swap(a[i], b[i]);int num1…