Skip to content

Releases: mrphys/tensorflow-mri

TensorFlow MRI 0.22.0

28 Sep 17:27
cfd8930
Compare
Choose a tag to compare

Release 0.22.0

This release bumps the supported TF version to v2.10.x. No other new
features or bug fixes are included.

TensorFlow MRI 0.21.0

24 Jul 23:05
4c76d44
Compare
Choose a tag to compare

Release 0.21.0

This release contains new functionality for wavelet decomposition and
reconstruction and optimized Gram matrices for some linear operators. It also
redesigns the convex optimization module and contains some improvements to the
documentation.

Breaking Changes

  • tfmri.convex:

    • Argument ndim has been removed from all functions.
    • All functions will now require the domain dimension to be
      specified. Therefore, domain_dimension is now the first positional
      argument in several functions including ConvexFunctionIndicatorBall,
      ConvexFunctionNorm and ConvexFunctionTotalVariation. However, while
      this parameter is no longer optional, it is now possible to pass dynamic
      or static information as opposed to static only (at least in the general
      case, but specific operators may have additional restrictions).
    • For consistency and accuracy, argument axis of
      ConvexFunctionTotalVariation has been renamed to axes.

Major Features and Improvements

  • tfmri.convex:

    • Added new class ConvexFunctionL1Wavelet, which enables image/signal
      reconstruction with L1-wavelet regularization.
    • Added new argument gram_operator to ConvexFunctionLeastSquares,
      which allows the user to specify a custom, potentially more efficient Gram
      matrix.
  • tfmri.linalg:

    • Added new classes LinearOperatorNUFFT and LinearOperatorGramNUFFT
      to enable the use of NUFFT as a linear operator.
    • Added new class LinearOperatorWavelet to enable the use of wavelets
      as a linear operator.
  • tfmri.sampling:

    • Added new ordering type sorted_half to radial_trajectory.
  • tfmri.signal:

    • Added new functions wavedec and waverec for wavelet decomposition
      and reconstruction, as well as utilities wavelet_coeffs_to_tensor,
      tensor_to_wavelet_coeffs, and max_wavelet_level.

Bug Fixes and Other Changes

  • tfmri.recon:

    • Improved error reporting for least_squares.

TensorFlow MRI 0.20.0

18 Jun 12:10
7bd95b7
Compare
Choose a tag to compare

Release 0.20.0

Major Features and Improvements

  • tfmri.layers:

    • Added new layers MaxPooling1D, MaxPooling2D, MaxPooling3D,
      AveragePooling1D, AveragePooling2D and AveragePooling3D.
      These are drop-in replacements for the core Keras layers of the same name,
      but they also support complex values.
    • Added new layers DWT1D, DWT2D, DWT3D, IDWT1D, IDWT2D,
      and IDWT3D to compute 1D, 2D and 3D forward and inverse discrete wavelet
      transforms.
    • Layer ConvBlock is now deprecated in favor of the new endpoints in
      the tfmri.models submodule.
    • Layer UNet is now deprecated in favor of the new endpoints in
      the tfmri.models submodule.
  • tfmri.models:

    • Added new models ConvBlock1D, ConvBlock2D and ConvBlock3D. These
      replace the previous ConvBlock layer, which is now deprecated.
    • Added new models UNet1D, UNet2D and UNet3D. These replace
      the previous UNet layer, which is now deprecated.

Bug Fixes and Other Changes

  • tfmri.signal:

    • Improved static shape inference for dwt op.

TensorFlow MRI 0.19.0

01 Jun 13:08
b1fec86
Compare
Choose a tag to compare

Release 0.19.0

This release bumps the supported TensorFlow version to 2.9.

