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'¶
-
-
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', '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', '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
= {'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'}¶
-
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
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'¶
-
-
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', 'model_restorer': 'niftynet.engine.handler_model.ModelRestorer', 'model_saver': 'niftynet.engine.handler_model.ModelSaver', 'output_interpreter': 'niftynet.engine.handler_network_output.OutputInterpreter', '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'¶
-