Pytorch softmax: Quelle est la dimension de l'utiliser?

La fonction torch.nn.functional.softmax prend deux paramètres: input et dim. Selon sa documentation, la softmax opération est appliquée à toutes les tranches de input le long de la spécifié dim, et remettre à l'échelle de sorte que les éléments se situent dans la fourchette (0, 1) et la somme de 1.

Laisser l'entrée:

input = torch.randn((3, 4, 5, 6))

Supposons que je veux la suite, de sorte que chaque entrée de la matrice est de 1:

sum = torch.sum(input, dim = 3) # sum's size is (3, 4, 5, 1)

Comment dois-je appliquer softmax?

softmax(input, dim = 0) # Way Number 0
softmax(input, dim = 1) # Way Number 1
softmax(input, dim = 2) # Way Number 2
softmax(input, dim = 3) # Way Number 3

Mon intuition me dit que c'est le dernier, mais je n'en suis pas sûr. L'anglais n'est pas ma première langue et de l'utilisation de la parole along semblait confus pour moi à cause de ça.

Je ne suis pas très clair sur ce "long" signifie, donc, je vais utiliser un exemple qui pourrait clarifier les choses. Supposons que nous avons un tenseur de taille (s1, s2, s3, s4), et je veux que cela arrive

  • que fait un -1 faire?
  • ce n'", de sorte que chaque entrée de la matrice est 1:" veux dire? Pouvez-vous préciser ce que votre question veut?
  • le long de dim=0 signifie le suivant: considérons un tenseur t de taille (s0,s1,s2,s3). Puis aller le long de la dimension 0 signifie que les coordonnées nous pouvons index dans la dimension de la gamme du début à la fin de l'élément de nombre de cette dimension. Dans ce cas il faudra passer par t[0,b,c,d], ... , t[i0,b,c,d] , ... , t[s0,b,c,d]. Tout simplement en passant par toutes les valeurs de zéro à coordonner.