{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
To showcase the features of ``mri-nufft``, we use ``\n \"cufinufft\"`` backend for ``model.operator`` without density compensation and ``\"gpunufft\"`` backend for ``model.sense_op`` with density compensation.
This example only showcases the autodiff capabilities, the learned sampling pattern is not scanner compliant as the scanner gradients required to implement it violate the hardware constraints. In practice, a projection $\\Pi_\\mathcal{Q}(\\mathbf{K})$ into the scanner constraints set $\\mathcal{Q}$ is recommended (see [Proj]_). This is implemented in the proprietary SPARKLING package [Sparks]_. Users are encouraged to contact the authors if they want to use it.
While we are only learning the NUFFT operator, we still need the gradient `wrt_data=True` to have all the gradients computed correctly.\n See [Projector]_ for more details.