Функция torch.narrow в PyTorch


Pytorch torch 参考手册Справочное руководство Pytorch torch

torch.narrow— это функция в PyTorch, используемая для возврата срезов тензора. Она возвращает срез-представление, начиная с указанной позиции, с указанной длиной вдоль указанного измерения.

Определение функции

torch.narrow(input, dim, start, length)

Parameters:

  • input(Tensor): Входной тензор.
  • dim(int): Измерение для среза.
  • start(int): Начальный индекс.
  • length(int): Длина среза.

Возвращаемое значение:

  • torch.Tensor: Возвращает срез-представление тензора.

Примеры использования

Пример

import torch

# Создайте тензор
x = torch.tensor([[1, 2, 3, 4],
                  [5, 6, 7, 8],
                  [9, 10, 11, 12]])

# Срез 2 строк, начиная с индекса 0, вдоль первого измерения (строки)
y = torch.narrow(x, dim=0, start=0, length=2)

print("Исходный тензор:")
print(x)
print("nSliced result:")
print(y)

Вывод:

原始张量:
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12]])

切片结果:
tensor([[1, 2, 3, 4],
        [5, 6, 7, 8]])

Пример

import torch

# Создайте тензор
x = torch.tensor([[1, 2, 3, 4],
                  [5, 6, 7, 8],
                  [9, 10, 11, 12]])

# Срез 2 столбцов, начиная с индекса 1 по второму измерению (столбцы)
y = torch.narrow(x, dim=1, start=1, length=2)

print("Исходный тензор:")
print(x)
print("nSliced result:")
print(y)

Вывод:

原始张量:
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12]])

切片结果:
tensor([[ 2,  3],
        [ 6,  7],
        [10, 11]])

Пример

import torch

# Создать 3D-тензор
x = torch.randn(5, 6, 7)

# Срез 3 элементов, начиная с индекса 2 по первому измерению
y = torch.narrow(x, dim=0, start=2, length=3)

print("Исходная форма:", x.shape)
print("Shape after slicing:", y.shape)

Вывод:

原始形状: torch.Size([5, 6, 7])
切片后形状: torch.Size([3, 6, 7])

Примечание:torch.narrowВозвращается представление исходного тензора, а не копия. Если вам нужна копия, вы можете использоватьtorch.narrow_copy。


Pytorch torch 参考手册Справочное руководство Pytorch torch

Другие расширения