annotate 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
rev   line source
nikcleju@0 1 # -*- coding: utf-8 -*-
nikcleju@0 2 """
nikcleju@17 3 Defines standard parameters for approximate reconstruction simulation
nikcleju@0 4
nikcleju@17 5 Author: Nicolae Cleju
nikcleju@0 6 """
nikcleju@17 7 __author__ = "Nicolae Cleju"
nikcleju@17 8 __license__ = "GPL"
nikcleju@17 9 __email__ = "nikcleju@gmail.com"
nikcleju@0 10
nikcleju@0 11 import numpy
nikcleju@17 12
nikcleju@17 13 # Solver algorithms to run
nikcleju@0 14 from algos import *
nikcleju@0 15
nikcleju@17 16 # Test parameters
nikcleju@15 17 paramstest = dict()
nikcleju@21 18 #paramstest['algosN'] = nesta, # tuple of algorithms not depending on lambda
nikcleju@21 19 #paramstest['algosL'] = lambda_sl0, # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@21 20 paramstest['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@21 21 paramstest['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst
nikcleju@15 22 paramstest['d'] = 50.0
nikcleju@15 23 paramstest['sigma'] = 2.0
nikcleju@15 24 paramstest['deltas'] = numpy.array([0.05, 0.45, 0.95])
nikcleju@15 25 paramstest['rhos'] = numpy.array([0.05, 0.45, 0.95])
nikcleju@15 26 #deltas = numpy.array([0.95])
nikcleju@15 27 #deltas = numpy.arange(0.05,1.,0.05)
nikcleju@15 28 #rhos = numpy.array([0.05])
nikcleju@17 29 paramstest['numvects'] = 10; # Number of vectors to generate
nikcleju@21 30 paramstest['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@15 31 # Values for lambda
nikcleju@15 32 #lambdas = [0 10.^linspace(-5, 4, 10)];
nikcleju@15 33 paramstest['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@15 34 paramstest['savedataname'] = 'approx_pt_stdtest.mat'
nikcleju@15 35 paramstest['saveplotbase'] = 'approx_pt_stdtest_'
nikcleju@15 36 paramstest['saveplotexts'] = ('png','pdf','eps')
nikcleju@0 37
nikcleju@0 38
nikcleju@21 39 # Prove 11 convergence
nikcleju@19 40 paramsl1prove = dict()
nikcleju@19 41 paramsl1prove['algosN'] = nesta, # tuple of algorithms not depending on lambda
nikcleju@19 42 paramsl1prove['algosL'] = lambda_bp, # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@19 43 paramsl1prove['d'] = 50.0
nikcleju@19 44 paramsl1prove['sigma'] = 2.0
nikcleju@19 45 paramsl1prove['deltas'] = numpy.array([0.8]) # m = 0.8*50 = 40
nikcleju@19 46 paramsl1prove['rhos'] = numpy.array([0.15]) # l = d - rho*m = 50 - 0.15*40 = 44
nikcleju@19 47 paramsl1prove['numvects'] = 100; # Number of vectors to generate
nikcleju@19 48 paramsl1prove['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@19 49 paramsl1prove['lambdas'] = numpy.array([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000])
nikcleju@19 50 paramsl1prove['savedataname'] = 'prove_approx_ell1.mat'
nikcleju@19 51 paramsl1prove['saveplotbase'] = 'prove_approx_ell1'
nikcleju@19 52 paramsl1prove['saveplotexts'] = ('png','pdf','eps')
nikcleju@19 53
nikcleju@19 54
nikcleju@0 55 # Standard parameters 1
nikcleju@0 56 # All algorithms, 100 vectors
nikcleju@17 57 # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
nikcleju@17 58 # Noise 40db
nikcleju@17 59 params1 = dict()
nikcleju@17 60 params1['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@17 61 params1['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@17 62 params1['d'] = 50.0
nikcleju@21 63 params1['sigma'] = 1.2
nikcleju@17 64 params1['deltas'] = numpy.arange(0.05,1.,0.05)
nikcleju@17 65 params1['rhos'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 66 params1['numvects'] = 100; # Number of vectors to generate
nikcleju@17 67 params1['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@17 68 params1['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@21 69 params1['savedataname'] = 'approx_pt_params1.mat'
nikcleju@21 70 params1['saveplotbase'] = 'approx_pt_params1_'
nikcleju@17 71 params1['saveplotexts'] = ('png','pdf','eps')
nikcleju@0 72
nikcleju@0 73 # Standard parameters 2
nikcleju@0 74 # All algorithms, 100 vectors
nikcleju@17 75 # d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
nikcleju@17 76 # Noise 40db
nikcleju@17 77 params2 = dict()
nikcleju@17 78 params2['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@17 79 params2['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@21 80 params2['d'] = 50.0
nikcleju@21 81 params2['sigma'] = 2
nikcleju@17 82 params2['deltas'] = numpy.arange(0.05,1.,0.05)
nikcleju@17 83 params2['rhos'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 84 params2['numvects'] = 100; # Number of vectors to generate
nikcleju@17 85 params2['SNRdb'] = 40.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@17 86 params2['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@21 87 params2['savedataname'] = 'approx_pt_params2.mat'
nikcleju@21 88 params2['saveplotbase'] = 'approx_pt_params2_'
nikcleju@17 89 params2['saveplotexts'] = ('png','pdf','eps')
nikcleju@0 90
nikcleju@0 91
nikcleju@17 92 # Standard parameters 3
nikcleju@0 93 # All algorithms, 100 vectors
nikcleju@17 94 # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
nikcleju@17 95 # Identical with 1 but with 20dB SNR noise
nikcleju@17 96 params3 = dict()
nikcleju@17 97 params3['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@17 98 params3['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@17 99 params3['d'] = 50.0
nikcleju@21 100 params3['sigma'] = 1.2
nikcleju@17 101 params3['deltas'] = numpy.arange(0.05,1.,0.05)
nikcleju@17 102 params3['rhos'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 103 params3['numvects'] = 100; # Number of vectors to generate
nikcleju@17 104 params3['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@17 105 params3['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@21 106 #params3['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
nikcleju@21 107 params3['savedataname'] = 'approx_pt_params3.mat'
nikcleju@21 108 params3['saveplotbase'] = 'approx_pt_params3_'
nikcleju@17 109 params3['saveplotexts'] = ('png','pdf','eps')
nikcleju@0 110
nikcleju@0 111 # Standard parameters 4
nikcleju@0 112 # All algorithms, 100 vectors
nikcleju@17 113 # d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
nikcleju@17 114 # Identical to 2 but with 20dB SNR noise
nikcleju@17 115 params4 = dict()
nikcleju@17 116 params4['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@17 117 params4['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@21 118 params4['d'] = 50.0
nikcleju@21 119 params4['sigma'] = 2.0
nikcleju@17 120 params4['deltas'] = numpy.arange(0.05,1.,0.05)
nikcleju@17 121 params4['rhos'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 122 params4['numvects'] = 100; # Number of vectors to generate
nikcleju@17 123 params4['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@17 124 params4['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@21 125 #params4['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
nikcleju@21 126 params4['savedataname'] = 'approx_pt_params4.mat'
nikcleju@21 127 params4['saveplotbase'] = 'approx_pt_params4_'
nikcleju@17 128 params4['saveplotexts'] = ('png','pdf','eps')
nikcleju@21 129
nikcleju@21 130
nikcleju@21 131 # Standard parameters 5
nikcleju@21 132 # All algorithms, 100 vectors
nikcleju@21 133 # d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
nikcleju@21 134 # VIRTUALLY NO NOISE, Noise 200db
nikcleju@21 135 params5 = dict()
nikcleju@21 136 params5['algosN'] = gap,mixed_sl0,mixed_bp,nesta # tuple of algorithms not depending on lambda
nikcleju@21 137 params5['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@21 138 params5['d'] = 50.0
nikcleju@21 139 params5['sigma'] = 1.2
nikcleju@21 140 params5['deltas'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 141 params5['rhos'] = numpy.arange(0.05,1.,0.05)
nikcleju@21 142 params5['numvects'] = 10; # Number of vectors to generate
nikcleju@21 143 params5['SNRdb'] = 200.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@21 144 params5['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
nikcleju@21 145 params5['savedataname'] = 'approx_pt_params5.mat'
nikcleju@21 146 params5['saveplotbase'] = 'approx_pt_params5_'
nikcleju@21 147 params5['saveplotexts'] = ('png','pdf','eps')
nikcleju@21 148
nikcleju@21 149 params3sl0 = dict()
nikcleju@21 150 params3sl0['algosN'] = mixed_sl0, # tuple of algorithms not depending on lambda
nikcleju@21 151 params3sl0['algosL'] = lambda_sl0, # tuple of algorithms depending on lambda (ABS-lambda)
nikcleju@21 152 params3sl0['d'] = 50.0
nikcleju@21 153 params3sl0['sigma'] = 1.2
nikcleju@21 154 params3sl0['deltas'] = numpy.arange(0.05,1.,0.25)
nikcleju@21 155 params3sl0['rhos'] = numpy.arange(0.05,1.,0.25)
nikcleju@21 156 #params3sl0['deltas'] = numpy.array([0.85])
nikcleju@21 157 #params3sl0['rhos'] = numpy.array([0.15])
nikcleju@21 158 params3sl0['numvects'] = 10; # Number of vectors to generate
nikcleju@21 159 params3sl0['SNRdb'] = 20.; # This is norm(signal)/norm(noise), so power, not energy
nikcleju@21 160 #params3sl0['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
nikcleju@21 161 params3sl0['lambdas'] = numpy.array([0.0001, 10000])
nikcleju@21 162 params3sl0['savedataname'] = 'approx_pt_params3sl0.mat'
nikcleju@21 163 params3sl0['saveplotbase'] = 'approx_pt_params3sl0_'
nikcleju@21 164 params3sl0['saveplotexts'] = ('png','pdf','eps')