Skip to content

Releases: mrphys/tensorflow-mri

TensorFlow MRI 0.12.0

13 Mar 23:09
77113b7
Compare
Choose a tag to compare

Release 0.12.0

Major Features and Improvements

  • tfmri.linalg:

    • New module containing linear algebra operators.
    • New classes LinearOperator, LinearOperatorAddition,
      LinearOperatorAdjoint, LinearOperatorComposition,
      LinearOperatorDiag, LinearOperatorFiniteDifference,
      LinearOperatorGramMatrix, LinearOperatorMRI and
      LinearOperatorScaledIdentity and new function conjugate_gradient.
  • tfmri.plot:

    • New module containing plotting utilities.
    • New functions image_sequence, tiled_image_sequence and show.
  • tfmri.recon:

    • New module containing functionality for image reconstruction.
    • New functions adj, grappa, lstsq, pf and sense. These
      are now the canonical API for image reconstruction.

Bug Fixes and Other Changes

  • New API export system, currently enabled for namespaces tfmri.linalg,
    tfmri.plot, tfmri.recon and tfmri.summary. The remaining
    namespaces will be moved to this API system in future releases.
  • Improvements to documentation: reduced verbosity of TOC tree and added links
    for common types.

TensorFlow MRI 0.11.0

10 Mar 01:35
83a9a27
Compare
Choose a tag to compare

Release 0.11.0

This release includes a redesign of the API docs.

Breaking Changes

  • tfmri:

    • LinearOperatorMRI: Argument sens_norm now defaults to True.
    • conjugate_gradient: Argument max_iter is now called
      max_iterations.
    • SVDCoilCompressor renamed to CoilCompressorSVD for consistency
      with the rest of the API.
    • filter_kspace: Argument filter_type has been renamed to
      filter_fn and can accept a callable in addition to a string.

Major Features and Improvements

  • tfmri:

    • Added new ops expand_trajectory and expand_density, which
      complement the existing flatten_trajectory and flatten_density.

Bug Fixes and Other Changes

  • tfmri:

    • hann and hamming now return 0 outside their domain, as expected.
    • atanfilt now returns the correct values for the negative part of the
      domain.
    • Improved error reporting for filter_kspace.

TensorFlow MRI 0.10.0

02 Mar 17:41
7a56ffa
Compare
Choose a tag to compare

Release 0.10.0

This release focuses on MRI reconstruction, with new functionality and major
refactoring of image reconstruction module as well as the associated linear
algebra and convex optimization modules.

This release also bumps the supported TensorFlow version to 2.8.

Breaking Changes

  • tfmri:

    • compress_coils no longer accepts a matrix argument. Use
      SVDCoilCompressor instead.
    • compress_coils no longer accepts a tol argument.
    • coil_compression_matrix has been removed. Use SVDCoilCompressor
      instead.
    • Keyword argument num_output_coils of compress_coils has been renamed
      to out_coils.
    • Removed LinearOperatorFFT, LinearOperatorNUFFT,
      LinearOperatorParallelMRI, LinearOperatorSensitivityModulation,
      LinearOperatorInterp, LinearOperatorRealWeighting.
      Use LinearOperatorMRI instead.
    • Removed LinearOperatorDifference. Use LinearOperatorFiniteDifference
      instead.
    • ConvexOperator abstract base class and all its subclasses have been
      removed. Use ConvexFunction and/or one of its subclasses instead.
    • Removed reconstruct op. Use one of the new reconstruction ops instead
      (see below).
    • Removed reconstruct_partial_kspace op. Use reconstruct_pf instead.

