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