Spec-Zone.ru › PyTorch 2.14

torch.fft.irfft2

torch.fft.irfft2(input, s=None, dim=(-2, -1), norm=None, *, out=None) → Tensor [исходный код]

Вычисляет обратное преобразование для rfft2(). Эквивалентно irfftn(), но по умолчанию выполняет обратное преобразование Фурье только для двух последних измерений.

input интерпретируется как односторонний эрмитов сигнал в частотной области, полученный с помощью rfft2(). Согласно свойству эрмитовости результат будет вещественным.

Примечание

Некоторые входные частоты должны быть вещественными, чтобы удовлетворять свойству эрмитовости. В этих случаях мнимая составляющая игнорируется. Например, мнимая составляющая в члене с нулевой частотой не может быть представлена в вещественном результате и поэтому всегда игнорируется.

Примечание

Правильная интерпретация эрмитова входа зависит от длины исходных данных, заданной с помощью s. Это связано с тем, что каждой входной форме может соответствовать сигнал как нечётной, так и чётной длины. По умолчанию предполагается, что сигнал имеет чётную длину, поэтому для сигналов нечётной длины обратное преобразование не восстановит исходные данные должным образом. Поэтому рекомендуется всегда передавать форму сигнала s.

Примечание

Поддерживаются torch.half и torch.chalf на CUDA с архитектурой GPU SM53 или новее. Однако длина сигнала во всех преобразуемых измерениях должна быть степенью двойки. При аргументах по умолчанию размер последнего измерения должен быть равен (2^n + 1), поскольку аргумент s по умолчанию задаёт чётный размер выходных данных = 2 * (last_dim_size - 1)

Параметры:
  • input (Tensor) – входной тензор
  • s (Tuple[int], optional) – Размер сигнала в преобразуемых измерениях. Если задан, каждое измерение dim[i] будет дополнено нулями или обрезано до длины s[i] перед вычислением вещественного преобразования Фурье. Если для измерения задана длина -1, дополнение не выполняется. По умолчанию в последнем измерении задаётся чётный размер выходных данных: s[-1] = 2*(input.size(dim[-1]) - 1).
  • dim (Tuple[int], optional) – Измерения для преобразования. Последнее измерение должно быть сжатым измерением с половинной эрмитовой симметрией. По умолчанию используются два последних измерения.
  • norm (str, optional) –

    Режим нормализации. Для обратного преобразования (irfft2()) он соответствует следующим значениям:

    • "forward" — без нормализации
    • "backward" — нормализация на 1/n
    • "ortho" — нормализация на 1/sqrt(n) (вещественное обратное преобразование Фурье становится ортонормированным)

    Здесь n = prod(s) — логический размер обратного преобразования Фурье. Вызов прямого преобразования (rfft2()) с тем же режимом нормализации обеспечит общую нормализацию 1/n для двух преобразований. Это необходимо, чтобы irfft2() было точным обратным преобразованием.

    По умолчанию используется "backward" (нормализация на 1/n).

Именованные аргументы:

out (Tensor, optional) – выходной тензор.

Пример

>>> t = torch.rand(10, 9)
>>> T = torch.fft.rfft2(t)

Если не указать длину выходных данных для irfft2(), обратное преобразование не восстановит исходные данные должным образом, поскольку входные данные имеют нечётную длину в последнем измерении:

>>> torch.fft.irfft2(T).size()
torch.Size([10, 8])

Поэтому рекомендуется всегда передавать форму сигнала s.

>>> roundtrip = torch.fft.irfft2(T, t.size())
>>> roundtrip.size()
torch.Size([10, 9])
>>> torch.testing.assert_close(roundtrip, t, check_stride=False)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.fft.irfft2.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API