Función torch.searchsorted de PyTorch


Pytorch torch 参考手册Pytorch torch Manual de referencia

torch.searchsortedEs una función de PyTorch que se utiliza para buscar la posición de inserción de un elemento en un tensor ordenado. El valor devuelto es la posición de índice donde el elemento debería insertarse.

Definición de la función

torch.searchsorted(sorted_sequence, values, side='left', out_int32=False, right=False)

Descripción de parámetros:

  • sorted_sequence: Tensor ordenado de una o más dimensiones
  • values: Valor a buscar
  • side: 'left' o 'right', determina si se devuelve la posición de inserción izquierda o derecha
  • out_int32: Si se devuelve el tipo int32
  • right: Obsoleto, use side en su lugar

Ejemplo de uso

Ejemplo

import torch

# Crear una secuencia ordenada
sorted_seq = torch.tensor([1, 3, 5, 7, 9])

# Buscar la posición del valor
values = torch.tensor([3, 6, 8])
y = torch.searchsorted(sorted_seq, values)
print(y)

El resultado de salida es:

tensor([1, 3, 3])
</p>
<div class="example">
<h2 class="example">实例</h2>
<div class="example_code">
<span style="color: Green;font-weight:bold;">import</span> torch<br />
<br />
<span style="color: #a50"># 创建已排序的序列</span><br />
sorted_seq <span style="color: Gray;">=</span> torch.<span style="color: #05a;">tensor</span><span style="color: Olive;">&#40;</span><span style="color: Olive;">&#91;</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span> <span style="color: Maroon;">3</span><span style="color: Gray;">,</span> <span style="color: Maroon;">5</span><span style="color: Gray;">,</span> <span style="color: Maroon;">7</span><span style="color: Gray;">,</span> <span style="color: Maroon;">9</span><span style="color: Olive;">&#93;</span><span style="color: Olive;">&#41;</span><br />
<br />
<span style="color: #a50"># 使用 side='right' 搜索</span><br />
values <span style="color: Gray;">=</span> torch.<span style="color: #05a;">tensor</span><span style="color: Olive;">&#40;</span><span style="color: Olive;">&#91;</span><span style="color: Maroon;">3</span><span style="color: Gray;">,</span> <span style="color: Maroon;">6</span><span style="color: Gray;">,</span> <span style="color: Maroon;">8</span><span style="color: Olive;">&#93;</span><span style="color: Olive;">&#41;</span><br />
y <span style="color: Gray;">=</span> torch.<span style="color: #05a;">searchsorted</span><span style="color: Olive;">&#40;</span>sorted_seq<span style="color: Gray;">,</span> values<span style="color: Gray;">,</span> side<span style="color: Gray;">=</span><span style="color: #a11;">'right'</span><span style="color: Olive;">&#41;</span><br />
<span style="color: Green;font-weight:bold;">print</span><span style="color: Olive;">&#40;</span>y<span style="color: Olive;">&#41;</span><br />
</div>
</div>

<p>输出结果为:</p>
<pre>
tensor([2, 3, 4])

Ejemplo

import torch

# Para arreglos multidimensionales
sorted_seq = torch.tensor([[1, 3, 5], [2, 4, 6]])
values = torch.tensor([[1.5], [3.5]])
y = torch.searchsorted(sorted_seq, values)
print(y)

El resultado de salida es:

tensor([[1],
        [1]])

Pytorch torch 参考手册Pytorch torch Manual de referencia

Otras extensiones