niftynet.engine.application_factory module

Loading modules from a string representing the class name or a short name that matches the dictionary item defined in this module

select_module(module_name, type_str, lookup_table=None)[source]

This function first tries to find the absolute module name by matching the static dictionary items, if not found, it tries to import the module by splitting the input module_name as module name and class name to be imported.

Parameters:
  • module_name – string that matches the keys defined in lookup_table or an absolute class name: module.name.ClassName
  • type_str – type of the module (used for better error display)
  • lookup_table – defines a set of shorthands for absolute class name
class ModuleFactory[source]

Bases: object

General interface for importing a class by its name.

SUPPORTED = None
type_str = 'object'
classmethod create(name)[source]

import a class by name

class ApplicationNetFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a network from niftynet.network or from user specified string

SUPPORTED = {'deepmedic': 'niftynet.network.deepmedic.DeepMedic', 'dense_vnet': 'niftynet.network.dense_vnet.DenseVNet', 'highres3dnet': 'niftynet.network.highres3dnet.HighRes3DNet', 'highres3dnet_large': 'niftynet.network.highres3dnet_large.HighRes3DNetLarge', 'highres3dnet_small': 'niftynet.network.highres3dnet_small.HighRes3DNetSmall', 'holisticnet': 'niftynet.network.holistic_net.HolisticNet', 'nonewnet': 'niftynet.network.no_new_net.UNet3D', 'resnet': 'niftynet.network.resnet.ResNet', 'scalenet': 'niftynet.network.scalenet.ScaleNet', 'se_resnet': 'niftynet.network.se_resnet.SE_ResNet', 'simple_gan': 'niftynet.network.simple_gan.SimpleGAN', 'simulator_gan': 'niftynet.network.simulator_gan.SimulatorGAN', 'toynet': 'niftynet.network.toynet.ToyNet', 'unet': 'niftynet.network.unet.UNet3D', 'unet_2d': 'niftynet.network.unet_2d.UNet2D', 'vae': 'niftynet.network.vae.VAE', 'vnet': 'niftynet.network.vnet.VNet'}
type_str = 'network'
class ApplicationFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an application from niftynet.application or from user specified string

SUPPORTED = {'net_autoencoder': 'niftynet.application.autoencoder_application.AutoencoderApplication', 'net_classify': 'niftynet.application.classification_application.ClassificationApplication', 'net_gan': 'niftynet.application.gan_application.GANApplication', 'net_regress': 'niftynet.application.regression_application.RegressionApplication', 'net_segment': 'niftynet.application.segmentation_application.SegmentationApplication'}
type_str = 'application'
class LossGANFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a GAN loss function from niftynet.layer or from user specified string

SUPPORTED = {'CrossEntropy': 'niftynet.layer.loss_gan.cross_entropy'}
type_str = 'GAN loss'
class LossSegmentationFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a segmentation loss function from niftynet.layer or from user specified string

SUPPORTED = {'CrossEntropy': 'niftynet.layer.loss_segmentation.cross_entropy', 'CrossEntropy_Dense': 'niftynet.layer.loss_segmentation.cross_entropy_dense', 'Dice': 'niftynet.layer.loss_segmentation.dice', 'DicePlusXEnt': 'niftynet.layer.loss_segmentation.dice_plus_xent_loss', 'Dice_Dense': 'niftynet.layer.loss_segmentation.dice_dense', 'Dice_Dense_NS': 'niftynet.layer.loss_segmentation.dice_dense_nosquare', 'Dice_NS': 'niftynet.layer.loss_segmentation.dice_nosquare', 'GDSC': 'niftynet.layer.loss_segmentation.generalised_dice_loss', 'SensSpec': 'niftynet.layer.loss_segmentation.sensitivity_specificity_loss', 'Tversky': 'niftynet.layer.loss_segmentation.tversky', 'VolEnforcement': 'niftynet.layer.loss_segmentation.volume_enforcement', 'WGDL': 'niftynet.layer.loss_segmentation.generalised_wasserstein_dice_loss'}
type_str = 'segmentation loss'
class LossRegressionFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a regression loss function from niftynet.layer or from user specified string

SUPPORTED = {'Cosine': 'niftynet.layer.loss_regression.cosine_loss', 'Huber': 'niftynet.layer.loss_regression.huber_loss', 'L1Loss': 'niftynet.layer.loss_regression.l1_loss', 'L2Loss': 'niftynet.layer.loss_regression.l2_loss', 'MAE': 'niftynet.layer.loss_regression.mae_loss', 'RMSE': 'niftynet.layer.loss_regression.rmse_loss', 'SmoothL1': 'niftynet.layer.loss_regression.smooth_l1_loss'}
type_str = 'regression loss'
class LossClassificationFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a classification loss function from niftynet.layer or from user specified string

SUPPORTED = {'CrossEntropy': 'niftynet.layer.loss_classification.cross_entropy'}
type_str = 'classification loss'
class LossClassificationMultiFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import a classification loss function from niftynet.layer or from user specified string

SUPPORTED = {'ConfusionMatrix': 'niftynet.layer.loss_classification_multi.loss_confusion_matrix', 'Consistency': 'niftynet.layer.loss_classification_multi.rmse_consistency', 'Variability': 'niftynet.layer.loss_classification_multi.loss_variability'}
type_str = 'classification multi loss'
class LossAutoencoderFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an autoencoder loss function from niftynet.layer or from user specified string

SUPPORTED = {'VariationalLowerBound': 'niftynet.layer.loss_autoencoder.variational_lower_bound'}
type_str = 'autoencoder loss'
class OptimiserFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an optimiser from niftynet.engine.application_optimiser or from user specified string

