Spec-Zone.ru › PyTorch 1

torch.fft.hfft2

torch.fft.hfft2(input, s=None, dim=(- 2, - 1), norm=None, *, out=None) → Tensor

Вычисляет двумерное дискретное преобразование Фурье эрмитово-симметричного input сигнала. Эквивалентно hfftn(), но по умолчанию преобразует только две последние размерности.

input интерпретируется как односторонний эрмитов сигнал во временной области. Благодаря свойству эрмитовости, преобразование Фурье будет вещественным.

Примечание

Поддерживает 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 (строка, необязательный) –

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

    • "forward" - нормализация по 1/n
    • "backward" - без нормализации
    • "ortho" - нормализация по 1/sqrt(n) (что делает эрмитово-Фурье преобразование ортогональным)

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

    По умолчанию "backward" (без нормализации).

Ключевые аргументы:

out (Тензор, необязательный) – выходной тензор.

Пример

Начиная с вещественного сигнала в частотной области, мы можем сгенерировать эрмитово-симметричный сигнал во временной области: >>> T = torch.rand(10, 9) >>> t = torch.fft.ihfft2(T)

Без указания длины вывода для hfftn(), обратный вызов не будет корректным, потому что входной сигнал имеет нечётную длину в последней размерности:

>>> torch.fft.hfft2(t).size()
torch.Size([10, 10])

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

>>> roundtrip = torch.fft.hfft2(t, T.size())
>>> roundtrip.size()
torch.Size([10, 9])
>>> torch.allclose(roundtrip, T)
True

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

Spec-Zone.ru

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