Fonction torch.narrow de PyTorch


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

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)

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)

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。


Pytorch torch 参考手册Manuel de référence Pytorch torch

Autres extensions