Major Features and Improvements

  • tfmri:

    • Added new ops broadcast_dynamic_shapes and broadcast_static_shapes
      to broadcast multiple shapes.
    • estimate_coil_sensitivities with method='espirit' can now be called
      with a statically unknown number of coils (graph mode).
    • estimate_coil_sensitivities with method='espirit' will now set the
      static number of maps, if possible (graph mode).
    • Added new class SVDCoilCompressor for flexible coil compression
      functionality.
    • Added new ops ConvexFunction,
      ConvexFunctionAffineMappingComposition,
      ConvexFunctionLinearOperatorComposition,
      ConvexFunctionL1Norm, ConvexFunctionL2Norm,
      ConvexFunctionL2NormSquared, ConvexFunctionTikhonov,
      ConvexFunctionTotalVariation, ConvexFunctionQuadratic and
      ConvexFunctionLeastSquares.
    • Added new image ops image_gradients and gradient_magnitude.
    • Added new image ops gmsd, gmsd2d and gmsd3d.
    • Added new image op extract_and_scale_complex_part.
    • Added new ops LinearOperatorMRI and LinearOperatorFiniteDifference.
    • conjugate_gradient now has seamless support for linear operators with
      the imaging mixin.
    • Added new math op normalize_no_nan.
    • Added new math ops block_soft_threshold, shrinkage and
      soft_threshold.
    • Added new op admm_minimize implementing the ADMM algorithm.
    • Added new reconstruction ops reconstruct_adj, reconstruct_lstsq,
      reconstruct_grappa, reconstruct_sense and reconstruct_pf.
    • Added new signal ops hann and atanfilt.
    • filter_kspace now supports Cartesian inputs and additional keyword
      arguments for filtering function via filter_kwargs.
    • Added new ops density_grid and random_sampling_mask for generation
      of Cartesian masks.
    • radial_density: added new parameter tiny_number, mirroring the one
      in radial_trajectory.
  • tfmri.callbacks:

    • TensorBoardImages: added new parameters display_fn, concat_axis,
      feature_keys, label_keys, prediction_keys and complex_part.
      These enable different levels of customization of the display function.
  • tfmri.metrics:

    • Added new argument multichannel to PeakSignalToNoiseRatio,
      StructuralSimilarity and MultiscaleStructuralSimilarity. This
      enables these metrics to accept inputs that do not have a channel axis,
      by setting multichannel=False.
    • Added new argument complex_part to PeakSignalToNoiseRatio,
      StructuralSimilarity and MultiscaleStructuralSimilarity. This
      enables these metrics to accept complex inputs and calculate the metric
      from the specified part.

TensorFlow MRI 0.9.0

03 Dec 14:34
Compare
Choose a tag to compare

Release 0.9.0

Major Features and Improvements

  • tfmr:

    • Added new parameter tiny_number to radial_trajectory and
      spiral_trajectory. This parameter can be used to control which tiny golden
      angle is used for tiny golden angle trajectories. Previously it was only
      possible to use the 7th tiny golden angle (which is now the default).
    • radial_trajectory and spiral_trajectory will now warn the user when
      a non-optimal number of views is specified for golden angle ordering.
  • tfmr.layers:

    • Added new functionality to ConvBlock:

      • A different activation for the last layer can now be specified with
        out_activation.
      • Bias vectors for convolutional layers can now be disabled with
        use_bias=False.
      • Block can now be made residual with use_residual=True.
      • Dropout layers may now be added with use_dropout=True. Additionally,
        the parameters dropout_rate and dropout_type can be used to specify
        the dropout rate and type (standard or spatial), respectively.
    • Added optional dropout layers to UNet. Dropout can be configured with the
      parameters use_dropout, dropout_rate and dropout_type.

TensorFlow MRI 0.8.0

11 Nov 13:23
7692a2d
Compare
Choose a tag to compare

Release 0.8.0

This release bumps the supported TensorFlow version to 2.7.

TensorFlow MRI 0.7.0

03 Nov 15:11
d6bc855
Compare
Choose a tag to compare

Release 0.7.0

Breaking Changes

  • tfmr:

    • The scaling of the densities returned by estimate_density,
      radial_density and estimate_radial_density has changed. This harmonizes
      the values returned by all three functions and enables correct NUFFT
      normalization. Any application relying on exact density values should be
      checked. Applications that only rely on the relative scaling between points
      should not be affected.
    • estimate_radial_density no longer accepts the input base_resolution.
      However, it will now accept the optional input readout_os.

Major Features and Improvements

  • tfmr:

    • Added new ops flatten_trajectory and flatten_density.
    • central_crop and resize_with_crop_or_pad now accept shape arguments
      whose length is less than the rank of tensor.
    • Added new argument norm to LinearOperatorFFT, LinearOperatorNUFFT and
      LinearOperatorParallelMRI. This argument controls FFT normalization.
    • Added new argument mask to LinearOperatorParallelMRI.
    • Added new argument padding_mode to op resize_with_crop_or_pad.
    • Added new method 'pics' to reconstruct.
    • Added new parameter ndim to TotalVariationRegularizer.
  • tfmr.callbacks:

    • Added module.
    • Added new callback TensorBoardImages.
  • tfmr.io:

    • Added module.
    • Added new function encode_gif.
  • tfmr.layers:

    • Added module.
    • Added new convolutional layers ConvBlock and UNet.
    • Added new preprocessing layers AddChannelDimension, Cast, ExpandDims,
      KSpaceResampling, RepeatTensor, ResizeWithCropOrPad,
      ScaleByMinMax and Transpose.
  • tfmr.losses:

    • Added module.
    • Added new losses StructuralSimilarityLoss,
      MultiscaleStructuralSimilarityLoss, ssim_loss and
      ssim_multiscale_loss.
  • tfmr.metrics:

    • Added new metrics DiceIndex and JaccardIndex (aliases of F1Score and
      IoU, respectively).
  • tfmr.summary:

    • Added module.
    • Added new function gif.

