mri.optimizers.forward_backward#

FISTA or POGM MRI reconstruction.

fista(gradient_op, linear_op, prox_op, cost_op, kspace_generator=None, estimate_call_period=None, lambda_init=1.0, max_nb_of_iter=300, x_init=None, metric_call_period=5, metrics={}, verbose=0, **lambda_update_params)[source]#

FISTA sparse reconstruction.

Parameters
  • gradient_op (instance of class GradBase) – the gradient operator.

  • linear_op (instance of LinearBase) – the linear operator: seek the sparsity, ie. a wavelet transform.

  • prox_op (instance of ProximityParent) – the proximal operator.

  • cost_op (instance of costObj) – the cost function used to check for convergence during the optimization.

  • kspace_generator (instance of class BaseKspaceGenerator, default None) – If not None, run the algorithm in an online way, where the data is updated between iterations.

  • estimate_call_period (int, default None) – In an online configuration (kspace_generator is defined), retrieve partial results at this interval.

  • lambda_init (float, (default 1.0)) – initial value for the FISTA step.

  • max_nb_of_iter (int (optional, default 300)) – the maximum number of iterations in the Condat-Vu proximal-dual splitting algorithm.

  • x_init (numpy.ndarray (optional, default None)) – Inital guess for the image

  • metric_call_period (int (default 5)) – the period on which the metrics are compute.

  • metrics (dict (optional, default None)) – the list of desired convergence metrics: {‘metric_name’: [@metric, metric_parameter]}. See modopt for the metrics API.

  • verbose (int (optional, default 0)) – the verbosity level.

  • lambda_update_params (dict,) – Parameters for the lambda update in FISTA mode

Returns

  • x_final (numpy.ndarray) – the estimated FISTA solution.

  • costs (list of float) – the cost function values.

  • metrics (dict) – the requested metrics values during the optimization.

pogm(gradient_op, linear_op, prox_op, cost_op=None, kspace_generator=None, estimate_call_period=None, max_nb_of_iter=300, x_init=None, metric_call_period=5, sigma_bar=0.96, metrics={}, verbose=0)[source]#

Perform sparse reconstruction using the POGM algorithm.

Parameters
  • gradient_op (instance of class GradBase) – the gradient operator.

  • linear_op (instance of LinearBase) – the linear operator: seek the sparsity, ie. a wavelet transform.

  • prox_op (instance of ProximityParent) – the proximal operator.

  • cost_op (instance of costObj, (default None)) – the cost function used to check for convergence during the optimization.

  • kspace_generator (instance of BaseKspaceGenerator, default None) – If not None, use it to perform an online reconstruction.

  • estimate_call_period (int, default None) – In an online configuration (kspace_generator is defined), retrieve partial results at this interval.

  • lambda_init (float, (default 1.0)) – initial value for the FISTA step.

  • max_nb_of_iter (int (optional, default 300)) – the maximum number of iterations in the POGM algorithm.

  • x_init (numpy.ndarray (optional, default None)) – the initial guess of image

  • metric_call_period (int (default 5)) – the period on which the metrics are computed.

  • metrics (dict (optional, default None)) – the list of desired convergence metrics: {‘metric_name’: [@metric, metric_parameter]}. See modopt for the metrics API.

  • verbose (int (optional, default 0)) – the verbosity level.

Returns

  • x_final (numpy.ndarray) – the estimated POGM solution.

  • costs (list of float) – the cost function values.

  • metrics (dict) – the requested metrics values during the optimization.