web-dev-qa-db-fra.com

Comment Pytorch Tensor obtient l’indice de la valeur spécifique

Dans la liste python, nous pouvons utiliser list.index(somevalue). Comment Pytorch peut-il faire cela?
Par exemple: 

    a=[1,2,3]
    print(a.index(2))

Alors, 1 sera sorti. Comment un tenseur de pytorque peut-il faire cela sans le convertir en liste python?

7
Han Bing

Je pense qu'il n'y a pas de traduction directe de list.index() en fonction de pytorch. Cependant, vous pouvez obtenir des résultats similaires à l'aide de tensor==number puis de la fonction nonzero(). Par exemple:

t = torch.Tensor([1, 2, 3])
print ((t == 2).nonzero())

Ce morceau de code retourne

[torche.LongTensor de taille 1x1]

10
Manuel Lagunas

Peut être fait en convertissant en numpy comme suit

import torch
x = torch.range(1,4)
print(x)
===> tensor([ 1.,  2.,  3.,  4.]) 
nx = x.numpy()
np.where(nx == 3)[0][0]
===> 2
0
vlad