SUPPORTED = {'adagrad': 'niftynet.engine.application_optimiser.Adagrad', 'adam': 'niftynet.engine.application_optimiser.Adam', 'gradientdescent': 'niftynet.engine.application_optimiser.GradientDescent', 'momentum': 'niftynet.engine.application_optimiser.Momentum', 'nesterov': 'niftynet.engine.application_optimiser.NesterovMomentum', 'rmsprop': 'niftynet.engine.application_optimiser.RMSProp'}
type_str = 'optimizer'
class InitializerFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an initializer from niftynet.engine.application_initializer or from user specified string

SUPPORTED = {'constant': 'niftynet.engine.application_initializer.Constant', 'glorot_normal': 'niftynet.engine.application_initializer.GlorotNormal', 'glorot_uniform': 'niftynet.engine.application_initializer.GlorotUniform', 'he_normal': 'niftynet.engine.application_initializer.HeNormal', 'he_uniform': 'niftynet.engine.application_initializer.HeUniform', 'ones': 'niftynet.engine.application_initializer.Ones', 'orthogonal': 'niftynet.engine.application_initializer.Orthogonal', 'uniform_scaling': 'niftynet.engine.application_initializer.UniformUnitScaling', 'variance_scaling': 'niftynet.engine.application_initializer.VarianceScaling', 'zeros': 'niftynet.engine.application_initializer.Zeros'}
type_str = 'initializer'
static get_initializer(name, args=None)[source]

wrapper for getting the initializer.

Parameters:
  • name
  • args – optional parameters for the initializer
Returns:

class EvaluationFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an optimiser from niftynet.engine.application_optimiser or from user specified string

SUPPORTED = {'Dice': 'niftynet.evaluation.segmentation_evaluations.dice', 'Jaccard': 'niftynet.evaluation.segmentation_evaluations.jaccard', 'accuracy': 'niftynet.evaluation.segmentation_evaluations.accuracy', 'average_distance': 'niftynet.evaluation.segmentation_evaluations.average_distance', 'classification_accuracy': 'niftynet.evaluation.classification_evaluations.accuracy', 'com_ref': 'niftynet.contrib.evaluation.segmentation_evaluations.com_ref', 'dice': 'niftynet.evaluation.segmentation_evaluations.dice', 'false_positive_rate': 'niftynet.evaluation.segmentation_evaluations.false_positive_rate', 'fn': 'niftynet.evaluation.segmentation_evaluations.fn', 'fp': 'niftynet.evaluation.segmentation_evaluations.fp', 'hausdorff95_distance': 'niftynet.evaluation.segmentation_evaluations.hausdorff95_distance', 'hausdorff_distance': 'niftynet.evaluation.segmentation_evaluations.hausdorff_distance', 'informedness': 'niftynet.evaluation.segmentation_evaluations.informedness', 'intersection_over_union': 'niftynet.evaluation.segmentation_evaluations.intersection_over_union', 'jaccard': 'niftynet.evaluation.segmentation_evaluations.jaccard', 'mae': 'niftynet.evaluation.regression_evaluations.mae', 'markedness': 'niftynet.evaluation.segmentation_evaluations.markedness', 'mse': 'niftynet.evaluation.regression_evaluations.mse', 'n_intersection': 'niftynet.evaluation.segmentation_evaluations.n_intersection', 'n_neg_ref': 'niftynet.evaluation.segmentation_evaluations.n_neg_ref', 'n_neg_seg': 'niftynet.evaluation.segmentation_evaluations.n_neg_seg', 'n_pos_ref': 'niftynet.evaluation.segmentation_evaluations.n_pos_ref', 'n_pos_seg': 'niftynet.evaluation.segmentation_evaluations.n_pos_seg', 'n_union': 'niftynet.evaluation.segmentation_evaluations.n_union', 'negative_predictive_values': 'niftynet.evaluation.segmentation_evaluations.negative_predictive_values', 'positive_predictive_values': 'niftynet.evaluation.segmentation_evaluations.positive_predictive_values', 'rmse': 'niftynet.evaluation.regression_evaluations.rmse', 'roc': 'niftynet.contrib.evaluation.classification_evaluations.roc', 'roc_auc': 'niftynet.contrib.evaluation.classification_evaluations.roc_auc', 'sensitivity': 'niftynet.evaluation.segmentation_evaluations.sensitivity', 'specificity': 'niftynet.evaluation.segmentation_evaluations.specificity', 'tn': 'niftynet.evaluation.segmentation_evaluations.tn', 'tp': 'niftynet.evaluation.segmentation_evaluations.tp', 'vol_diff': 'niftynet.evaluation.segmentation_evaluations.vol_diff'}
type_str = 'evaluation'
class EventHandlerFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an event handler such as niftynet.engine.handler_console

SUPPORTED = {'apply_gradients': 'niftynet.engine.handler_gradient.ApplyGradients', 'console_logger': 'niftynet.engine.handler_console.ConsoleLogger', 'early_stopper': 'niftynet.engine.handler_early_stopping.EarlyStopper', 'model_restorer': 'niftynet.engine.handler_model.ModelRestorer', 'model_saver': 'niftynet.engine.handler_model.ModelSaver', 'output_interpreter': 'niftynet.engine.handler_network_output.OutputInterpreter', 'performance_logger': 'niftynet.engine.handler_performance.PerformanceLogger', 'sampler_threading': 'niftynet.engine.handler_sampler.SamplerThreading', 'tensorboard_logger': 'niftynet.engine.handler_tensorboard.TensorBoardLogger'}
type_str = 'event handler'
class IteratorFactory[source]

Bases: niftynet.engine.application_factory.ModuleFactory

Import an iterative message generator for the main engine loop

SUPPORTED = {'iteration_generator': 'niftynet.engine.application_iteration.IterationMessageGenerator'}
type_str = 'engine iterator'