etomo.optimizers.forward_backward#

FISTA or POGM MRI reconstruction.

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

The FISTA sparse reconstruction

Parameters
  • gradient_op (GradBase) – the gradient operator.

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

  • prox_op (ProximityParent) – the proximal operator.

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

  • 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.

  • progress (bool, default True) – triggers progressbar

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

Returns

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

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

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

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

Perform sparse reconstruction using the POGM algorithm.

Parameters
  • gradient_op (GradBase) – the gradient operator.

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

  • prox_op (ProximityParent) – the proximal operator.

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

  • 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 (np.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.

  • progress (bool, default True) – triggers progressbar

Returns

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

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

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