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 * (размер_последнего_измерения - 1)- Параметры
-
- input (Тензор) – входной тензор
-
s (Кортеж[целое число], необязательно) – Размер сигнала в измерениях преобразования. Если указано, каждое измерение
dim[i]будет либо заполнено нулями, либо обрезано до длиныs[i]перед вычислением вещественного преобразования Фурье. Если задана длина-1, в этом измерении не производится заполнение нулями. По умолчанию чётный размер вывода в последнем измерении:s[-1] = 2*(input.size(dim[-1]) - 1). - dim (Кортеж[целое число], необязательно) – Измерения, которые нужно преобразовать. Последнее измерение должно быть измерением, сжатым с помощью полуэрмитовой функции. По умолчанию: два последних измерения.
-
norm (строка, необязательно) –
Режим нормализации. Для обратного преобразования (
irfft2()) они соответствуют:-
"forward"- без нормализации -
"backward"- нормализация на1/n -
"ortho"- нормализация на1/sqrt(n)(делая обратное преобразование Фурье ортонормированным)
Где
n = prod(s)- логический размер обратного преобразования Фурье. Вызов прямого преобразования (rfft2()) с тем же режимом нормализации применит общую нормализацию1/nмежду двумя преобразованиями. Это необходимо для того, чтобыirfft2()был точной обратной операцией.По умолчанию
"backward"(нормализация на1/n). -
- Ключевые аргументы
-
out (Тензор, необязательно) – выходной тензор.
Пример
>>> 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)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.fft.irfft2.html