Spec-Zone.ru › PyTorch 1

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_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 (Тензор) – N-D или 1-D тензор, содержащий монотонно возрастающую последовательность в внутреннем измерении, если не указан sorter, в этом случае последовательность не обязана быть отсортированной
  • values (Тензор или Скаляр) – N-D тензор или Скаляр, содержащий искомое значение(я).
Ключевые аргументы:
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API