jax.numpy.fft.fft2#
- jax.numpy.fft.fft2(a, s=None, axes=(-2, -1), norm=None)[源代码][源代码]#
沿着给定的轴计算二维离散傅里叶变换。
JAX 实现的
numpy.fft.fft2()
。- 参数:
- 返回:
包含沿给定
axes
对a
进行二维离散傅里叶变换的数组。- 返回类型:
参见
jax.numpy.fft.fft()
: 计算一维离散傅里叶变换。jax.numpy.fft.fftn()
: 计算多维离散傅里叶变换。jax.numpy.fft.ifft2()
: 计算二维逆离散傅里叶变换。
示例
jnp.fft.fft2
默认沿最后两个轴计算变换。>>> x = jnp.array([[[1, 3], ... [2, 4]], ... [[5, 7], ... [6, 8]]]) >>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.fft2(x) Array([[[10.+0.j, -4.+0.j], [-2.+0.j, 0.+0.j]], [[26.+0.j, -4.+0.j], [-2.+0.j, 0.+0.j]]], dtype=complex64)
当
s=[2, 3]
时,沿axes (-2, -1)
的变换维度将为(2, 3)
,而沿其他轴的维度将与输入的维度相同。>>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.fft2(x, s=[2, 3]) Array([[[10. +0.j , -0.5 -6.06j, -0.5 +6.06j], [-2. +0.j , -0.5 +0.87j, -0.5 -0.87j]], [[26. +0.j , 3.5-12.99j, 3.5+12.99j], [-2. +0.j , -0.5 +0.87j, -0.5 -0.87j]]], dtype=complex64)
当
s=[2, 3]
且axes=(0, 1)
时,沿axes (0, 1)
的变换形状将为(2, 3)
,而沿其他轴的维度将与输入相同。>>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.fft2(x, s=[2, 3], axes=(0, 1)) Array([[[14. +0.j , 22. +0.j ], [ 2. -6.93j, 4.-10.39j], [ 2. +6.93j, 4.+10.39j]], [[-8. +0.j , -8. +0.j ], [-2. +3.46j, -2. +3.46j], [-2. -3.46j, -2. -3.46j]]], dtype=complex64)
jnp.fft.ifft2
可以用来从jnp.fft.fft2
的结果中重建x
。>>> x_fft2 = jnp.fft.fft2(x) >>> jnp.allclose(x, jnp.fft.ifft2(x_fft2)) Array(True, dtype=bool)