Die Rolle von Torch.gather

Torch.gather() ist eine PyTorch-Funktion, die Elemente aus einem Tensor an einem angegebenen Index extrahiert.

Zu seinen Hauptfunktionen gehören:

  1. Extrahieren Sie Elemente aus einem mehrdimensionalen Tensor gemäß dem angegebenen Achsendimensions- und Indexindex und aggregieren Sie sie zu einem neuen Tensor.
  2. Sie können Vorgänge wie das Aufteilen und Neuanordnen von Tensoren gemäß angegebenen Indizes ausführen.
  3. Es kann mit Torch.scatter() verwendet werden, um den Effekt des Einfügens oder Kopierens von Tensorelementen an bestimmten Positionen zu erzielen.

Die grundlegende Syntax von Torch.gather() lautet wie folgt:

output = torch.gather(input, dim, index)

In:

  • Eingabe: Eingabetensor
  • dim: Sammelvorgang entlang dieser Achse durchführen
  • Index: Index, der angibt, welche Elemente aus der Eingabe extrahiert werden sollen. Form und Größe müssen mit der Form der Eingabe auf der Dim-Achse übereinstimmen.
  • Ausgabe: Ausgabetensor, Form ist index.shape + input.shape[dim+1:]

Ein einfaches Beispiel:

import torch
input = torch.tensor([[1,2],[3,4]])
index = torch.tensor([[0,0],[1,0]])
output_0 = torch.gather(input, 0, index)
print(output_0)
output_1 = torch.gather(input, 1, index)
print(output_1)

Ausgabeergebnis:

tensor([[1, 2],
        [3, 2]])

tensor([[1, 1],
        [4, 3]])

Hier erfolgt die Erfassung entlang der 0. Achse (horizontale Achse)/1. Achse (Spaltenachse) des Eingabetensors. Der Indexindex gibt den aus jeder Spalte/Zeile extrahierten Elementindex an, und schließlich wird ein neuer Ausgabetensor erhalten.

Kurz gesagt, Torch.gather() ist eine sehr nützliche Funktion, die viele Sammel-, Slice- und Neuordnungsvorgänge implementieren kann. Es ist notwendig, mit den Dimm- und Indexparametereinstellungen zusammenzuarbeiten, um unterschiedliche Effekte zu erzielen.

Acho que você gosta

Origin blog.csdn.net/athrunsunny/article/details/133633434
Recomendado
Clasificación