PyTorch torch.select Funktion
PyTorch torch Referenzhandbuch
torch.selectEs ist eine Funktion in PyTorch, mit der der Slice ausgewählt wird, der einem Index entlang einer angegebenen Dimension entspricht. Sie gibt eine Slice-Ansicht an der angegebenen Indexposition in der angegebenen Dimension zurück.
Funktionsdefinition
torch.select(input, dim, index)
Parameters:
input(Tensor): Eingabe-Tensor.dim(int): Die auszuwählende Dimension.index(int): Der auszuwählende Index.
Rückgabewert:
torch.Tensor: Gibt den Slice an der angegebenen Indexposition zurück (Dimension um 1 reduziert).
Anwendungsbeispiele
Beispiel
import torch
# Erstelle einen 3x4-Tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Wähle die Zeile mit Index 1 in der ersten Dimension (Zeilen) aus
y = torch.select(x, dim=0, index=1)
print("Original-Tensor:")
print(x)
print("nWähle die Zeile mit Index 1 aus:")
print(y)
# Erstelle einen 3x4-Tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Wähle die Zeile mit Index 1 in der ersten Dimension (Zeilen) aus
y = torch.select(x, dim=0, index=1)
print("Original-Tensor:")
print(x)
print("nWähle die Zeile mit Index 1 aus:")
print(y)
Das Ausgabeergebnis ist:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
选择索引1的行:
tensor([5, 6, 7, 8])
Beispiel
import torch
# Erstelle einen 3D-Tensor
x = torch.arange(24).reshape(2, 3, 4)
print("Ursprünglicher 3D-Tensor:")
print(x)
print("Form:", x.shape)
# Wähle das Element mit Index 0 in der ersten Dimension (Batch) aus
y = torch.select(x, dim=0, index=0)
print("nWähle dim=0, index=0 aus:")
print(y)
print("Form:", y.shape)
# Erstelle einen 3D-Tensor
x = torch.arange(24).reshape(2, 3, 4)
print("Ursprünglicher 3D-Tensor:")
print(x)
print("Form:", x.shape)
# Wähle das Element mit Index 0 in der ersten Dimension (Batch) aus
y = torch.select(x, dim=0, index=0)
print("nWähle dim=0, index=0 aus:")
print(y)
print("Form:", y.shape)
Das Ausgabeergebnis ist:
原始3D张量:
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
形状: torch.Size([2, 3, 4])
选择 dim=0, index=0:
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
形状: torch.Size([3, 4])
Beispiel
import torch
# Negativen Index verwenden
x = torch.tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Äquivalente Möglichkeit, die letzte Zeile auszuwählen
y = torch.select(x, dim=0, index=-1)
print("Original-Tensor:")
print(x)
print("nWähle die letzte Zeile aus (index=-1):")
print(y)
# Negativen Index verwenden
x = torch.tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Äquivalente Möglichkeit, die letzte Zeile auszuwählen
y = torch.select(x, dim=0, index=-1)
print("Original-Tensor:")
print(x)
print("nWähle die letzte Zeile aus (index=-1):")
print(y)
Das Ausgabeergebnis ist:
原始张量:
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
选择最后一行 (index=-1):
tensor([7, 8, 9])
Hinweis:torch.selectEs gibt eine Ansicht zurück, keine Kopie, daher ist die Operation effizient. Ähnliche Funktionalität kann auch mit Slicing-Operationen erreicht werden, wie z. B.x[index]oderx[index:index+1]。
Andere Erweiterungen