コード例 #1
0
    #maskTst=np.fft.fftshift(np.fft.fftshift(maskTst,1),2)
    maskTst = np.squeeze(np.transpose(maskTst[0 + st:NF + st, :, :],
                                      [0, 1, 2]))
    maskTst = np.fft.fftshift(np.fft.fftshift(maskTst, 1), 2)

    #maskTst=np.tile(maskTst[...,np.newaxis],(1,1,1,2))
    maskTst = np.reshape(maskTst, (NF, nx * nx))

res = np.zeros((NF, nbasis, nx * nx))
for k in range(NF):
    tmp3 = np.tile(maskTst[k], (nbasis, 1))  #*tmp2
    res[k] = np.diag(V[:, k]) @ tmp3

#res=np.reshape(res,(int(NF/batch_sz),batch_sz,nbasis,nx*nx))
#%% make them pytorch tensors
B = torch.tensor(sf.c2r(kdata1))
atbT = torch.tensor(sf.c2r(atbV))
csmT = torch.tensor(sf.c2r(csmTrn))
maskT = torch.tensor(res).to(dtype=torch.float16)
maskT1 = torch.tensor(maskTst)
VT = torch.tensor(V)
sT = torch.tensor(sbasis)
W = torch.tensor(W)
#%% take them to gpu
#B=B.to(gpu)
#atbT=atbT.to(gpu)
csmT = csmT.to(gpu)
#maskT=maskT.to(dtype=torch.float16)
maskT1 = maskT1.to(gpu, dtype=torch.float16)

VT = VT.to(gpu)
コード例 #2
0
    kdata = kdata / np.max(np.abs(kdata))

    msk = np.zeros((NF, nx * nx), dtype='float32')
    for k in range(NF):
        indx = np.squeeze(S[k, 0])
        msk[k, indx - 1] = 1

    maskTst = np.reshape(msk, (NF, nx, nx))
    #maskTst=np.transpose(maskTst,(0,2,1))
    maskTst = maskTst[0 + st:NF + st]
    maskTst = np.fft.fftshift(np.fft.fftshift(maskTst, 1), 2)
    maskTst = np.reshape(maskTst, (NF, nx * nx))

    #res=np.reshape(res,(int(NF/batch_sz),batch_sz,nbasis,nx*nx))
    #%% make them pytorch tensors
    kdataT = torch.tensor(sf.c2r(kdata))
    csmT = torch.tensor(sf.c2r(csm))
    maskT = torch.tensor(maskTst)
    VT = torch.tensor(V)
    sT = torch.tensor(sb)
    #W=torch.tensor(W)
    #Nv=torch.tensor(nav)
    #%% take them to gpu

    csmT = csmT.to(gpu)
    maskT = maskT.to(gpu, dtype=torch.float32)
    VT = VT.to(gpu)
    #    sT=sT.to(gpu)
    #Nv=Nv.to(gpu)
    #%%
コード例 #3
0
atbV = atbV * nx
atbV = np.transpose(atbV, [1, 0])
atbV = np.reshape(atbV, (nbasis, nx, nx))
atbV = atbV.astype(np.complex64)
#atbV=np.fft.fftshift(np.fft.fftshift(atbV,1),2)
atbV = np.transpose(atbV, [0, 2, 1])
del tmp, tmp1, tmp2, tmp3

with h5.File(directory + 'S_mask.h5', 'r') as f:
    maskTst = np.asarray(f['S'])
    #maskTst=np.fft.fftshift(np.fft.fftshift(maskTst,1),2)
    maskTst = np.squeeze(np.transpose(maskTst[0 + st:NF + st, :, :],
                                      [0, 2, 1]))

#%% make them pytorch tensors
atbT = torch.tensor(sf.c2r(atbV))
csmT = torch.tensor(sf.c2r(csmTrn))
maskT = torch.tensor(np.tile(maskTst[..., np.newaxis], (1, 1, 1, 2)))
VT = torch.tensor(V)
sT = torch.tensor(sbasis)
W = torch.tensor(W)
#%% take them to gpu
atbT = atbT.to(gpu)
csmT = csmT.to(gpu)
maskT = maskT.to(gpu, dtype)
VT = VT.to(gpu)
W = W.to(gpu, dtype)
sT = sT.to(gpu)
#%%
unet = UnetClass()
modelDir = directory1 + 'wts-' + str(chkPoint) + '.pt'
コード例 #4
0
res2=np.zeros((nx,nx,NF),dtype=complex)  
  
