• pytorch的searchsorted解释


    TORCH.SEARCHSORTED

    日期:2022年8月5日

    pytorch版本: 1.11.0

    官方文档的链接:https://pytorch.org/docs/stable/generated/torch.searchsorted.html

    因为第一次看到这个也不知道什么意思,numpy中也没接触过这个函数,二者的效果应该是一样的。

    这里需要注意一下就是sorted_sequence需要是一个排好序的递增序列,不然可能得到的效果不是你需要的那种。

    函数的作用主要就是:

    返回一个和values一样大小的tensor,其中的元素是在sorted_sequence中满足下列条件的索引i

    图中的m n l都是指的维度,x指当前values中所看的那个值的下标,i为最后返回的索引的值。

    所以不管是多少维,都是看最里面一层来比较,如果rightTrue,就是左边是可以等于,不然就是右边可以等于,如果为 False,则返回找到的第一个合适的位置。如果为 True,则返回最后一个此类索引。

    大概就可以理解为寻找一个区间,看能不能满足条件,然后输出右端点的索引i,然后可能会出现0和超出最大索引的数

    官方例子如下,可以再理解一下:

    >>> sorted_sequence = torch.tensor([[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]])
    >>> sorted_sequence
    tensor([[ 1,  3,  5,  7,  9],
            [ 2,  4,  6,  8, 10]])
    
    >>> values = torch.tensor([[3, 6, 9], [3, 6, 9]])
    >>> values
    tensor([[3, 6, 9],
            [3, 6, 9]])
    
    >>> torch.searchsorted(sorted_sequence, values)
    tensor([[1, 3, 4],
            [1, 2, 4]])
    
    >>> torch.searchsorted(sorted_sequence, values, side='right')
    tensor([[2, 3, 5],
            [1, 3, 4]])
    
    >>> sorted_sequence_1d = torch.tensor([1, 3, 5, 7, 9])
    >>> sorted_sequence_1d
    tensor([1, 3, 5, 7, 9])
    
    >>> torch.searchsorted(sorted_sequence_1d, values)
    tensor([[1, 3, 4],
            [1, 3, 4]])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    如果不是递增的例子:

    >>> sorted_sequence_1d = torch.tensor([9, 7, 5, 3, 1])
    >>> values = torch.tensor([3, 6, 9])
    
    >>> torch.searchsorted(sorted_sequence_1d, values)
    tensor([0, 5, 5])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    参考链接:

    https://blog.csdn.net/qq_35037684/article/details/125275305

  • 相关阅读:
    【案例分享】IPSec VPN与NQA联动实现主备对等体和主备链路快速切换
    Rust 中文社区 2024 调查问卷
    tkinter-TinUI-xml实战(7)PDF分页与合并
    c语言进阶 数组在内存中的存储(下)
    前端JS算法--快速排序
    python基础语法:数字类型(中篇)
    每日一题python85:合并两个有序链表
    典型的数据仓库模型实施过程详解
    vue循环滚动字幕
    mongodb 无法远程连接
  • 原文地址:https://blog.csdn.net/xxmy7/article/details/126185591