РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
4 of 769 menu

Метод permute

Метод permute класса Tensor выполняет перестановку размерностей тензора. Он принимает переменное количество аргументов - целых чисел, задающих новый порядок осей. Метод возвращает новый тензор с переставленными размерностями, при этом данные не копируются, а создаётся новое представление (view) исходного тензора.

Синтаксис

tensor.permute(dim0, dim1, ...)

Пример

Давайте создадим трёхмерный тензор размером (2, 3, 4) и переставим его оси в порядке (2, 0, 1):

import torch t = torch.arange(24).reshape(2, 3, 4) res = t.permute(2, 0, 1) print(f"Shape after permute: {res.shape}")

Результат выполнения кода:

Shape after permute: torch.Size([4, 2, 3])

Пример

Рассмотрим перестановку осей двумерного тензора (матрицы), что эквивалентно транспонированию:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], ]) res = t.permute(1, 0) print(res)

Результат выполнения кода:

tensor([ [1, 4], [2, 5], [3, 6], ])

Пример

Перестановка осей четырёхмерного тензора, что часто используется при работе с батчами изображений (размерности: батч, каналы, высота, ширина):

import torch t = torch.randn(4, 3, 32, 32) print(f"Original shape: {t.shape}") # Меняем местами каналы и высоту res = t.permute(0, 2, 1, 3) print(f"New shape: {res.shape}")

Результат выполнения кода:

Original shape: torch.Size([4, 3, 32, 32]) New shape: torch.Size([4, 32, 3, 32])

Пример

Метод permute позволяет менять порядок осей в произвольном порядке. Порядок размерностей указывается через аргументы:

import torch t = torch.tensor([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], ]) print(f"Original shape: {t.shape}") res = t.permute(2, 0, 1) print(f"Shape after permute: {res.shape}")

Результат выполнения кода:

Original shape: torch.Size([2, 2, 2]) Shape after permute: torch.Size([2, 2, 2])

Смотрите также

  • метод transpose,
    который меняет местами две указанные оси
  • метод reshape,
    который изменяет форму тензора без перестановки осей
  • метод view,
    который создаёт новое представление тензора
  • метод t,
    который выполняет транспонирование двумерного тензора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить