Fonction torch.select de PyTorch
Manuel de référence Pytorch torch
torch.selectIl s'agit d'une fonction de PyTorch utilisée pour sélectionner la tranche correspondant à un index le long d'une dimension spécifiée. Elle renvoie une vue découpée à la position d'index spécifiée sur la dimension spécifiée.
Définition de fonction
torch.select(input, dim, index)
Parameters:
input(Tensor) : tenseur d'entrée.dim(int): La dimension à sélectionner.index(int): L'index à sélectionner.
Valeur de retour:
torch.Tensor: Retourne la tranche à la position d'index spécifiée (dimension réduite de 1).
Exemples d'utilisation
Exemple
import torch
# Créer un tenseur 3x4
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Sélectionner la ligne d'index 1 sur la première dimension (lignes)
y = torch.select(x, dim=0, index=1)
print("Tenseur d'origine :")
print(x)
print("nSélectionner la ligne d'index 1:")
print(y)
# Créer un tenseur 3x4
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Sélectionner la ligne d'index 1 sur la première dimension (lignes)
y = torch.select(x, dim=0, index=1)
print("Tenseur d'origine :")
print(x)
print("nSélectionner la ligne d'index 1:")
print(y)
Le résultat de sortie est:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
选择索引1的行:
tensor([5, 6, 7, 8])
Exemple
import torch
# Créer un tenseur 3D
x = torch.arange(24).reshape(2, 3, 4)
print("Tenseur 3D original :")
print(x)
print("Forme :", x.shape)
# Sélectionner l'élément d'index 0 dans la première dimension (batch)
y = torch.select(x, dim=0, index=0)
print("nSélectionner dim=0, index=0:")
print(y)
print("Forme :", y.shape)
# Créer un tenseur 3D
x = torch.arange(24).reshape(2, 3, 4)
print("Tenseur 3D original :")
print(x)
print("Forme :", x.shape)
# Sélectionner l'élément d'index 0 dans la première dimension (batch)
y = torch.select(x, dim=0, index=0)
print("nSélectionner dim=0, index=0:")
print(y)
print("Forme :", y.shape)
Le résultat de sortie est:
原始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])
Exemple
import torch
# Utiliser un index négatif
x = torch.tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Manière équivalente de sélectionner la dernière ligne
y = torch.select(x, dim=0, index=-1)
print("Tenseur d'origine :")
print(x)
print("nSélectionner la dernière ligne (index=-1):")
print(y)
# Utiliser un index négatif
x = torch.tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Manière équivalente de sélectionner la dernière ligne
y = torch.select(x, dim=0, index=-1)
print("Tenseur d'origine :")
print(x)
print("nSélectionner la dernière ligne (index=-1):")
print(y)
Le résultat de sortie est:
原始张量:
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
选择最后一行 (index=-1):
tensor([7, 8, 9])
Remarque :torch.selectIl renvoie une vue, et non une copie, donc l'opération est efficace. Une fonctionnalité similaire peut également être obtenue à l'aide d'opérations de découpage, telles quex[index]oux[index:index+1]。
Autres extensions