Bug Fixes and Other Changes

  • tfmr:

    • Fixed a bug in static shape inference for ops central_crop and
      resize_with_crop_or_pad.
    • Fixed a bug in view_as_complex that would result in incorrect results for
      multidimensional arrays.
    • Fixed a bug in LinearOperatorNUFFT that would result in incorrect batch
      shape processing when the rank of domain_shape was equal to the number of
      spatial dimensions.
    • Fixed a bug in TotalVariationRegularizer that would sometimes cause it to
      return an array instead of a scalar.

TensorFlow MRI 0.6.2

13 Oct 14:57
Compare
Choose a tag to compare

Release 0.6.2

Bug Fixes and Other Changes

  • tfmr:

    • Fixed a bug that would cause radial_density to fail when in graph mode.

TensorFlow MRI 0.6.1

30 Sep 10:19
4bb3c11
Compare
Choose a tag to compare

Release 0.6.1

This release contains some improvements to the documentation.

TensorFlow MRI 0.6.0

28 Sep 11:06
d66ed82
Compare
Choose a tag to compare

Release 0.6.0

Breaking Changes

  • The keyword arguments spacing and domain of the ops
    tfmr.radial_trajectory and tfmr.spiral_trajectory have been renamed to
    ordering and angle_range, respectively.
  • The range of the angles in 2D "full" radial/spiral trajectories will now be
    [0, 2 * pi] instead of [0, pi].
  • The range of the angles in 2D "half" radial trajectories will now be [0, pi]
    instead of [-pi/2, pi/2].
  • Multi-phase linear trajectories will now be interleaved.
  • The density calculated by radial_density will now be scaled differently.
  • Arguments domain_shape and points of LinearOperatorNUFFT have changed
    order.

Major Features and Improvements

  • tfmr:

    • Added new image ops total_variation and phantom.
    • Addew new array ops cartesian_product, meshgrid, ravel_multi_index and
      unravel_index.
    • Added new geometry module with ops rotate_2d and rotate_3d.
    • Added new optimizers module with op lbfgs_minimize.
    • Added new convex operators module with ops ConvexOperator,
      ConvexOperatorL1Norm, Regularizer and TotalVariationRegularizer.
    • Added new signal processing module with ops crop_kspace, filter_kspace
      and hamming.
    • Added new linear algebra ops LinearOperatorFFT and LinearOperatorInterp.
    • Added new math ops make_val_and_grad_fn, view_as_complex and
      view_as_real.
    • Added new k-space trajectory op estimate_radial_density.
    • Added new ordering methods "golden_half", "tiny_half" and
      "sphere_archimedean" to function radial_trajectory.
    • Added new method "inufft" to reconstruct.
    • Added new method "pipe" to estimate_density.
    • Added keyword argument rank to function radial_waveform.

Bug Fixes and Other Changes

  • tfmr:

    • Fixed a bug in radial_density that resulted in the DC component being
      underweighted.
    • Fixed a few bugs that would cause some ops to fail in graph mode.
    • Added graph mode tests.
    • Refactored testing modules.
    • Refactored linear algebra module.
    • Refactored utilities modules.
    • Added new utilities module plot_util.

TensorFlow MRI 0.5.0

29 Aug 19:34
8df4139
Compare
Choose a tag to compare

Release 0.5.0

This release focuses on the new metrics module and implements several
Keras metrics. It also adds some image reconstruction functionality.

Major Features and Improvements

  • tfmr:

    • Added new method "grappa" to reconstruct operation, implementing
      generalized autocalibrating partially parallel acquisitions (GRAPPA).
    • Added new operation reconstruct_partial_kspace for partial Fourier (PF)
      reconstruction. Supported PF methods are zero-filling, homodyne detection
      and projection onto convex sets.
    • Added new operation ravel_multi_index to convert arrays of
      multi-dimensionalindices to arrays of flat indices.
    • Added new operation extract_glimpses to extract patches or windows at the
      specified locations from N-dimensional images.
  • tfmr.metrics:

    • Added new confusion metrics module with multiple binary, multiclass and
      multilabel metrics: Accuracy, TruePositiveRate, TrueNegativeRate,
      PositivePredictiveValue, NegativePredictiveValue, Precision, Recall,
      Sensitivity, Specificity, Selectivity, TverskyIndex, FBetaScore,
      F1Score and IoU. This module also exposes the abstract base class
      ConfusionMetric.
    • Added new image quality assessment metrics module with 2D/3D
      PeakSignalToNoiseRatio, StructuralSimilarity and
      MultiscaleStructuralSimilarity.

Bug Fixes and Other Changes

  • tfmr:

    • Added new keyword argument coil_axis to coil_compression_matrix
      operation.