dival.reconstructors.fbpunet_reconstructor module

class dival.reconstructors.fbpunet_reconstructor.FBPUNetReconstructor(ray_trafo, allow_multiple_workers_without_random_access=False, **kwargs)[source]

Bases: dival.reconstructors.standard_learned_reconstructor.StandardLearnedReconstructor

CT reconstructor applying filtered back-projection followed by a postprocessing U-Net (e.g. 1).

References

1

K. H. Jin, M. T. McCann, E. Froustey, et al., 2017, “Deep Convolutional Neural Network for Inverse Problems in Imaging”. IEEE Transactions on Image Processing. doi:10.1109/TIP.2017.2713099

HYPER_PARAMS = {'batch_size': {'default': 64, 'retrain': True}, 'channels': {'default': (32, 32, 64, 64, 128, 128), 'retrain': True}, 'epochs': {'default': 20, 'retrain': True}, 'filter_type': {'default': 'Hann', 'retrain': True}, 'frequency_scaling': {'default': 1.0, 'retrain': True}, 'init_bias_zero': {'default': True, 'retrain': True}, 'lr': {'default': 0.001, 'retrain': True}, 'lr_min': {'default': 0.0001, 'retrain': True}, 'normalize_by_opnorm': {'default': False, 'retrain': True}, 'scales': {'default': 5, 'retrain': True}, 'scheduler': {'choices': ['base', 'cosine'], 'default': 'cosine', 'retrain': True}, 'skip_channels': {'default': 4, 'retrain': True}, 'use_sigmoid': {'default': False, 'retrain': True}}
__init__(ray_trafo, allow_multiple_workers_without_random_access=False, **kwargs)[source]
Parameters
  • ray_trafo (odl.tomo.RayTransform) – Ray transform (the forward operator).

  • allow_multiple_workers_without_random_access (bool, optional) – Whether for datasets without support for random access a specification of num_data_loader_workers > 1 is honored. If False (the default), the value is overridden by 1 for generator-only datasets.

  • keyword arguments are passed to super()__init__() (Further) –

train(dataset)[source]

Train the reconstructor with a dataset by adapting its parameters.

Should only use the training and validation data from dataset.

Parameters

dataset (Dataset) – The dataset from which the training data should be used.

init_model()[source]

Initialize model. Called in train() after calling init_transform(), but before calling init_optimizer() and init_scheduler().

init_scheduler(dataset_train)[source]

Initialize the learning rate scheduler. Called in train(), after calling init_transform(), init_model() and init_optimizer().

Parameters

dataset_train (torch.utils.data.Dataset) – The training (torch) dataset constructed in train().

property batch_size
property channels
property epochs
property filter_type
property frequency_scaling
property init_bias_zero
property lr
property lr_min
property normalize_by_opnorm
property scales
property scheduler

torch learning rate scheduler: The scheduler, usually set by init_scheduler(), which gets called in train().

property skip_channels
property use_sigmoid