PyTorch torch.select Funktion


Pytorch torch 参考手册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)

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)

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)

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]。


Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen