Releases: mrphys/tensorflow-mri
TensorFlow MRI 0.23.1
Release 0.23.0
This release bumps the supported TF version to v2.10.x. No other new
features or bug fixes are included.
v0.23.0
Tutorials added
TensorFlow MRI 0.22.0
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
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 includingConvexFunctionIndicatorBall
,
ConvexFunctionNorm
andConvexFunctionTotalVariation
. 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 toaxes
.
- Argument
Major Features and Improvements
-
tfmri.convex
:- Added new class
ConvexFunctionL1Wavelet
, which enables image/signal
reconstruction with L1-wavelet regularization. - Added new argument
gram_operator
toConvexFunctionLeastSquares
,
which allows the user to specify a custom, potentially more efficient Gram
matrix.
- Added new class
-
tfmri.linalg
:- Added new classes
LinearOperatorNUFFT
andLinearOperatorGramNUFFT
to enable the use of NUFFT as a linear operator. - Added new class
LinearOperatorWavelet
to enable the use of wavelets
as a linear operator.
- Added new classes
-
tfmri.sampling
:- Added new ordering type
sorted_half
toradial_trajectory
.
- Added new ordering type
-
tfmri.signal
:- Added new functions
wavedec
andwaverec
for wavelet decomposition
and reconstruction, as well as utilitieswavelet_coeffs_to_tensor
,
tensor_to_wavelet_coeffs
, andmax_wavelet_level
.
- Added new functions
Bug Fixes and Other Changes
-
tfmri.recon
:- Improved error reporting for
least_squares
.
- Improved error reporting for
TensorFlow MRI 0.20.0
Release 0.20.0
Major Features and Improvements
-
tfmri.layers
:- Added new layers
MaxPooling1D
,MaxPooling2D
,MaxPooling3D
,
AveragePooling1D
,AveragePooling2D
andAveragePooling3D
.
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
,
andIDWT3D
to compute 1D, 2D and 3D forward and inverse discrete wavelet
transforms. - Layer
ConvBlock
is now deprecated in favor of the new endpoints in
thetfmri.models
submodule. - Layer
UNet
is now deprecated in favor of the new endpoints in
thetfmri.models
submodule.
- Added new layers
-
tfmri.models
:- Added new models
ConvBlock1D
,ConvBlock2D
andConvBlock3D
. These
replace the previousConvBlock
layer, which is now deprecated. - Added new models
UNet1D
,UNet2D
andUNet3D
. These replace
the previousUNet
layer, which is now deprecated.
- Added new models
Bug Fixes and Other Changes
-
tfmri.signal
:- Improved static shape inference for
dwt
op.
- Improved static shape inference for
TensorFlow MRI 0.19.0
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
andimage_dims
to
image_gradients
,gradient_magnitude
,psnr
,ssim
and
ssim_multiscale
. - Argument
rank
ofpsnr
,ssim
andssim_multiscale
is now
deprecated. To update, useimage_dims
instead. image_gradients
andgradient_magnitude
now support complex inputs.
- Added new arguments
-
tfmri.losses
:- Added new arguments
batch_dims
andimage_dims
to all image quality
losses. Argumentrank
is now deprecated (useimage_dims
instead). - Added new arguments
multichannel
andcomplex_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 toSSIMLoss
andSSIMMultiscaleLoss
, respectively. The
old names are still available, but may be removed in the future.
- Added new arguments
-
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
andimage_dims
to all image quality
metrics. Argumentrank
is now deprecated (useimage_dims
instead). - The canonical API names
PeakSignalToNoiseRatio
,
StructuralSimilarity
andMultiscaleStructuralSimilarity
have been
changed toPSNR
,SSIM
andSSIMMultiscale
, respectively. The
old names are still available, but may be removed in the future.
- Image quality metrics can now accept complex inputs without also specifying
-
tfmri.recon
:- Added new argument
preserve_phase
totfmri.recon.pf
. This allows
the user to recover the phase as well as the magnitude during partial
Fourier reconstruction. Argumentreturn_complex
has the same behaviour
and is now deprecated. - Added new aliases
adjoint
(foradj
),least_squares
(forlstsq
) andpartial_fourier
(forpf
). These are now the
canonical aliases, but the old ones will still be supported.
- Added new argument
-
tfmri.signal
:- Added new ops
dwt
andidwt
to compute the N-dimensional discrete
wavelet transform and its inverse, respectively.
- Added new ops
-
tfmri.plot
:- Added new argument
norm
toimage_sequence
,tiled_image
and
tiled_image_sequence
. This allows the user to specify the scaling
to be applied before the colormap.
- Added new argument
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 frommanylinux2010
.
TensorFlow MRI 0.18.0
Release 0.18.0
Major Features and Improvements
-
tfmri.convex
:- All references to
ndim
inConvexFunction
and its subclasses have
been deprecated in favor ofdomain_dimension
ordomain_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 callshape
andshape_tensor
and
should not be overriden.
- All references to
-
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.
- New module with initializers
-
tfmri.io
:- New function
parse_twix
to parse TWIX RAID files (Siemens raw data).
- New function
-
tfmri.layers
:- Added new layers
Conv1D
,Conv2D
andConv3D
. All layers
are drop-in replacements for their Keras counterparts and support
complex values.
- Added new layers
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
Release 0.17.0
Breaking Changes
-
tfmri.signal
:- Renamed keyword argument
traj
offilter_kspace
andcrop_kspace
totrajectory
.
- Renamed keyword argument
Major Features and Improvements
-
tfmri.plot
:- New utility
tiled_image
.
- New utility
TensorFlow MRI 0.16.0
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.
- Several of the inputs and outputs of
Major Features and Improvements
-
tfmri.convex
:-
admm_minimize
now supports batches of inputs. -
admm_minimize
has two new argumentsf_prox_kwargs
and
g_prox_kwargs
that allow passing additional arguments to the proximal
operators off
andg
. -
admm_minimize
has a new argumentname
that allows specifying
the name of the operation. -
Method
_prox
ofConvexFunctionQuadratic
has a new argument
solver_kwargs
that allows passing additional arguments to the
internal solver. -
New properties
shape
andbatch_shape
forConvexFunction
and
its subclasses. These allow retrieval of static shape information. -
New methods
ndim_tensor
,shape_tensor
andbatch_shape_tensor
forConvexFunction
and its subclasses. These allow retrieval of the
dynamic shape information.
-
-
tfmri.linalg
:- New argument
bypass_gradient
forconjugate_gradient
.
- New argument
-
tfmri.recon
:lstsq
has a new argumentreturn_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.
- New function
-
tfmri.plot
:- New argument
dpi
for functionsimage_sequence
and
tiled_image_sequence
. - New function
close
, alias ofmatplotlib.pyplot.close
.
- New argument
Bug Fixes and Other Changes
-
tfmri.convex
:- Fixed a bug in method
prox
ofConvexFunctionNorm
,
ConvexFunctionL2Squared
andConvexFunctionQuadratic
that caused
errors when running in graph mode.
- Fixed a bug in method
-
tfmri.linalg
:- Fixed a bug in internal linear algebra framework that would cause errors
when running in graph mode.
- Fixed a bug in internal linear algebra framework that would cause errors
-
tfmri.plot
:- Removed lazy import mechanism which was causing problems when using
matplotlib
outside TFMRI. For now we use regular imports.
- Removed lazy import mechanism which was causing problems when using
TensorFlow MRI 0.15.0
Release 0.15.0
Major Features and Improvements
-
tfmri.plot
:image_sequence
andtiled_image_sequence
now support different
layout mechanisms via the argumentlayout
.image_sequence
andtiled_image_sequence
now support display
bounding boxes via the argumentsbbox_inches
andpad_inches
.