Функция PyTorch torch.searchsorted
Справочное руководство PyTorch torch
torch.searchsortedЭто функция в PyTorch, используемая для поиска позиции, куда следует вставить элемент в отсортированный тензор. Возвращаемое значение — это индекс позиции, куда следует вставить элемент.
Определение функции
torch.searchsorted(sorted_sequence, values, side='left', out_int32=False, right=False)
Описание параметров:
sorted_sequence: Отсортированный одномерный или многомерный тензорvalues: Значение для поискаside: 'left' или 'right', определяет, возвращать левую или правую позицию вставкиout_int32: Возвращать ли тип int32right: Устарело, используйте side вместо этого
Пример использования
Пример
import torch
# Создать отсортированную последовательность
sorted_seq = torch.tensor([1, 3, 5, 7, 9])
# Поиск позиции значения
values = torch.tensor([3, 6, 8])
y = torch.searchsorted(sorted_seq, values)
print(y)
# Создать отсортированную последовательность
sorted_seq = torch.tensor([1, 3, 5, 7, 9])
# Поиск позиции значения
values = torch.tensor([3, 6, 8])
y = torch.searchsorted(sorted_seq, values)
print(y)
Результат вывода:
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])
Пример
import torch
# Для многомерных массивов
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)
# Для многомерных массивов
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)
Результат вывода:
tensor([[1],
[1]])
Другие расширения