Skip to content

Solver for Bilevel Parameter Learning using a MPCC reformulation

Notifications You must be signed in to change notification settings

dvillacis/bimpcc

Repository files navigation

Solving Bilevel Parameter Learning Problems as MPCC

This code implements the experiments presented in the paper: ...

The main idea is to reformulate a nonsmooth bilevel parameter learning problem as a Mathematical Program with Complementarity Constraints

Prerequisites

This python module requires the following modules:

  • numpy
  • pylops
  • pyproximal
  • ipopt with SPRAL solver
  • pyoptsparse
  • pillow
  • scikit-image

pyOptSparse with IPOPT Installation

We refer the user to the OpenMDAO installation script for compiling and installing the required solver.

Installation

It is necessary to install the module using pip in developer mode. Once the repository is cloned, cd into the folder and execute

$ cd bimpcc
$ pip install -e .

Run MPCC Bilevel Parameter Learning

TV Denoising

$ python experiments/tv_denoising.py $dataset_folder $output_folder --tik $tikhonov_value --patch_size $patch_size --img_scale $img_scale

TV Inpainting

$ python experiments/tv_inpainting.py $dataset_folder $output_folder --tik $tikhonov_value --patch_size $patch_size

Directional TV (DTV) Denoising

$ python experiments/dtv_denoising.py $dataset_folder $output_folder --tik $tikhonov_value --patch_size $patch_size --angle $angle_diffusion

Directional TV (DTV) Inpainting

$ python experiments/dtv_inpainting.py $dataset_folder $output_folder --tik $tikhonov_value --patch_size $patch_size --angle $angle_diffusion

MRI TV Reconstruction

$ python experiments/mri_reconstruciton.py $dataset_folder $output_folder --tik $tikhonov_value --patch_size $patch_size --sampling_type $sampling_type --sampling_perc $sampling_perc

About

Solver for Bilevel Parameter Learning using a MPCC reformulation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published