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')