mindscience.sciops.dft.RDFTn

class mindscience.sciops.dft.RDFTn(shape, dim=None, norm='backward', modes=None, compute_dtype=mstype.float32)[源代码]

1/2/3D 离散实数傅里叶变换。结果应与 scipy.fft.rfftn() 相同。

参数:
  • shape (tuple) - 要变换的维度形状,其他维度无需包含。

  • dim (tuple) - 要变换的维度。默认:None,将变换尾随维度。

  • norm (str) - 归一化模式,应为 'forward'、'backward'、'ortho' 之一。默认:'backward',与 torch.fft.rfftn 相同

  • modes (Union[tuple, int, None]) - 输出变换轴的长度。modes 必须不大于输入 'x' 维度的一半。默认值:None

  • compute_dtype (mindspore.dtype) - 输入张量的类型。默认:mstype.float32

输入:
  • ar (Tensor) - 要变换的实张量,尾随维度与 shape 对齐。

输出:
  • br (Tensor) - 输出张量的实部,尾随维度与 shape 对齐,除了最后一个维度,它应该是 shape[-1] / 2 + 1。

  • bi (Tensor) - 输出张量的虚部,尾随维度与 shape 对齐,除了最后一个维度,它应该是 shape[-1] / 2 + 1。

样例:

>>> from mindspore import ops
>>> from mindflow.core import RDFTn
>>> ar = ops.rand((2, 32, 512))
>>> dft_cell = RDFTn(ar.shape[-2:])
>>> br, bi = dft_cell(ar)
>>> print(br.shape)
(2, 32, 257)