for i in range(NF):
    for j in range(nch):
        tmp=kdata2[j,i,:]
        tmp=np.expand_dims(tmp,axis=1)
        tmp=np.reshape(tmp,(nx,nx))
        tmp1=tmp1+np.fft.ifft2(tmp)*np.conj(csm[j])
    res2[:,:,i]=tmp1
    tmp1=np.zeros((nx,nx))    
res2=res2*nx
res2=np.transpose(res2,[2,1,0])
res2=np.fft.fftshift(np.fft.fftshift(res2,1),2)
#%%
########################################################
y1=torch.tensor(sf.c2r(res1))
y2=torch.tensor(sf.c2r(res2))

y1=y1.to(gpu)
y2=y2.to(gpu)

y1=y1.permute(0,3,1,2)
y2=y2.permute(0,3,1,2)

directory='/Users/ahhmed/pytorch_sense'

unet=UnetClass()
unet=unet.to(gpu)
optimizer=torch.optim.Adam(unet.parameters(),lr=1e-3)
def lossFun(pred,org):
    loss=torch.mean(torch.abs(pred-org))
コード例 #5
0
ファイル: main.py プロジェクト: ahaseebahmed/Code_uiowa
"""

import numpy as np
import matplotlib.pyplot as plt
import torch
import supportingFun as sf

gpu=torch.device('cuda:0')

org=np.load('data.npz')['org']
csm=np.load('data.npz')['csm']
mask=np.load('data.npz')['mask']


#%% make them pytorch tensors
orgT=torch.tensor(sf.c2r(org))
csmT=torch.tensor(sf.c2r(csm))
maskT=torch.tensor(np.tile(mask[...,np.newaxis],(1,1,2)))

#%% take them to gpu
orgT=orgT.to(gpu)
csmT=csmT.to(gpu)
maskT=maskT.to(gpu)

#%% make A and At operators
def pt_A(orgT,csmT,maskT):
    tmp=sf.pt_cpx_multipy(orgT,csmT)
    tmp=sf.pt_fft2c(tmp)
    bT=maskT*tmp
    return bT
コード例 #6
0
############################################################
with h5.File(directory+'S_mask.h5', 'r') as f: 
  maskTst=np.asarray(f['S'])
  #maskTst=np.fft.fftshift(np.fft.fftshift(maskTst,1),2)
  maskTst=np.squeeze(np.transpose(maskTst[0+st:NF+st,:,:],[0,1,2]))
  #maskTst=np.tile(maskTst[...,np.newaxis],(1,1,1,2))
  maskTst=np.reshape(maskTst,(NF,nx*nx))

res=np.zeros((NF,nbasis,nx*nx))
for k in range(NF):
    tmp3=np.tile(maskTst[k],(nbasis,1))#*tmp2
    res[k]=np.diag(V[:,k])@tmp3

res=np.reshape(res,(int(NF/batch_sz),batch_sz,nbasis,nx*nx))
#%% make them pytorch tensors
B=torch.tensor(sf.c2r(kdata))
#atbT=torch.tensor(sf.c2r(atbV))
csmT=torch.tensor(sf.c2r(csmTrn))
maskT=torch.tensor(res).to(dtype=torch.float16)
VT=torch.tensor(V)
sT=torch.tensor(sbasis)
W=torch.tensor(W)
#%% take them to gpu
B=B.to(gpu)
#atbT=atbT.to(gpu)
csmT=csmT.to(gpu)
#maskT=maskT.to(gpu,dtype=torch.float16)
VT=VT.to(gpu)
W=W.to(gpu,dtype)
sT=sT.to(gpu)
コード例 #7
0
ファイル: main_aha.py プロジェクト: ahaseebahmed/Code_uiowa
    atb = atb.astype(np.complex64)
    atb = np.squeeze(np.transpose(atb[0:NF, :, :], [0, 2, 1]))

with h5.File(directory + 'S_mask.h5', 'r') as f:
    maskTst = np.asarray(f['S'])
    maskTst = np.squeeze(maskTst[0:NF, :, :])

#org=np.load('data.npz')['org']
#csm=np.load('data.npz')['csm']
#mask=np.load('data.npz')['mask']

csm = csmTrn
mask = maskTst

#%% make them pytorch tensors
orgT = torch.tensor(sf.c2r(atb))
csmT = torch.tensor(sf.c2r(csm))
maskT = torch.tensor(np.tile(mask[..., np.newaxis], (1, 1, 2)))

#%% take them to gpu
orgT = orgT.to(gpu)
csmT = csmT.to(gpu)
maskT = maskT.to(gpu)


#%% make A and At operators
def pt_A(orgT, csmT, maskT):
    tmp = sf.pt_cpx_multipy(orgT, csmT)
    tmp = sf.pt_fft2c(tmp)
    bT = maskT * tmp
    return bT