Интерполировать один диапазон чисел в другой в тензоре в PyTorch - PullRequest
1 голос
/ 23 декабря 2019

Я пытаюсь преобразовать набор чисел, скажем, {0, 4, 6} в последовательный {0, 1, 2}. В настоящее время я использую функцию Scipy interp1d. Моя проблема в том, что я хочу изменить каждый элемент тензора. Есть ли лучший способ, чем широковещательная рассылка interp1d функции каждому элементу тензора? Если нет, как я могу добиться этой трансляции пользовательской функции

В настоящее время я делаю следующее:

>>> a = torch.tensor([[0, 6, 4],
                      [4, 0, 4]])
>>> unique_values = np.unique(a)
>>> interpolator = interp1d(unique_values, range(len(unique_values)))
>>> interpolator(a[0, 1])
>>> 2
...