Major Features and Improvements

  • tfmri.image:

    • Added new arguments batch_dims and image_dims to
      image_gradients, gradient_magnitude, psnr, ssim and
      ssim_multiscale.
    • Argument rank of psnr, ssim and ssim_multiscale is now
      deprecated. To update, use image_dims instead.
    • image_gradients and gradient_magnitude now support complex inputs.
  • tfmri.losses:

    • Added new arguments batch_dims and image_dims to all image quality
      losses. Argument rank is now deprecated (use image_dims instead).
    • Added new arguments multichannel and complex_part to all image
      quality losses. These mirror the behaviour of the corresponding metrics
      and allows for single-channel inputs and extraction of parts from complex
      numbers, respectively.
    • The canonical API names StructuralSimilarityLoss and
      MultiscaleStructuralSimilarityLoss have been
      changed to SSIMLoss and SSIMMultiscaleLoss, respectively. The
      old names are still available, but may be removed in the future.
  • tfmri.metrics:

    • Image quality metrics can now accept complex inputs without also specifying
      complex_part, in which case the unmodified complex values will be passed
      to the downstream function. This may not be supported for all metrics.
    • Added new arguments batch_dims and image_dims to all image quality
      metrics. Argument rank is now deprecated (use image_dims instead).
    • The canonical API names PeakSignalToNoiseRatio,
      StructuralSimilarity and MultiscaleStructuralSimilarity have been
      changed to PSNR, SSIM and SSIMMultiscale, respectively. The
      old names are still available, but may be removed in the future.
  • tfmri.recon:

    • Added new argument preserve_phase to tfmri.recon.pf. This allows
      the user to recover the phase as well as the magnitude during partial
      Fourier reconstruction. Argument return_complex has the same behaviour
      and is now deprecated.
    • Added new aliases adjoint (for adj), least_squares
      (for lstsq) and partial_fourier (for pf). These are now the
      canonical aliases, but the old ones will still be supported.
  • tfmri.signal:

    • Added new ops dwt and idwt to compute the N-dimensional discrete
      wavelet transform and its inverse, respectively.
  • tfmri.plot:

    • Added new argument norm to image_sequence, tiled_image and
      tiled_image_sequence. This allows the user to specify the scaling
      to be applied before the colormap.

Bug Fixes and Other Changes

  • Fixed a bug with k-space weighting in homodyne detection method of
    tfmri.recon.partial_fourier.
  • Like core TensorFlow, we now compile with _GLIBCXX_USE_CXX11_ABI=1.
  • Like core TensorFlow, Python wheels now conform to manylinux2014, an
    upgrade from manylinux2010.

TensorFlow MRI 0.18.0

06 May 20:29
fb80dbc
Compare
Choose a tag to compare

Release 0.18.0

Major Features and Improvements

  • tfmri.convex:

    • All references to ndim in ConvexFunction and its subclasses have
      been deprecated in favor of domain_dimension or domain_shape. This
      applies to constructor arguments, properties and methods.
    • Refactored static and dynamic shape properties and methods to single-source
      shape information on the _shape and _shape_tensor methods.
      domain_dimension, domain_dimension_tensor, batch_shape and
      batch_shape_tensor now just call shape and shape_tensor and
      should not be overriden.
  • tfmri.initializers:

    • New module with initializers VarianceScaling, GlorotNormal,
      GlorotUniform, HeNormal, HeUniform, LecunNormal and
      LecunUniform. All initializers are drop-in replacements for their
      Keras counterparts and support complex values.
  • tfmri.io:

    • New function parse_twix to parse TWIX RAID files (Siemens raw data).
  • tfmri.layers:

    • Added new layers Conv1D, Conv2D and Conv3D. All layers
      are drop-in replacements for their Keras counterparts and support
      complex values.

Bug Fixes and Other Changes

  • Using a new API import system, which should address some issues with
    the autocomplete features of some editors.

TensorFlow MRI 0.17.0

22 Apr 17:14
bc61299
Compare
Choose a tag to compare

Release 0.17.0

Breaking Changes

  • tfmri.signal:

    • Renamed keyword argument traj of filter_kspace and crop_kspace
      to trajectory.

Major Features and Improvements

  • tfmri.plot:

    • New utility tiled_image.

