niftynet.network.vae module¶
-
class
VAE
(w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='VAE')[source]¶ Bases:
niftynet.layer.base_layer.TrainableLayer
- ### Description
- This is a denoising, convolutional, variational autoencoder (VAE), composed of a sequence of {convolutions then downsampling} blocks, followed by a sequence of fully-connected layers, followed by a sequence of {transpose convolutions then upsampling} blocks. See Auto-Encoding Variational Bayes, Kingma & Welling, 2014. 2DO: share the fully-connected parameters between the mean and logvar decoders.
### Building Blocks [ENCODER] - See ConvEncoder class below [GAUSSIAN SAMPLER] - See GaussianSampler class below [DECODER] - See ConvDecoder class below
### Diagram
- INPUT –> [ENCODER] –> [GAUSSIAN SAMPLER] –> [FCDEC] —> [DECODER] for means — OUTPUTS
-
——> [DECODER] for logvars —
### Constraints
-
__init__
(w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='VAE')[source]¶ Parameters: - w_initializer – weight initialisation for network
- w_regularizer – weight regularisation for network
- b_initializer – bias initialisation for network
- b_regularizer – bias regularisation for network
- name – layer name
-
layer_op
(images, is_training=True, **unused_kwargs)[source]¶ Parameters: - images – tensor, input to the network
- is_training – boolean, True if network is in training mode
- unused_kwargs – other conditional arguments, not in use
Returns: posterior_means: means output by gaussian sampler for KL divergence posterior_logvars: log of variances output by gaussian sampler for KL divergence data_means: output of means decoder branch (predicted image) data_logvars: output of variances decoder branch (capturing aleatoric uncertainty) images: input data_variances: exp of data_logvars posterior_variances: exp of posterior_logvars sample: random sample from latent space (from gaussian sampler)
-
class
ConvEncoder
(denoising_variance, conv_output_channels, conv_kernel_sizes, conv_pooling_factors, acti_func_conv, layer_sizes_encoder, acti_func_encoder, serialised_shape, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='ConvEncoder')[source]¶ Bases:
niftynet.layer.base_layer.TrainableLayer
- ### Description
- This is a generic encoder composed of {convolutions then downsampling} blocks followed by fully-connected layers.
-
__init__
(denoising_variance, conv_output_channels, conv_kernel_sizes, conv_pooling_factors, acti_func_conv, layer_sizes_encoder, acti_func_encoder, serialised_shape, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='ConvEncoder')[source]¶ Parameters: - denoising_variance – variance of gaussian noise to add to the input
- conv_output_channels – array, number of output channels for each conv layer
- conv_kernel_sizes – array, kernel sizes for each conv layer
- conv_pooling_factors – array, stride values for downsampling convolutions
- acti_func_conv – array, activation functions of each layer
- layer_sizes_encoder – array, number of output channels for each encoding FC layer
- acti_func_encoder – array, activation functions for each encoding FC layer
- serialised_shape – array, flatten shape to enter the FC layers
- w_initializer – weight initialisation for network
- w_regularizer – weight regularisation for network
- b_initializer – bias initialisation for network
- b_regularizer – bias regularisation for network
- name – layer name
-
class
GaussianSampler
(number_of_latent_variables, number_of_samples_from_posterior, logvars_upper_bound, logvars_lower_bound, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='gaussian_sampler')[source]¶ Bases:
niftynet.layer.base_layer.TrainableLayer
- ### Description
- This predicts the mean and logvariance parameters, then generates an approximate sample from the posterior.
### Diagram
### Constraints
-
__init__
(number_of_latent_variables, number_of_samples_from_posterior, logvars_upper_bound, logvars_lower_bound, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='gaussian_sampler')[source]¶ Parameters: - number_of_latent_variables – int, number of output channels for FC layer
- number_of_samples_from_posterior – int, number of samples to draw from standard gaussian
- logvars_upper_bound – upper bound of log of variances for clipping
- logvars_lower_bound – lower bound of log of variances for clipping
- w_initializer – weight initialisation for network
- w_regularizer – weight regularisation for network
- b_initializer – bias initialisation for network
- b_regularizer – bias regularisation for network
- name – layer name
-
class
ConvDecoder
(layer_sizes_decoder, acti_func_decoder, trans_conv_output_channels, trans_conv_kernel_sizes, trans_conv_unpooling_factors, acti_func_trans_conv, upsampling_mode, downsampled_shape, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='ConvDecoder')[source]¶ Bases:
niftynet.layer.base_layer.TrainableLayer
- ### Description
- This is a generic decoder composed of fully-connected layers followed by {upsampling then transpose convolution} blocks. There is no batch normalisation on the final transpose convolutional layer.
-
__init__
(layer_sizes_decoder, acti_func_decoder, trans_conv_output_channels, trans_conv_kernel_sizes, trans_conv_unpooling_factors, acti_func_trans_conv, upsampling_mode, downsampled_shape, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='ConvDecoder')[source]¶ Parameters: - layer_sizes_decoder – array, number of output channels for each decoding FC layer
- acti_func_decoder – array, activation functions for each decoding FC layer
- trans_conv_output_channels – array, number of output channels for each transpose conv layer
- trans_conv_kernel_sizes – array, kernel sizes for each transpose conv layer
- trans_conv_unpooling_factors – array, stride values for upsampling transpose convolutions
- acti_func_trans_conv – array, activation functions for each transpose conv layer
- upsampling_mode – string, type of upsampling (Deconvolution, channelwise deconvolution, replicate)
- downsampled_shape – array, final encoded shape before FC in encoder
- w_initializer – weight initialisation for network
- w_regularizer – weight regularisation for network
- b_initializer – bias initialisation for network
- b_regularizer – bias regularisation for network
- name – layer name
-
class
FCDecoder
(layer_sizes_decoder, acti_func_decoder, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='FCDecoder')[source]¶ Bases:
niftynet.layer.base_layer.TrainableLayer
- ### Description
- This is a generic fully-connected decoder.
-
__init__
(layer_sizes_decoder, acti_func_decoder, w_initializer=None, w_regularizer=None, b_initializer=None, b_regularizer=None, name='FCDecoder')[source]¶ Parameters: - layer_sizes_decoder – array, number of output channels for each decoding FC layer
- acti_func_decoder – array, activation functions for each decoding FC layer
- w_initializer – weight initialisation for network
- w_regularizer – weight regularisation for network
- b_initializer – bias initialisation for network
- b_regularizer – bias regularisation for network
- name – layer name