Función torch.searchsorted de PyTorch
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 dimensionesvalues: Valor a buscarside: 'left' o 'right', determina si se devuelve la posición de inserción izquierda o derechaout_int32: Si se devuelve el tipo int32right: 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)
# 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;">(</span><span style="color: Olive;">[</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;">]</span><span style="color: Olive;">)</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;">(</span><span style="color: Olive;">[</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;">]</span><span style="color: Olive;">)</span><br /> y <span style="color: Gray;">=</span> torch.<span style="color: #05a;">searchsorted</span><span style="color: Olive;">(</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;">)</span><br /> <span style="color: Green;font-weight:bold;">print</span><span style="color: Olive;">(</span>y<span style="color: Olive;">)</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)
# 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]])
Otras extensiones