PyTorch torch.narrow_copy Funktion


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

torch.narrow_copyEs ist eine Funktion in PyTorch, die verwendet wird, um eine Kopie eines Tensor-Slices zurückzugeben. Sie gibt eine Kopie des Slices von der Startposition bis zur angegebenen Länge entlang der angegebenen Dimension zurück.

Diese Funktion isttorch.narrowfunktional ähnlich wie, abertorch.narrowgibt eine Ansicht zurück, währendtorch.narrow_copygibt eine Kopie zurück.

Funktionsdefinition

torch.narrow_copy(input, dim, start, length)

Parameters:

  • input(Tensor): Eingabe-Tensor.
  • dim(int): Die zu schneidende Dimension.
  • start(int): Startindex.
  • length(int): Die Länge des Slices.

Rückgabewert:

  • torch.Tensor: Gibt die Tensorkopie nach dem angegebenen Slicing zurück.

Anwendungsbeispiel

Beispiel

import torch

# Einen Tensor erstellen
x = torch.tensor([[1, 2, 3, 4],
                  [5, 6, 7, 8],
                  [9, 10, 11, 12]])

# In der ersten Dimension (Zeilen) 2 Zeilen ab Index 0 entnehmen
y = torch.narrow_copy(x, dim=0, start=0, length=2)

print("Original-Tensor:")
print(x)
print("nAusschnittskopie:")
print(y)

# Das Ändern der Kopie wirkt sich nicht auf den ursprünglichen Tensor aus
y[0, 0] = 100
print("nNach Ändern der Kopie, ursprünglicher Tensor:", x[0, 0])
print("Nach Ändern der Kopie, Ausschnittskopie:", y[0, 0])

Das Ausgabeergebnis ist:

原始张量:
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12]])

切片副本:
tensor([[1, 2, 3, 4],
        [5, 6, 7, 8]])

修改副本后,原始张量: tensor(1)
修改副本后,切片副本: tensor(100)

Beispiel

import torch

# Erstelle einen 3D-Tensor
x = torch.randn(5, 6, 7)

# In der zweiten Dimension 4 Elemente ab Index 2 entnehmen
y = torch.narrow_copy(x, dim=1, start=2, length=4)

print("Ursprüngliche Form:", x.shape)
print("Form der Ausschnittskopie:", y.shape)

Das Ausgabeergebnis ist:

原始形状: torch.Size([5, 6, 7])
切片副本形状: torch.Size([5, 4, 7])

Hinweis:torch.narrow_copyEs gibt eine Kopie zurück, keine View. Das bedeutet, dass das Ändern des zurückgegebenen Tensors den ursprünglichen Tensor nicht beeinflusst, aber zusätzlichen Speicher verbraucht. Wenn keine unabhängige Kopie benötigt wird, können Sietorch.narrowum Speicher zu sparen.


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

Andere Erweiterungen