PyTorch torch.narrow-Funktion
PyTorch torch Referenzhandbuch
torch.narrowist eine Funktion in PyTorch, die verwendet wird, um Tensor-Slices zurückzugeben. Sie gibt eine geschnittene Ansicht zurück, die an einer angegebenen Position mit einer angegebenen Länge entlang einer angegebenen Dimension beginnt.
Funktionsdefinition
torch.narrow(input, dim, start, length)
Parameters:
input(Tensor): Der Eingabe-Tensor.dim(int): Die zu schneidende Dimension.start(int): Der Startindex.length(int): Die Länge des Slices.
Rückgabewert:
torch.Tensor: Gibt die geschnittene Ansicht des Tensors zurück.
Anwendungsbeispiele
Beispiel
import torch
# Einen Tensor erstellen
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# 2 Zeilen ab Index 0 entlang der ersten Dimension (Zeilen) ausschneiden
y = torch.narrow(x, dim=0, start=0, length=2)
print("Original-Tensor:")
print(x)
print("nErgebnis nach Slicing:")
print(y)
# Einen Tensor erstellen
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# 2 Zeilen ab Index 0 entlang der ersten Dimension (Zeilen) ausschneiden
y = torch.narrow(x, dim=0, start=0, length=2)
print("Original-Tensor:")
print(x)
print("nErgebnis nach Slicing:")
print(y)
Die Ausgabe ist:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[1, 2, 3, 4],
[5, 6, 7, 8]])
Beispiel
import torch
# Einen Tensor erstellen
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# 2 Spalten ab Index 1 entlang der zweiten Dimension (Spalten) schneiden
y = torch.narrow(x, dim=1, start=1, length=2)
print("Original-Tensor:")
print(x)
print("nErgebnis nach Slicing:")
print(y)
# Einen Tensor erstellen
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# 2 Spalten ab Index 1 entlang der zweiten Dimension (Spalten) schneiden
y = torch.narrow(x, dim=1, start=1, length=2)
print("Original-Tensor:")
print(x)
print("nErgebnis nach Slicing:")
print(y)
Die Ausgabe ist:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[ 2, 3],
[ 6, 7],
[10, 11]])
Beispiel
import torch
# Erstelle einen 3D-Tensor
x = torch.randn(5, 6, 7)
# 3 Elemente ab Index 2 entlang der ersten Dimension schneiden
y = torch.narrow(x, dim=0, start=2, length=3)
print("Ursprüngliche Form:", x.shape)
print("Form nach dem Slicing:", y.shape)
# Erstelle einen 3D-Tensor
x = torch.randn(5, 6, 7)
# 3 Elemente ab Index 2 entlang der ersten Dimension schneiden
y = torch.narrow(x, dim=0, start=2, length=3)
print("Ursprüngliche Form:", x.shape)
print("Form nach dem Slicing:", y.shape)
Die Ausgabe ist:
原始形状: torch.Size([5, 6, 7]) 切片后形状: torch.Size([3, 6, 7])
Hinweis:torch.narrowEs wird eine Ansicht des ursprünglichen Tensors zurückgegeben, keine Kopie. Wenn Sie eine Kopie benötigen, können Sietorch.narrow_copy。
Andere Erweiterungen