TensorFlow MRI 0.16.0

13 Apr 08:32
ad9b5dd
Compare
Choose a tag to compare

Release 0.16.0

Breaking Changes

  • tfmri.convex:

    • Several of the inputs and outputs of admm_minimize have been renamed
      to improve clarity and to make the interface more consistent with the
      tfmri.optimize module.

Major Features and Improvements

  • tfmri.convex:

    • admm_minimize now supports batches of inputs.

    • admm_minimize has two new arguments f_prox_kwargs and
      g_prox_kwargs that allow passing additional arguments to the proximal
      operators of f and g.

    • admm_minimize has a new argument name that allows specifying
      the name of the operation.

    • Method _prox of ConvexFunctionQuadratic has a new argument
      solver_kwargs that allows passing additional arguments to the
      internal solver.

    • New properties shape and batch_shape for ConvexFunction and
      its subclasses. These allow retrieval of static shape information.

    • New methods ndim_tensor, shape_tensor and batch_shape_tensor
      for ConvexFunction and its subclasses. These allow retrieval of the
      dynamic shape information.

  • tfmri.linalg:

    • New argument bypass_gradient for conjugate_gradient.
  • tfmri.recon:

    • lstsq has a new argument return_optimizer_state which allows the
      user to retrieve the internal optimizer state.
  • tfmri.optimize:

    • New function gradient_descent implementing the gradient descent method
      for minimization of differentiable functions.
  • tfmri.plot:

    • New argument dpi for functions image_sequence and
      tiled_image_sequence.
    • New function close, alias of matplotlib.pyplot.close.

Bug Fixes and Other Changes

  • tfmri.convex:

    • Fixed a bug in method prox of ConvexFunctionNorm,
      ConvexFunctionL2Squared and ConvexFunctionQuadratic that caused
      errors when running in graph mode.
  • tfmri.linalg:

    • Fixed a bug in internal linear algebra framework that would cause errors
      when running in graph mode.
  • tfmri.plot:

    • Removed lazy import mechanism which was causing problems when using
      matplotlib outside TFMRI. For now we use regular imports.

TensorFlow MRI 0.15.0

02 Apr 00:02
92456ea
Compare
Choose a tag to compare

Release 0.15.0

Major Features and Improvements

  • tfmri.plot:

    • image_sequence and tiled_image_sequence now support different
      layout mechanisms via the argument layout.
    • image_sequence and tiled_image_sequence now support display
      bounding boxes via the arguments bbox_inches and pad_inches.

TensorFlow MRI 0.14.0

29 Mar 23:32
2fc819a
Compare
Choose a tag to compare

Release 0.14.0

Major Features and Improvements

  • tfmri.convex:

    • Added new classes ConvexFunctionNorm, ConvexFunctionIndicatorBall,
      ConvexFunctionIndicatorL1Ball and ConvexFunctionIndicatorL2Ball.
    • Added new method conj to ConvexFunction and its subclasses to
      support computation of convex conjugates.
  • tfmri.math:

    • Added new indicator functions: indicator_box, indicator_simplex and
      indicator_ball.
    • Added new projection functions: project_onto_box,
      project_onto_simplex and project_onto_ball.
  • tfmri.plot:

    • image_sequence and tiled_image_sequence now support RGB(A) data.
    • image_sequence and tiled_image_sequence now support use of
      titles via the arguments fig_title and subplot_titles.

Bug Fixes and Other Changes

  • tfmri.convex:

    • ConvexFunction will no longer raise an error when passed a
      tf.Tensor in the scale parameter.
  • tfmri.sampling:

    • spiral_trajectory will now return a tensor with known static shape.

TensorFlow MRI 0.13.0

14 Mar 23:13
7fb996c
Compare
Choose a tag to compare

Release 0.13.0

Major Features and Improvements

  • Moved most API endpoints into submodules. Direct access to these operators
    from the tfmri namespace is still possible, but this use is deprecated
    and will be removed in Release 1.0.0.