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