Función PyTorch torch.narrow
Manual de referencia de Pytorch torch
torch.narrowEs una función en PyTorch que se utiliza para devolver una porción de un tensor. Devuelve una vista de la porción desde una posición inicial hasta una longitud especificada en una dimensión determinada.
Definición de la función
torch.narrow(input, dim, start, length)
Parámetros:
input(Tensor): el tensor de entrada.dim(int): la dimensión en la que se realizará el corte.start(int): el índice inicial.length(int): la longitud del corte.
Valor de retorno:
torch.Tensor: devuelve la vista del tensor después del corte especificado.
Ejemplo de uso
Ejemplo
import torch
# Crear un tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# En la primera dimensión (filas), tomar 2 filas desde el índice 0
y = torch.narrow(x, dim=0, start=0, length=2)
print("Tensor original:")
print(x)
print("nResultado del corte:")
print(y)
# Crear un tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# En la primera dimensión (filas), tomar 2 filas desde el índice 0
y = torch.narrow(x, dim=0, start=0, length=2)
print("Tensor original:")
print(x)
print("nResultado del corte:")
print(y)
El resultado de salida es:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[1, 2, 3, 4],
[5, 6, 7, 8]])
Ejemplo
import torch
# Crear un tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# En la segunda dimensión (columnas), tomar 2 columnas desde el índice 1
y = torch.narrow(x, dim=1, start=1, length=2)
print("Tensor original:")
print(x)
print("nResultado del corte:")
print(y)
# Crear un tensor
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# En la segunda dimensión (columnas), tomar 2 columnas desde el índice 1
y = torch.narrow(x, dim=1, start=1, length=2)
print("Tensor original:")
print(x)
print("nResultado del corte:")
print(y)
El resultado de salida es:
原始张量:
tensor([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
切片结果:
tensor([[ 2, 3],
[ 6, 7],
[10, 11]])
Ejemplo
import torch
# Crear un tensor 3D
x = torch.randn(5, 6, 7)
# En la primera dimensión, tomar 3 elementos desde el índice 2
y = torch.narrow(x, dim=0, start=2, length=3)
print("Forma original:", x.shape)
print("Forma después del corte:", y.shape)
# Crear un tensor 3D
x = torch.randn(5, 6, 7)
# En la primera dimensión, tomar 3 elementos desde el índice 2
y = torch.narrow(x, dim=0, start=2, length=3)
print("Forma original:", x.shape)
print("Forma después del corte:", y.shape)
El resultado de salida es:
原始形状: torch.Size([5, 6, 7]) 切片后形状: torch.Size([3, 6, 7])
Nota:torch.narrowDevuelve una vista del tensor original, no una copia. Si se necesita una copia, se puede usartorch.narrow_copy。
Otras extensiones