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)[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 = {'holisticnet': 'niftynet.network.holistic_net.HolisticNet', 'highres3dnet': 'niftynet.network.highres3dnet.HighRes3DNet', 'highres3dnet_small': 'niftynet.network.highres3dnet_small.HighRes3DNetSmall', 'unet': 'niftynet.network.unet.UNet3D', 'highres3dnet_large': 'niftynet.network.highres3dnet_large.HighRes3DNetLarge', 'vae': 'niftynet.network.vae.VAE', 'toynet': 'niftynet.network.toynet.ToyNet', 'deepmedic': 'niftynet.network.deepmedic.DeepMedic', 'dense_vnet': 'niftynet.network.dense_vnet.DenseVNet', 'scalenet': 'niftynet.network.scalenet.ScaleNet', 'vnet': 'niftynet.network.vnet.VNet', 'simulator_gan': 'niftynet.network.simulator_gan.SimulatorGAN', 'simple_gan': 'niftynet.network.simple_gan.SimpleGAN'}
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_regress': 'niftynet.application.regression_application.RegressionApplication', 'net_autoencoder': 'niftynet.application.autoencoder_application.AutoencoderApplication', 'net_segment': 'niftynet.application.segmentation_application.SegmentationApplication', 'net_gan': 'niftynet.application.gan_application.GANApplication'}
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 = {'L2Loss': 'niftynet.layer.loss_segmentation.l2_loss', 'Dice': 'niftynet.layer.loss_segmentation.dice', 'L1Loss': 'niftynet.layer.loss_segmentation.l1_loss', 'CrossEntropy': 'niftynet.layer.loss_segmentation.cross_entropy', 'SensSpec': 'niftynet.layer.loss_segmentation.sensitivity_specificity_loss', 'Huber': 'niftynet.layer.loss_segmentation.huber_loss', 'Dice_NS': 'niftynet.layer.loss_segmentation.dice_nosquare', 'GDSC': 'niftynet.layer.loss_segmentation.generalised_dice_loss', '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 = {'L2Loss': 'niftynet.layer.loss_regression.l2_loss', 'MAE': 'niftynet.layer.loss_regression.mae_loss', 'Huber': 'niftynet.layer.loss_regression.huber_loss', 'L1Loss': 'niftynet.layer.loss_regression.l1_loss', 'RMSE': 'niftynet.layer.loss_regression.rmse_loss'}
type_str = 'regression 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 = {'nesterov': 'niftynet.engine.application_optimiser.NesterovMomentum', 'rmsprop': 'niftynet.engine.application_optimiser.RMSProp', 'gradientdescent': 'niftynet.engine.application_optimiser.GradientDescent', 'adam': 'niftynet.engine.application_optimiser.Adam', 'adagrad': 'niftynet.engine.application_optimiser.Adagrad', 'momentum': 'niftynet.engine.application_optimiser.Momentum'}
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 = {'glorot_uniform': 'niftynet.engine.application_initializer.GlorotUniform', 'he_normal': 'niftynet.engine.application_initializer.HeNormal', 'ones': 'niftynet.engine.application_initializer.Ones', 'constant': 'niftynet.engine.application_initializer.Constant', 'uniform_scaling': 'niftynet.engine.application_initializer.UniformUnitScaling', 'zeros': 'niftynet.engine.application_initializer.Zeros', 'he_uniform': 'niftynet.engine.application_initializer.HeUniform', 'orthogonal': 'niftynet.engine.application_initializer.Orthogonal', 'variance_scaling': 'niftynet.engine.application_initializer.VarianceScaling', 'glorot_normal': 'niftynet.engine.application_initializer.GlorotNormal'}
type_str = 'initializer'
static get_initializer(name, args=None)[source]

wrapper for getting the initializer.

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