Mercurial > hg > absrec
changeset 18:4a967f4f18a0
Exact reconstruction now works.
author | Nic Cleju <nikcleju@gmail.com> |
---|---|
date | Thu, 05 Apr 2012 11:01:22 +0300 |
parents | 7fdf964f4edd |
children | 2837cfeaf353 |
files | stdparams_exact.py test_approx.py test_exact.py |
diffstat | 3 files changed, 28 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/stdparams_exact.py Tue Apr 03 16:27:18 2012 +0300 +++ b/stdparams_exact.py Thu Apr 05 11:01:22 2012 +0300 @@ -18,7 +18,7 @@ paramstest = dict() paramstest['algos'] = exact_gap,exact_sl0,exact_bp,exact_ompeps,exact_tst # tuple of algorithms #paramstest['algos'] = exact_bp_cvxopt, # tuple of algorithms -paramstest['d'] = 50.0 +paramstest['d'] = 200.0 paramstest['sigma'] = 1.2 paramstest['deltas'] = numpy.array([0.05, 0.45, 0.95]) paramstest['rhos'] = numpy.array([0.05, 0.45, 0.95])
--- a/test_approx.py Tue Apr 03 16:27:18 2012 +0300 +++ b/test_approx.py Thu Apr 05 11:01:22 2012 +0300 @@ -260,7 +260,10 @@ lambdas = params['lambdas'] numvects = params['numvects'] SNRdb = params['SNRdb'] - ncpus = params['ncpus'] + if 'ncpus' in params: + ncpus = params['ncpus'] + else: + ncpus = None savedataname = params['savedataname'] if ncpus is None: @@ -284,12 +287,14 @@ print " Running algorithms",[algotuple[1] for algotuple in algosN],[algotuple[1] for algotuple in algosL] # Prepare parameters + print "Generating task parameters..." taskparams = generateTaskParams(params) # Store global variables currmodule.ntasks = len(taskparams) # Run + print "Running..." taskresults = [] if doparallel: currmodule.printLock = multiprocessing.Lock()
--- a/test_exact.py Tue Apr 03 16:27:18 2012 +0300 +++ b/test_exact.py Thu Apr 05 11:01:22 2012 +0300 @@ -216,7 +216,7 @@ """ print "This is analysis recovery ABS exact script by Nic" - print "Running simulation + print "Running simulation" algos = params['algos'] d = params['d'] @@ -225,7 +225,10 @@ rhos = params['rhos'] numvects = params['numvects'] SNRdb = params['SNRdb'] - ncpus = params['ncpus'] + if 'ncpus' in params: + ncpus = params['ncpus'] + else: + ncpus = None savedataname = params['savedataname'] if ncpus is None: @@ -249,12 +252,14 @@ print " Running algorithms",[algotuple[1] for algotuple in algos] # Prepare parameters + print "Generating task parameters..." taskparams = generateTaskParams(params) # Store global variables currmodule.ntasks = len(taskparams) # Run + print "Running..." taskresults = [] if doparallel: currmodule.printLock = multiprocessing.Lock() @@ -326,6 +331,11 @@ currmodule.printLock.acquire() print "Caught exception when running algorithm",strname," :",e.message currmodule.printLock.release() + except ValueError as e: + if currmodule.printLock: + currmodule.printLock.acquire() + print "Caught ValueError exception when running algorithm",strname," :",e.message + currmodule.printLock.release() err[strname][iy] = numpy.linalg.norm(x0[:,iy] - xrec[strname][:,iy]) relerr[strname][iy] = err[strname][iy] / numpy.linalg.norm(x0[:,iy]) for algofunc,strname in algos: @@ -361,17 +371,20 @@ Generates figures from paper "Analysis-based sparse reconstruction with synthesis-based solvers". The figures are saved in the current folder. """ - run(stdparams_exact.std1) - plot(stdparams_exact.std1['savedataname']) + run(stdparams_exact.params1) + plot(stdparams_exact.params1['savedataname']) # Script main if __name__ == "__main__": # Set the number of cpus for paraller running (or comment to leave default = max) #stdparams_exact.paramstest['ncpus'] = 1 - + + # Run test parameters + #stdparams_exact.paramstest['ncpus'] = 1 + #run(stdparams_exact.paramstest) + #plot(stdparams_exact.paramstest['savedataname']) + + #stdparams_exact.params1['ncpus'] = 1 generateFig() - # Run test parameters - #run(stdparams_exact.paramstest) - #plot(stdparams_exact.paramstest['savedataname'])