readme: # XPDNet-brain-af8
  ---
  tags:
  - TensorFlow
  - MRI reconstruction
  - MRI
  datasets:
  - fastMRI
  ---
  
  This model was used to achieve the 2nd highest submission in terms of PSNR on the fastMRI dataset (see https://fastmri.org/leaderboards/).
  It is a base model for acceleration factor 8.
  The model uses 25 iterations and a medium MWCNN, and a big sensitivity maps refiner.
  
  ## Model description
  For more details, see https://arxiv.org/abs/2010.07290.
  This section is WIP.
  
  ## Intended uses and limitations
  This model can be used to reconstruct brain data from Siemens scanner at acceleration factor 8.
  It was shown [here](https://arxiv.org/abs/2106.00753), that it can generalize well, although further tests are required.
  
  ## How to use
  This model can be loaded using the following repo: https://github.com/zaccharieramzi/fastmri-reproducible-benchmark.
  After cloning the repo, `git clone https://github.com/zaccharieramzi/fastmri-reproducible-benchmark`, you can install the package via `pip install fastmri-reproducible-benchmark`.
  The framework is TensorFlow.
  
  You can initialize and load the model weights as follows:
  ```python
  import tensorflow as tf
  
  from fastmri_recon.models.subclassed_models.denoisers.proposed_params import get_model_specs
  from fastmri_recon.models.subclassed_models.xpdnet import XPDNet
  
  
  n_primal = 5
  model_fun, model_kwargs, n_scales, res = [
          (model_fun, kwargs, n_scales, res)
          for m_name, m_size, model_fun, kwargs, _, n_scales, res in get_model_specs(n_primal=n_primal, force_res=False)
          if m_name == 'MWCNN' and m_size == 'medium'
  ][0]
  model_kwargs['use_bias'] = False
  run_params = dict(
      n_primal=n_primal,
      multicoil=True,
      n_scales=n_scales,
      refine_smaps=True,
      refine_big=True,
      res=res,
      output_shape_spec=True,
      n_iter=25,
  )
  model = XPDNet(model_fun, model_kwargs, **run_params)
  kspace_size = [1, 1, 320, 320]
  inputs = [
      tf.zeros(kspace_size + [1], dtype=tf.complex64),  # kspace
      tf.zeros(kspace_size, dtype=tf.complex64),  # mask
      tf.zeros(kspace_size, dtype=tf.complex64),  # smaps
      tf.constant([[320, 320]]),  # shape
  ]
  model(inputs)
  model.load_weights('model_weights.h5')
  ```
  
  Using the model is then as simple as:
  ```python
  model([
      kspace,  # shape: [n_slices, n_coils, n_rows, n_cols, 1]
      mask,  # shape: [n_slices, n_coils, n_rows, n_cols]
      smaps,  # shape: [n_slices, n_coils, n_rows, n_cols]
      shape,  # shape: [n_slices, 2]
  ])
  ```
  
  ## Limitations and bias
  The limitations and bias of this model have not been properly investigated.
  
  ## Training data
  This model was trained using the [fastMRI dataset](https://fastmri.org/dataset/).
  
  ## Training procedure
  The training procedure is described in https://arxiv.org/abs/2010.07290.
  This section is WIP.
  
  ## Evaluation results
  On the fastMRI validation dataset, the same model with a smaller sensitivity maps refiner gives the following results for 30 validation volumes per contrast:
  
  | Contrast | T1     | T2     | FLAIR  | T1-POST |
  |----------|--------|--------|--------|---------|
  | PSNR     | 38.57  | 37.41  |  36.81  | 38.90   |
  | SSIM     | 0.9348 | 0.9404 |  0.9086 | 0.9517  |
  
  Further results can be seen on the fastMRI leaderboards for the test and challenge dataset: https://fastmri.org/leaderboards/
  
  
  ## Bibtex entry
  ```
  @inproceedings{Ramzi2020d,
  archivePrefix = {arXiv},
  arxivId = {2010.07290},
  author = {Ramzi, Zaccharie and Ciuciu, Philippe and Starck, Jean-Luc},
  booktitle = {ISMRM},
  eprint = {2010.07290},
  pages = {1--4},
  title = {{XPDNet for MRI Reconstruction: an application to the 2020 fastMRI challenge}},
  url = {http://arxiv.org/abs/2010.07290},
  year = {2021}
  }
  ```
  
  