Как Pytorch Tensor получает индекс определенной стоимости
В списке python можно использовать list.index(somevalue). Как может pytorch сделать это? Например:
a=[1,2,3]
print(a.index(2))
Тогда, 1 будет выводиться. Как может тензор pytorch сделать это без преобразования его в список python?
Ответ 1
Я думаю, что нет прямого перевода из list.index() в функцию pytorch. Однако вы можете добиться аналогичных результатов, используя tensor==number а затем nonzero() функцию. Например:
t = torch.Tensor([1, 2, 3])
print ((t == 2).nonzero())
Этот кусок кода возвращается
1
[torch.LongTensor размера 1x1]
Ответ 2
Может быть сделано путем преобразования в numpy следующим образом
Здесь я хочу получить индекс max_value в тензоре с плавающей запятой, вы также можете указать свое значение таким образом, чтобы получить индекс любых элементов в тензоре.