• 文档 >
  • torch >
  • torch.searchsorted
快捷键

torch.searchsorted

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

查找 sorted_sequence 内部最深层维度中的索引,使得如果将 values 中对应的值插入到这些索引之前,当排序时, sorted_sequence 内部对应内部最深层维度的顺序将得到保留。返回一个与 values 大小相同的新的张量。更正式地说,返回的索引满足以下规则:

sorted_sequence

right

返回的索引满足条件

1-D

False

sorted_sequence[i-1] < values[m][n]...[l][x] <= sorted_sequence[i]

1-D

True

sorted_sequence[i-1] <= values[m][n]...[l][x] < sorted_sequence[i]

N-D

False

sorted_sequence[m][n]...[l][i-1] < values[m][n]...[l][x] <= sorted_sequence[m][n]...[l][i]

N-D

True

sorted_sequence[m][n]...[l][i-1] <= values[m][n]...[l][x] < sorted_sequence[m][n]...[l][i]

参数:
  • sorted_sequence (Tensor) – N-D 或 1-D 张量,内部维度上包含单调递增序列,除非提供 sorter ,否则序列不需要排序

  • values (Tensor 或 Scalar) – N-D 张量或标量,包含搜索值。

关键字参数:
  • out_int32(bool,可选)- 指示输出数据类型。如果为 True,则为 torch.int32,否则为 torch.int64。默认值为 False,即默认输出数据类型为 torch.int64。

  • right (bool, optional) – 如果为 False,返回找到的第一个合适的位置。如果为 True,返回最后一个这样的索引。如果没有找到合适的索引,对于非数值值(例如 nan,inf)返回 0,或者在 sorted_sequence 内部最维度的尺寸(一次内部最维度的最后一个索引)。换句话说,如果为 False,则为 values 中的每个值在 sorted_sequence 的对应内部维度上获取下界索引。如果为 True,则获取上界索引。默认值为 False。 side 做同样的事情,并且更受青睐。如果 side 设置为“left”而此为 True,则会报错。

  • side (str, optional) – 与 right 相同,但更受青睐。“left”对应于 right 的 False,“right”对应于 right 的 True。如果此设置为“left”而 right 为 True,则会报错。默认值为 None。

  • out(张量,可选)- 输出张量,如果提供,则必须与 values 的大小相同。

  • sorter(LongTensor,可选)- 如果提供,则与未排序的 sorted_sequence 形状匹配的张量,其中包含一个索引序列,按升序对最内层维度进行排序

示例:

>>> 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]])

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源