Wie kann ich in PyTorch auf Tensorwerte zugreifen und diese ändern?

Wie Kann Ich In Pytorch Auf Tensorwerte Zugreifen Und Diese Andern



PyTorch ist ein Deep-Learning-Framework, das es Benutzern ermöglicht, Tensoren zu erstellen/definieren und zu manipulieren. Tensoren sind mehrdimensionale Arrays, die Daten/Werte verschiedener Typen und Formen speichern können. Manchmal möchten Benutzer jedoch auf den spezifischen Inhalt oder die Werte des gewünschten Tensors zugreifen und ihn ändern. In dieser Situation können sie verschiedene Methoden verwenden, um diesen Vorgang durchzuführen.

In diesem Blog werden die Methoden zum Zugriff und zur Änderung der Werte von Tensoren in PyTorch veranschaulicht.

Wie kann ich in PyTorch auf die Werte/Inhalte von Tensor zugreifen und diese ändern?

Um die Werte von Tensoren in PyTorch abzurufen und zu ändern, können zwei Methoden verwendet werden:







Methode 1: Auf Tensorwerte mithilfe der Indizierung zugreifen und diese ändern

Die Indizierung ist eine Möglichkeit, ein bestimmtes Element oder eine Reihe von Elementen aus einem bestimmten Tensor basierend auf ihrer Position auszuwählen. Benutzer müssen eckige Klammern verwenden „ [ ] ” um auf die Elemente entlang jeder Dimension des Tensors zuzugreifen. Im Fall eines 2D-Tensors kann mit „tensor[i,j]“ auf die Elemente in Zeile „i“ und Spalte „j“ zugegriffen werden. Befolgen Sie dazu die folgenden Schritte:



Schritt 1: PyTorch-Bibliothek importieren

Importieren Sie zunächst „ Fackel ' Bibliothek:



importieren Fackel

Schritt 2: Erstellen Sie einen Tensor

Verwenden Sie dann die „ Torch.tensor() ”-Funktion zum Erstellen eines gewünschten Tensors und Drucken seiner Elemente. Wir erstellen zum Beispiel einen 2D-Tensor „ Zehner1 ” mit den Maßen 2×3:





Zehner1 = Fackel. Tensor ( [ [ 2 , 9 , 5 ] , [ 7 , 1 , 4 ] ] )

drucken ( Zehner1 )

Dadurch wurde der 2D-Tensor wie unten dargestellt erstellt:



Schritt 3: Greifen Sie mithilfe der Indizierung auf die Werte des Tensors zu

Greifen Sie nun über ihren Index auf die gewünschten Werte des Tensors zu. Beispielsweise haben wir den Index „[1][2]“ des „ Zehner1 ” um auf seinen Wert zuzugreifen und ihn in einer Variablen namens „ zu speichern temp_element “. Dadurch wird auf den in der zweiten Zeile und dritten Spalte vorhandenen Wert zugegriffen:

temp_element = Zehner1 [ 1 ] [ 2 ]

drucken ( temp_element )

Hier: ' [1] „bedeutet die zweite Reihe und“ [2] „bedeutet die dritte Spalte, da die Indizierung bei „ beginnt 0 “.

Es ist zu beobachten, dass vom Tensor auf den gewünschten Wert zugegriffen wurde, d. h. „4“:

Schritt 4: Ändern Sie die Tensorwerte mithilfe der Indizierung

Um den spezifischen Wert des Tensors zu ändern, geben Sie den Index an und weisen Sie den neuen Wert zu. Hier ersetzen wir den Wert „ [0][1] ” Index mit „ fünfzehn ”:

Zehner1 [ 0 ] [ 1 ] = fünfzehn

drucken ( Zehner1 )

Die folgende Ausgabe zeigt, dass der angegebene Wert des Tensors erfolgreich geändert wurde:

Methode 2: Auf Tensorwerte mithilfe von Slicing zugreifen und diese ändern

