當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch fft2用法及代碼示例


本文簡要介紹python語言中 torch.fft.fft2 的用法。

用法:

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

參數

  • input(Tensor) -輸入張量

  • s(元組[int],可選的) -轉換維度中的信號大小。如果給定,每個維度 dim[i] 將在計算 FFT 之前補零或修剪到長度 s[i]。如果指定了長度-1,則在該維度中不進行填充。默認值:s = [input.size(d) for d in dim]

  • dim(元組[int],可選的) -要轉換的維度。默認值:最後兩個維度。

  • norm(str,可選的) -

    標準化模式。對於正向變換(fft2()),這些對應於:

    • "forward" - 通過 1/n 標準化

    • "backward" - 沒有標準化

    • "ortho" - 通過1/sqrt(n) 歸一化(使 FFT 正交化)

    其中 n = prod(s) 是邏輯 FFT 大小。使用相同的歸一化模式調用反向變換 ( ifft2() ) 將在兩個變換之間應用 1/n 的整體歸一化。這是使 ifft2() 完全相反所必需的。

    默認為"backward"(無規範化)。

關鍵字參數

out(Tensor,可選的) -輸出張量。

計算 input 的二維離散傅裏葉變換。等效於 fftn() ,但默認情況下僅對最後兩個維度進行 FFT。

注意

任何實數信號的傅立葉域表示都滿足埃爾米特性質:X[i, j] = conj(X[-i, -j])。此函數始終返回所有正頻率項和負頻率項,即使對於實際輸入,這些值的一半是多餘的。 rfft2() 返回更緊湊的單側表示,其中僅返回最後一個維度的正頻率。

示例

>>> x = torch.rand(10, 10, dtype=torch.complex64)
>>> fft2 = torch.fft.fft2(x)

離散傅裏葉變換是可分離的,因此這裏的fft2()相當於兩個一維的 fft() 調用:

>>> two_ffts = torch.fft.fft(torch.fft.fft(x, dim=0), dim=1)
>>> torch.testing.assert_close(fft2, two_ffts, check_stride=False)

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.fft.fft2。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。