Mercurial > hg > absrec
view stdparams_approx.py @ 21:d395461b92ae tip
Lots and lots of modifications. Approximate recovery script working.
author | Nic Cleju <nikcleju@gmail.com> |
---|---|
date | Mon, 23 Apr 2012 10:54:57 +0300 |
parents | 2837cfeaf353 |
children |
line wrap: on
line source
# -*- coding: utf-8 -*- """ Defines standard parameters for approximate reconstruction simulation Author: Nicolae Cleju """ __author__ = "Nicolae Cleju" __license__ = "GPL" __email__ = "nikcleju@gmail.com" import numpy # Solver algorithms to run from algos import * # Test parameters paramstest = dict() #paramstest['algosN'] = nesta, # tuple of algorithms not depending on lambda #paramstest['algosL'] = lambda_sl0, # tuple of algorithms depending on lambda (ABS-lambda) paramstest['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda paramstest['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst paramstest['d'] = 50.0 paramstest['sigma'] = 2.0 paramstest['deltas'] = numpy.array([0.05, 0.45, 0.95]) paramstest['rhos'] = numpy.array([0.05, 0.45, 0.95]) #deltas = numpy.array([0.95]) #deltas = numpy.arange(0.05,1.,0.05) #rhos = numpy.array([0.05]) paramstest['numvects'] = 10; # Number of vectors to generate paramstest['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy # Values for lambda #lambdas = [0 10.^linspace(-5, 4, 10)]; paramstest['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) paramstest['savedataname'] = 'approx_pt_stdtest.mat' paramstest['saveplotbase'] = 'approx_pt_stdtest_' paramstest['saveplotexts'] = ('png','pdf','eps') # Prove 11 convergence paramsl1prove = dict() paramsl1prove['algosN'] = nesta, # tuple of algorithms not depending on lambda paramsl1prove['algosL'] = lambda_bp, # tuple of algorithms depending on lambda (ABS-lambda) paramsl1prove['d'] = 50.0 paramsl1prove['sigma'] = 2.0 paramsl1prove['deltas'] = numpy.array([0.8]) # m = 0.8*50 = 40 paramsl1prove['rhos'] = numpy.array([0.15]) # l = d - rho*m = 50 - 0.15*40 = 44 paramsl1prove['numvects'] = 100; # Number of vectors to generate paramsl1prove['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy paramsl1prove['lambdas'] = numpy.array([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]) paramsl1prove['savedataname'] = 'prove_approx_ell1.mat' paramsl1prove['saveplotbase'] = 'prove_approx_ell1' paramsl1prove['saveplotexts'] = ('png','pdf','eps') # Standard parameters 1 # All algorithms, 100 vectors # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000 # Noise 40db params1 = dict() params1['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda params1['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda) params1['d'] = 50.0 params1['sigma'] = 1.2 params1['deltas'] = numpy.arange(0.05,1.,0.05) params1['rhos'] = numpy.arange(0.05,1.,0.05) params1['numvects'] = 100; # Number of vectors to generate params1['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy params1['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) params1['savedataname'] = 'approx_pt_params1.mat' params1['saveplotbase'] = 'approx_pt_params1_' params1['saveplotexts'] = ('png','pdf','eps') # Standard parameters 2 # All algorithms, 100 vectors # d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000 # Noise 40db params2 = dict() params2['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda params2['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda) params2['d'] = 50.0 params2['sigma'] = 2 params2['deltas'] = numpy.arange(0.05,1.,0.05) params2['rhos'] = numpy.arange(0.05,1.,0.05) params2['numvects'] = 100; # Number of vectors to generate params2['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy params2['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) params2['savedataname'] = 'approx_pt_params2.mat' params2['saveplotbase'] = 'approx_pt_params2_' params2['saveplotexts'] = ('png','pdf','eps') # Standard parameters 3 # All algorithms, 100 vectors # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000 # Identical with 1 but with 20dB SNR noise params3 = dict() params3['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda params3['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda) params3['d'] = 50.0 params3['sigma'] = 1.2 params3['deltas'] = numpy.arange(0.05,1.,0.05) params3['rhos'] = numpy.arange(0.05,1.,0.05) params3['numvects'] = 100; # Number of vectors to generate params3['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy params3['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) #params3['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100]) params3['savedataname'] = 'approx_pt_params3.mat' params3['saveplotbase'] = 'approx_pt_params3_' params3['saveplotexts'] = ('png','pdf','eps') # Standard parameters 4 # All algorithms, 100 vectors # d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000 # Identical to 2 but with 20dB SNR noise params4 = dict() params4['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda params4['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda) params4['d'] = 50.0 params4['sigma'] = 2.0 params4['deltas'] = numpy.arange(0.05,1.,0.05) params4['rhos'] = numpy.arange(0.05,1.,0.05) params4['numvects'] = 100; # Number of vectors to generate params4['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy params4['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) #params4['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100]) params4['savedataname'] = 'approx_pt_params4.mat' params4['saveplotbase'] = 'approx_pt_params4_' params4['saveplotexts'] = ('png','pdf','eps') # Standard parameters 5 # All algorithms, 100 vectors # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000 # VIRTUALLY NO NOISE, Noise 200db params5 = dict() params5['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda params5['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda) params5['d'] = 50.0 params5['sigma'] = 1.2 params5['deltas'] = numpy.arange(0.05,1.,0.05) params5['rhos'] = numpy.arange(0.05,1.,0.05) params5['numvects'] = 10; # Number of vectors to generate params5['SNRdb'] = 200.; # This is norm(signal)/norm(noise), so power, not energy params5['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000]) params5['savedataname'] = 'approx_pt_params5.mat' params5['saveplotbase'] = 'approx_pt_params5_' params5['saveplotexts'] = ('png','pdf','eps') params3sl0 = dict() params3sl0['algosN'] = mixed_sl0, # tuple of algorithms not depending on lambda params3sl0['algosL'] = lambda_sl0, # tuple of algorithms depending on lambda (ABS-lambda) params3sl0['d'] = 50.0 params3sl0['sigma'] = 1.2 params3sl0['deltas'] = numpy.arange(0.05,1.,0.25) params3sl0['rhos'] = numpy.arange(0.05,1.,0.25) #params3sl0['deltas'] = numpy.array([0.85]) #params3sl0['rhos'] = numpy.array([0.15]) params3sl0['numvects'] = 10; # Number of vectors to generate params3sl0['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy #params3sl0['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100]) params3sl0['lambdas'] = numpy.array([0.0001, 10000]) params3sl0['savedataname'] = 'approx_pt_params3sl0.mat' params3sl0['saveplotbase'] = 'approx_pt_params3sl0_' params3sl0['saveplotexts'] = ('png','pdf','eps')