def __init__(self, proj, geo, angles, niter, **kwargs): if "blocksize" in kwargs and kwargs['blocksize'] > 1: print( 'Warning: blocksize is set to {}, please do not specify blocksize for this algorithm' .format(angles.shape[0])) kwargs.update(dict(blocksize=angles.shape[0])) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): if "blocksize" not in kwargs: kwargs.update(blocksize=1) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if "alpha" not in kwargs: self.alpha = 0.002 if "alpha_red" not in kwargs: self.alpha_red = 0.95 if "rmax" not in kwargs: self.rmax = 0.95 if "maxl2err" not in kwargs: self.epsilon = ( im3DNORM(Ax(FDK(proj, geo, angles, gpuids=self.gpuids), geo, angles) - proj, 2) * 0.2 ) else: self.epsilon = kwargs["maxl2err"] if "tviter" not in kwargs: self.numiter_tv = 20 else: self.numiter_tv = kwargs["tviter"] if "regularisation" not in kwargs: self.regularisation = "minimizeTV" self.beta = self.lmbda self.beta_red = self.lmbda_red
def __init__(self, proj, geo, angles, niter, **kwargs): if "blocksize" in kwargs and kwargs['blocksize'] > 1: print( 'Warning: blocksize is set to 1, please use an OS version of the algorithm for blocksize > 1' ) kwargs.update(dict(blocksize=1)) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): # Don't precompute V and W. kwargs.update(dict(W=None, V=None)) kwargs.update(dict(blocksize=angles.shape[0])) self.log_parameters = False self.re_init_at_iteration = 0 IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if self.log_parameters: parameter_history = {} iterations = self.niter parameter_history['alpha'] = np.zeros([iterations], dtype=np.float32) parameter_history['beta'] = np.zeros([iterations], dtype=np.float32) parameter_history['gamma'] = np.zeros([iterations], dtype=np.float32) parameter_history['q_norm'] = np.zeros([iterations], dtype=np.float32) parameter_history['s_norm'] = np.zeros([iterations], dtype=np.float32) self.parameter_history = parameter_history self.__r__ = self.proj - \ Ax(self.res, self.geo, self.angles, 'Siddon', gpuids = self.gpuids) self.__p__ = Atb(self.__r__, self.geo, self.angles, gpuids=self.gpuids) p_norm = np.linalg.norm(self.__p__.ravel(), 2) self.__gamma__ = p_norm * p_norm
def __init__(self, proj, geo, angles, niter, **kwargs): if 'tvlambda' not in kwargs: kwargs.update(dict(tvlambda=50)) if 'tviter' not in kwargs: kwargs.update(dict(tviter=50)) # these two settings work well for nVoxel=[254,254,254] IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): self.blocksize = 20 if 'blocksize' not in kwargs else kwargs[ 'blocksize'] self.tvlambda = 50 if 'tvlambda' not in kwargs else kwargs['tvlambda'] self.tviter = 50 if 'tviter' not in kwargs else kwargs['tviter'] # these two settings work well for nVoxel=[254,254,254] IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): # Don't precompute V and W. kwargs.update(dict(W=None, V=None)) kwargs.update(dict(blocksize=angles.shape[0])) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if self.init is None: self.res += 1. self.W = Atb(np.ones(proj.shape, dtype=np.float32), geo, angles) self.W[self.W <= 0.] = np.inf
def __init__(self, proj, geo, angles, niter, **kwargs): if "blocksize" in kwargs and kwargs['blocksize'] > 1: print( 'Warning: blocksize is set to 1, please use an OS version of the algorithm for blocksize > 1' ) kwargs.update(dict(blocksize=1)) self.tvlambda = 50 if 'tvlambda' not in kwargs else kwargs['tvlambda'] self.tviter = 50 if 'tviter' not in kwargs else kwargs['tviter'] # these two settings work well for nVoxel=[254,254,254] IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): # Don't precompute W and V kwargs.update({"W": None, "V": None}) kwargs.update(dict(blocksize=angles.shape[0])) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) self.lmbda = 0.1 self.__L__ = 2.0e8 if "hyper" not in kwargs else kwargs["hyper"] self.__numiter_tv__ = 20 if "tviter" not in kwargs else kwargs["tviter"] self.__lambda__ = 0.1 if "tvlambda" not in kwargs else kwargs["tvlambda"] self.__t__ = 1 self.__bm__ = 1.0 / self.__L__ self.__p__ = 1 if "fista_p" not in kwargs else kwargs["fista_p"] self.__q__ = 1 if "fista_q" not in kwargs else kwargs["fista_q"]
def __init__(self, proj, geo, angles, niter, **kwargs): # Dont precompute W and V kwargs.update(dict(W=None, V=None, )) kwargs.update(dict(blocksize=angles.shape[0])) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) self.lmbda = 0.1 if 'hyper' not in kwargs: self.__L__ = 2.e4 else: self.__L__ = kwargs['hyper'] self.__t__ = 1 self.__bm__ = 1. / self.__L__
def __init__(self, proj, geo, angles, niter, **kwargs): IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if not kwargs.has_key('alpha'): self.alpha = 0.002 if not kwargs.has_key('alpha_red'): self.alpha_red = 0.95 if not kwargs.has_key('rmax'): self.rmax = 0.95 if not kwargs.has_key('maxl2err'): self.epsilon = im3DNORM(FDK(proj, geo, angles), 2) * 0.2 if not kwargs.has_key("numiter_tv"): self.numiter_tv = 20 if not kwargs.has_key('regularisation'): self.regularisation = 'minimizeTV' self.beta = self.lmbda self.beta_red = self.lmbda_red
def __init__(self, proj, geo, angles, niter, **kwargs): # if "blocksize" not in kwargs: # kwargs.update(dict(blocksize=1)) #kwargs.update(dict(regularisation="minimizeTV")) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if "maxl2err" not in kwargs: self.epsilon = ( im3DNORM(Ax(FDK(proj, geo, angles, gpuids=self.gpuids), geo, angles) - proj, 2) * 0.2 ) else: self.epsilon = kwargs["maxl2err"] self.numiter_tv = 20 if "tviter" not in kwargs else kwargs["tviter"] self.beta = self.lmbda self.beta_red = self.lmbda_red
def __init__(self, proj, geo, angles, niter, **kwargs): if 'blocksize' not in kwargs: kwargs.update(blocksize=1) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if 'alpha' not in kwargs: self.alpha = 0.002 if 'alpha_red' not in kwargs: self.alpha_red = 0.95 if 'rmax' not in kwargs: self.rmax = 0.95 if 'maxl2err' not in kwargs: self.epsilon = im3DNORM(FDK(proj, geo, angles), 2) * 0.2 if "numiter_tv" not in kwargs: self.numiter_tv = 20 if 'regularisation' not in kwargs: self.regularisation = 'minimizeTV' self.beta = self.lmbda self.beta_red = self.lmbda_red
def __init__(self,proj,geo,angles,niter,**kwargs): # Don't precompute V and W. kwargs.update(dict(W=None,V=None)) kwargs.update(dict(blocksize=angles.shape[0])) self.log_parameters = False # Avoid typo checking IterativeReconAlg.__init__(self,proj,geo,angles,niter,**kwargs) self.initialise_cgls() if self.log_parameters: parameter_history = {} iterations = self.niter parameter_history['alpha'] = np.zeros([iterations], dtype=np.float32) parameter_history['beta'] = np.zeros([iterations], dtype=np.float32) parameter_history['gamma'] = np.zeros([iterations], dtype=np.float32) parameter_history['q_norm'] = np.zeros([iterations], dtype=np.float32) parameter_history['s_norm'] = np.zeros([iterations], dtype=np.float32) self.parameter_history = parameter_history
def __init__(self, proj, geo, angles, niter, **kwargs): if 'blocksize' not in kwargs: kwargs.update(blocksize=1) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if 'alpha' not in kwargs: self.alpha = 0.002 if 'alpha_red' not in kwargs: self.alpha_red = 0.95 if 'rmax' not in kwargs: self.rmax = 0.95 if 'maxl2err' not in kwargs: self.epsilon = im3DNORM(FDK(proj, geo, angles), 2)*0.2 if "numiter_tv" not in kwargs: self.numiter_tv = 20 if 'regularisation' not in kwargs: self.regularisation = 'minimizeTV' self.beta = self.lmbda self.beta_red = self.lmbda_red
def __init__(self, proj, geo, angles, niter, **kwargs): # Don't precompute V and W. kwargs.update(dict(W=None, V=None)) kwargs.update(dict(blocksize=angles.shape[0])) self.log_parameters = False IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs) if self.log_parameters: parameter_history = {} iterations = self.niter parameter_history['alpha'] = np.zeros([iterations], dtype=np.float32) parameter_history['beta'] = np.zeros([iterations], dtype=np.float32) parameter_history['gamma'] = np.zeros([iterations], dtype=np.float32) parameter_history['q_norm'] = np.zeros([iterations], dtype=np.float32) parameter_history['s_norm'] = np.zeros([iterations], dtype=np.float32) self.parameter_history = parameter_history self.__r__ = self.proj - Ax(self.res, self.geo, self.angles, 'ray-voxel') self.__p__ = Atb(self.__r__, self.geo, self.angles) p_norm = np.linalg.norm(self.__p__.ravel(), 2) self.__gamma__ = p_norm * p_norm
def __init__(self, proj, geo, angles, niter, **kwargs): IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): kwargs.update(dict(blocksize=angles.shape[0])) IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)
def __init__(self, proj, geo, angles, niter, **kwargs): self.blocksize = 20 if 'blocksize' not in kwargs else kwargs[ "blocksize"] IterativeReconAlg.__init__(self, proj, geo, angles, niter, **kwargs)