Fonction torch.narrow de PyTorch
Manuel de référence Pytorch torch
torch.narrowest une fonction de PyTorch utilisée pour renvoyer des tranches de tenseur. Elle renvoie une vue découpée à partir d'une position spécifiée avec une longueur spécifiée le long d'une dimension spécifiée.
Définition de fonction
torch.narrow(input, dim, start, length)
Parameters:
input(Tensor) : Le tenseur d'entrée.dim(int): La dimension à découper.start(int): L'indice de départ.length(int): La longueur de la tranche.
Valeur de retour:
torch.Tensor: Renvoie la vue découpée du tenseur.
Exemples d'utilisation
Exemple
import torch
# Créer un tenseur
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Découper 2 lignes à partir de l'indice 0 le long de la première dimension (lignes)
y = torch.narrow(x, dim=0, start=0, length=2)
print("Tenseur d'origine :")
print(x)
print("nRésultat découpé :")
print(y)
# Créer un tenseur
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Découper 2 lignes à partir de l'indice 0 le long de la première dimension (lignes)
y = torch.narrow(x, dim=0, start=0, length=2)
print("Tenseur d'origine :")
print(x)
print("nRésultat découpé :")
print(y)
La sortie est :
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[1, 2, 3, 4],
[5, 6, 7, 8]])
Exemple
import torch
# Créer un tenseur
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Découper 2 colonnes à partir de l'index 1 selon la deuxième dimension (colonnes)
y = torch.narrow(x, dim=1, start=1, length=2)
print("Tenseur d'origine :")
print(x)
print("nRésultat découpé :")
print(y)
# Créer un tenseur
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# Découper 2 colonnes à partir de l'index 1 selon la deuxième dimension (colonnes)
y = torch.narrow(x, dim=1, start=1, length=2)
print("Tenseur d'origine :")
print(x)
print("nRésultat découpé :")
print(y)
La sortie est :
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[ 2, 3],
[ 6, 7],
[10, 11]])
Exemple
import torch
# Créer un tenseur 3D
x = torch.randn(5, 6, 7)
# Découper 3 éléments à partir de l'index 2 selon la première dimension
y = torch.narrow(x, dim=0, start=2, length=3)
print("Forme d'origine :", x.shape)
print("Forme après découpage :", y.shape)
# Créer un tenseur 3D
x = torch.randn(5, 6, 7)
# Découper 3 éléments à partir de l'index 2 selon la première dimension
y = torch.narrow(x, dim=0, start=2, length=3)
print("Forme d'origine :", x.shape)
print("Forme après découpage :", y.shape)
La sortie est :
原始形状: torch.Size([5, 6, 7]) 切片后形状: torch.Size([3, 6, 7])
Remarque :torch.narrowUne vue du tenseur d'origine est renvoyée, pas une copie. Si vous avez besoin d'une copie, vous pouvez utilisertorch.narrow_copy。
Autres extensions