torch.searchsorted
-
torch.searchsorted(sorted_sequence, values, *, out_int32=False, right=False, side='left', out=None, sorter=None) → Tensor -
Найти индексы из внутреннего измерения
sorted_sequence, такие, что если соответствующие значения вvaluesбыли вставлены перед индексами, при сортировке, порядок соответствующего внутреннего измерения вsorted_sequenceсохранялся. Возвращает новый тензор с таким же размером, как и уvalues. Еслиrightимеет значение False или side равняется ‘left’ (по умолчанию), то левая границаsorted_sequenceзакрыта. Более формально, возвращаемый индекс удовлетворяет следующим правилам:sorted_sequencerightвозвращаемый индекс удовлетворяет
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]- Параметры:
- Ключевые аргументы:
-
- out_int32 (bool, необязательно) – указывает тип данных выходного значения. torch.int32, если True, torch.int64 в противном случае. Значение по умолчанию – False, т.е. тип данных выходного значения по умолчанию – torch.int64.
-
right (bool, необязательно) – если False, возвращает первое найденное подходящее местоположение. Если True, возвращает последний такой индекс. Если подходящий индекс не найден, возвращает 0 для нечисловых значений (например, nan, inf) или размер внутреннего измерения в
sorted_sequence(один шаг за пределы последнего индекса внутреннего измерения). Другими словами, если False, получает индекс нижней границы для каждого значения вvaluesв соответствующем внутреннем измеренииsorted_sequence. Если True, получает индекс верхней границы вместо этого. Значение по умолчанию – False.sideделает то же самое и предпочтительнее. Он выведет ошибку, еслиsideустановлено на «left», в то время как это True. -
side (str, необязательно) – то же, что и
right, но предпочтительнее. «left» соответствует False дляright, а «right» соответствует True дляright. Он выведет ошибку, если это установлено на «left», в то время какrightустановлено на True. -
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]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.searchsorted.html