为什么我不能使用transforms.ifft2



我有以下导入

import h5py
import numpy as np
import matplotlib.pyplot as plt
import torch
from fastmri.data import transforms

在几行代码之后,我有以下两行代码:

slice_kspace2=transforms.to_tensor(slice_kspace)
slice_image=transforms.ifft2(slice_kspace2)

第一行很好,所以transforms.to_tensor很好,但第二行不行,我得到了以下错误。

File "testForF.py", line 32, in <module>
slice_image=transforms.ifft2(slice_kspace2)
AttributeError: module 'fastmri.data.transforms' has no attribute 'ifft2'

请帮忙。我在哪里可以找到";变换";它有ifft2,所有人在处理快速MRI数据时都在使用它?

fastmri模块函数to_tensor将其转换为pytorch张量。现在你可以在这里使用pytorch函数iffthttps://pytorch.org/docs/stable/fft.html#torch-fft模块,并指定轴或将其转换为CuPy,如这里所示https://docs.cupy.dev/en/stable/reference/interoperability.html如果您的需求更像numpy,则使用DLpack方法。

CuPy 样品

import cupy
import torch
from torch.utils.dlpack import to_dlpack
from torch.utils.dlpack import from_dlpack
import h5py
import numpy as np
import matplotlib.pyplot as plt
from fastmri.data import transforms

slice_kspace2=transforms.to_tensor(slice_kspace)
dx = to_dlpack(slice_kspace2)
cx = cupy.fromDlpack(dx)
slice_image = cupy.fft.ifft2(cx)

Pytorch 样品

import h5py
import numpy as np
import matplotlib.pyplot as plt
import torch
from fastmri.data import transforms
slice_kspace2=transforms.to_tensor(slice_kspace)
slice_image = torch.fft.ifftn(slice_kspace2, (-2, -1))

编辑:目前,fastmri模块将其FFT变换命名为fastmri.fft2cfastmri.ifft2c,所以这可能就是您想要的?(请注意,它们是以FFT为中心的,而不是传统的FFT,这就是c的意思(此外,fastmri模块似乎有一个打包的带状去除示例https://github.com/facebookresearch/fastMRI/tree/master/banding_removal使用您推荐的内容。请注意,fastmri使用的FFT方法在内部只是torch函数,有一些装饰,比如居中,所以使用torch模块应该是你的首选。

相关内容

  • 没有找到相关文章

最新更新