Beim Slicing handelt es sich um eine Möglichkeit, eine Teilmenge eines Tensors mit einer oder mehreren Dimensionen auszuwählen. Benutzer können den Doppelpunktoperator „:“ verwenden, um die Start- und Endindizes des Slice und die Schrittgröße anzugeben. Sehen Sie sich die unten aufgeführten Schritte an, um es besser zu verstehen:

Schritt 1: PyTorch-Bibliothek importieren

Importieren Sie zunächst „ Fackel ' Bibliothek:

importieren Fackel

Schritt 2: Erstellen Sie einen Tensor

Als nächstes erstellen Sie einen gewünschten Tensor mit dem „ Torch.tensor() ”-Funktion und drucken Sie ihre Elemente. Wir erstellen zum Beispiel einen 2D-Tensor „ Zehner2 ” mit den Maßen 2×3:

Zehner2 = Fackel. Tensor ( [ [ 5 , 1 , 9 ] , [ 3 , 7 , 2 ] ] )

drucken ( Zehner2 )

Dadurch wurde ein 2D-Tensor erstellt:

Schritt 3: Greifen Sie mithilfe von Slicing auf die Werte des Tensors zu

Greifen Sie nun mithilfe von Slicing auf die gewünschten Werte des Tensors zu. Beispielsweise haben wir die Indizes „[1]“ von „tens1“ angegeben, um auf deren Werte zuzugreifen und sie in einer Variablen namens „ zu speichern. neue_Werte “. Dadurch wird auf alle in der zweiten Zeile vorhandenen Werte zugegriffen:

neue_Werte = Zehner2 [ 1 ]

drucken ( „Werte der zweiten Zeile:“ , neue_Werte )

In der folgenden Ausgabe wurde erfolgreich auf alle in der zweiten Zeile des Tensors vorhandenen Werte zugegriffen:

Nehmen wir ein weiteres Beispiel, in dem wir auf den Wert der dritten Spalte des Tensors zugreifen. Geben Sie dazu das „ [:, 2] ” Indizes:

neue_Werte2 = Zehner2 [ : , 2 ]

drucken ( „Werte der dritten Spalte:“ , neue_Werte2 )

Dadurch wurde erfolgreich auf die Werte der dritten Spalte des Tensors zugegriffen und diese angezeigt:

Schritt 4: Ändern Sie die Tensorwerte mithilfe von Slicing

Um die spezifischen Werte des Tensors zu ändern, geben Sie die Indizes an und weisen Sie den neuen Wert zu. Hier ändern wir alle Werte der zweiten Zeile im Tensor. Hierzu haben wir die „ [1] ” indiziert und weist neue Werte zu:

Zehner2 [ 1 ] = Fackel. Tensor ( [ 30 , 60 , 90 ] )

drucken ( „Modifizierter Tensor:“ , Zehner2 )

Gemäß der folgenden Ausgabe wurden alle Werte der Tensorwerte der zweiten Zeile erfolgreich geändert:

Wir haben die effizienten Methoden zum Zugriff und zur Änderung von Tensorwerten in PyTorch erklärt.

Notiz : Hier können Sie auf unser Google Colab Notebook zugreifen Verknüpfung .

Abschluss

Um die Werte oder Inhalte des Tensors in PyTorch abzurufen und zu ändern, importieren Sie zunächst die „Torch“-Bibliothek. Erstellen Sie dann den gewünschten Tensor. Als nächstes verwenden Sie die Indexierungs- oder Slicing-Methoden, um auf die gewünschten Werte des Tensors zuzugreifen und diese zu ändern. Geben Sie dazu jeweils den Index der Indizes an und zeigen Sie die aufgerufenen und geänderten Werte des Tensors an. In diesem Blog wurden die Methoden zum Zugriff und zur Änderung der Werte von Tensoren in PyTorch veranschaulicht.