Misspecified Phase Retrieval with Generative Priors
-
Python 3.6
-
Tensorflow 1.5.0
-
Scipy 1.1.0
-
PyPNG
We provide the guideline to run our method MPRG and to compare it with several methods on the MNIST and CelebA datasets.
(1) Run experiments on MNIST dataset
(1-1) MNIST image recovery from measurement abs(Ax)+eta
python mnist_main_mpr.py --nonlinear-model 'abs(Ax)+eta' --num-outer-measurement-ls 200 300 400 500 600 700 800 --max-update-iter 120 --method-ls MPRS PPower MPRG_Step2 APPGD MPRG --noise-std-ls 0.0 0.01 0.1 0.5 1.0
(1-2) MNIST image recovery from measurement abs(Ax)+2tanh(abs(Ax))+eta
python mnist_main_mpr.py --nonlinear-model 'abs(Ax)+2tanh(abs(Ax))+eta' --num-outer-measurement-ls 200 300 400 500 600 700 800 --method-ls MPRS PPower MPRG_Step2 APPGD MPRG --noise-std-ls 0.0 0.01 0.1 0.5 1.0
(1-3) MNIST image recovery from measurement 2sq(Ax)+3sin(abs(Ax))+eta
python mnist_main_mpr.py --nonlinear-model '2sq(Ax)+3sin(abs(Ax))+eta' --num-outer-measurement-ls 200 300 400 500 600 700 800 --method-ls MPRS PPower MPRG_Step2 APPGD MPRG --noise-std-ls 0.0 0.01 0.1 0.5 1.0
(2) Run experiments on CelebA dataset (2-1) CelebA image recovery from measurement abs(Ax+eta)+5tanh(abs(Ax))
python celebA_main_mpr.py --nonlinear-model 'abs(Ax+eta)+5tanh(abs(Ax))' --num-outer-measurement-ls 2000 4000 6000 8000 --method-ls PPower APPGD MPRG --noise-std-ls 0.05 0.1 0.2 0.3 0.4 0.5
(3) Run experiments using the architecture of gernerative prior in [3]
python mnist_main_mpr_relu.py --nonlinear-model 'abs(Ax)' --num-outer-measurement-ls 200 300 400 500 600 700 800 --max-update-iter 120 --method-ls MPRG --noise-std-ls 0.0
Large parts of the code are derived from Bora et al., Hyder et al., Liu et al.