lmbda = 2e-2 opt = cbpdn.ConvBPDN.Options({'Verbose': True, 'MaxMainIter': 200, 'HighMemSolve': True, 'RelStopTol': 5e-3, 'AuxVarObj': False, 'RelaxParam': 1.8, 'rho': 5e1*lmbda + 1e-1, 'AutoRho': {'Enabled': False, 'StdResiduals': False}}) """ Construct :class:`.admm.cbpdn.AddMaskSim` wrapper for :class:`.admm.cbpdn.ConvBPDN` and solve via wrapper. This example could also have made use of :class:`.admm.cbpdn.ConvBPDNMaskDcpl` (see example `cbpdn_md_gry`), which has similar performance in this application, but :class:`.admm.cbpdn.AddMaskSim` has the advantage of greater flexibility in that the wrapper can be applied to a variety of CSC solver objects. If the ``sporco-cuda`` extension is installed and a GPU is available, use the CUDA implementation of this combination. """ if cuda.device_count() > 0: ams = None print('%s GPU found: running CUDA solver' % cuda.device_name()) tm = util.Timer() with sys_pipes(), util.ContextTimer(tm): X = cuda.cbpdnmsk(D, sh, mskp, lmbda, opt) t = tm.elapsed() imgr = crop(sl + np.sum(fftconv(D, X, axes=(0, 1)), axis=-1)) else: ams = cbpdn.AddMaskSim(cbpdn.ConvBPDN, D, sh, mskp, lmbda, opt=opt) X = ams.solve() t = ams.timer.elapsed('solve') imgr = crop(sl + ams.reconstruct().squeeze()) """ Display solve time and reconstruction performance. """
""" lmbda = 1e-2 mu = 5e-1 opt = cbpdn.ConvBPDNGradReg.Options({'Verbose': True, 'MaxMainIter': 250, 'HighMemSolve': True, 'RelStopTol': 5e-3, 'AuxVarObj': False, 'AutoRho': {'Enabled': False}, 'rho': 0.5, 'L1Weight': wl1, 'GradWeight': wgr}) """ If GPU available, run CUDA ConvBPDNGradReg solver, otherwise run standard Python version. """ if cuda.device_count() > 0: print('%s GPU found: running CUDA solver' % cuda.device_name()) tm = util.Timer() with sys_pipes(), util.ContextTimer(tm): X = cuda.cbpdngrd(D, img, lmbda, mu, opt) t = tm.elapsed() else: print('GPU not found: running Python solver') c = cbpdn.ConvBPDNGradReg(D, img, lmbda, mu, opt) X = c.solve().squeeze() t = c.timer.elapsed('solve') print('Solve time: %.2f s' % t) """ Reconstruct the image from the sparse representation. """