Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self, im_size, grid_size=None, numpoints=6, n_shift=None,
table_oversamp=2**10, kbwidth=2.34, order=0, coil_broadcast=False,
matadj=False):
super(KbInterpModule, self).__init__()
self.im_size = im_size
if grid_size is None:
self.grid_size = tuple(np.array(self.im_size) * 2)
else:
self.grid_size = grid_size
if n_shift is None:
self.n_shift = tuple(np.array(self.im_size) // 2)
else:
self.n_shift = n_shift
if isinstance(numpoints, int):
self.numpoints = (numpoints,) * len(self.grid_size)
else:
self.numpoints = numpoints
self.alpha = tuple(np.array(kbwidth) * np.array(self.numpoints))
if isinstance(order, int) or isinstance(order, float):
def __init__(self, im_size, grid_size=None, numpoints=6, n_shift=None,
table_oversamp=2**10, kbwidth=2.34, order=0, norm='None',
coil_broadcast=False, matadj=False):
super(KbNufftModule, self).__init__()
self.im_size = im_size
if grid_size is None:
self.grid_size = tuple(np.array(self.im_size) * 2)
else:
self.grid_size = grid_size
if n_shift is None:
self.n_shift = tuple(np.array(self.im_size) // 2)
else:
self.n_shift = n_shift
if isinstance(numpoints, int):
self.numpoints = (numpoints,) * len(self.grid_size)
else:
self.numpoints = numpoints
self.alpha = tuple(np.array(kbwidth) * np.array(self.numpoints))
if isinstance(order, int) or isinstance(order, float):
def __init__(self, smap, im_size, grid_size=None, numpoints=6, n_shift=None,
table_oversamp=2**10, kbwidth=2.34, order=0, norm='None',
coil_broadcast=False, coilpack=False, matadj=False):
super(SenseNufftModule, self).__init__()
self.im_size = im_size
if grid_size is None:
self.grid_size = tuple(np.array(self.im_size) * 2)
else:
self.grid_size = grid_size
if n_shift is None:
self.n_shift = tuple(np.array(self.im_size) // 2)
else:
self.n_shift = n_shift
if isinstance(numpoints, int):
self.numpoints = (numpoints,) * len(self.grid_size)
else:
self.numpoints = numpoints
self.alpha = tuple(np.array(kbwidth) * np.array(self.numpoints))
if isinstance(order, int) or isinstance(order, float):
smap=smap,
im_size=im_size,
numpoints=numpoints,
coilpack=True
).to(dtype=dtype, device=device)
adjsensenufft_ob = AdjMriSenseNufft(
smap=smap,
im_size=im_size,
numpoints=numpoints,
coilpack=True
).to(dtype=dtype, device=device)
x_forw = sensenufft_ob(x, ktraj)
y_back = adjsensenufft_ob(y, ktraj)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
sensenufft_ob = MriSenseNufft(
smap=smap,
im_size=im_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
adjsensenufft_ob = AdjMriSenseNufft(
smap=smap,
im_size=im_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
x_forw = sensenufft_ob(x, ktraj)
y_back = adjsensenufft_ob(y, ktraj)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
adjkbinterp_ob = KbInterpBack(
im_size=im_size,
grid_size=grid_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
real_mat, imag_mat = precomp_sparse_mats(ktraj, kbinterp_ob)
interp_mats = {
'real_interp_mats': real_mat,
'imag_interp_mats': imag_mat
}
x_forw = kbinterp_ob(x, ktraj, interp_mats)
y_back = adjkbinterp_ob(y, ktraj, interp_mats)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
adjkbnufft_ob = AdjKbNufft(
im_size=im_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
real_mat, imag_mat = precomp_sparse_mats(ktraj, kbnufft_ob)
interp_mats = {
'real_interp_mats': real_mat,
'imag_interp_mats': imag_mat
}
x_forw = kbnufft_ob(x, ktraj, interp_mats)
y_back = adjkbnufft_ob(y, ktraj, interp_mats)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
kbinterp_ob = KbInterpForw(
im_size=im_size,
grid_size=grid_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
adjkbinterp_ob = KbInterpBack(
im_size=im_size,
grid_size=grid_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
x_forw = kbinterp_ob(x, ktraj)
y_back = adjkbinterp_ob(y, ktraj)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
y = y.detach().to(dtype=dtype, device=device)
ktraj = ktraj.detach().to(dtype=dtype, device=device)
kbnufft_ob = KbNufft(
im_size=im_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
adjkbnufft_ob = AdjKbNufft(
im_size=im_size,
numpoints=numpoints
).to(dtype=dtype, device=device)
x_forw = kbnufft_ob(x, ktraj)
y_back = adjkbnufft_ob(y, ktraj)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol
im_size=im_size,
numpoints=numpoints,
coilpack=True
).to(dtype=dtype, device=device)
real_mat, imag_mat = precomp_sparse_mats(ktraj, sensenufft_ob)
interp_mats = {
'real_interp_mats': real_mat,
'imag_interp_mats': imag_mat
}
x_forw = sensenufft_ob(x, ktraj, interp_mats)
y_back = adjsensenufft_ob(y, ktraj, interp_mats)
inprod1 = inner_product(y, x_forw, dim=2)
inprod2 = inner_product(y_back, x, dim=2)
assert torch.norm(inprod1 - inprod2) < norm_tol