BSREMIteration#
- class deepinv.optim.optim_iterators.BSREMIteration(eps=1e-6, sensitivity_threshold=1e-2, cost_fn=None, **kwargs)[source]#
Bases:
OptimIteratorPerforms a single BSREM epoch, updating the estimate once per measurement subset. See
deepinv.optim.BSREMfor algorithm details.- Parameters:
- forward(X, cur_data_fidelity, cur_prior, cur_params, y, physics, sensitivities, *args, **kwargs)[source]#
Perform one Block Sequential Regularized EM epoch.
- Parameters:
X (dict) – Dictionary containing the current iterate and estimated cost.
cur_data_fidelity (deepinv.optim.StackedPhysicsDataFidelity) – Data-fidelity terms corresponding to the physics subsets.
cur_prior (deepinv.optim.Prior) – Differentiable prior used for each subset update.
cur_params (dict) – Algorithm parameters
"stepsize","lambda", and"g_param".y (deepinv.utils.TensorList) – Measurement subsets.
physics (deepinv.physics.StackedLinearPhysics) – Physics operators corresponding to the measurement subsets.
sensitivities (list[torch.Tensor]) – Precomputed sensitivity maps \(A_l^T\mathbf{1}\) for each subset.
- Returns:
Dictionary
{"est": (x, None), "cost": F, "it": k + 1}containing the updated iterate and estimated cost.- Return type:
dict[str, tuple[torch.Tensor, None] | torch.Tensor | int | None]