gt4sd.frameworks.granular.ml.models.module module¶
Generic modules.
Summary¶
Classes:
Set of convolutional layers to reduce memory matrix to single latent vector.  | 
|
Set of deconvolutional layers to reshape latent vector back into memory matrix.  | 
|
Transforms input token id tensors to size d_model embeddings.  | 
|
Custom layer normalization.  | 
|
Create single pytorch module from list of modules.  | 
|
MLP module.  | 
|
MLP decoder.  | 
|
MLP encoder.  | 
|
Multihead attention implementation (based on Vaswani et al.).  | 
|
Static sinusoidal positional encoding layer.  | 
|
Feed forward implementation.  | 
|
RNN decoder.  | 
|
RNN encoder.  | 
|
A residual connection followed by a layer normalization.  | 
|
Layer normalization using torch BatchNorm1d.  | 
|
Base transformer decoder architecture.  | 
|
Self-attention/source-attention/feedforward implementation.  | 
|
Base transformer encoder architecture.  | 
|
Self-attention/feedforward implementation.  | 
Functions:
Compute scaled dot product attention (adapted from Viswani et al.).  | 
|
Produce N identical layers (adapted from http://nlp.seas.harvard.edu/2018/04/03/attention.html).  | 
|
Mask out subsequent positions (adapted from http://nlp.seas.harvard.edu/2018/04/03/attention.html).  | 
Reference¶
- class Mlp(input_size, hidden_size, output_size, n_layers, activation, dropout, **kwargs)[source]¶
 Bases:
ModuleMLP module.
- __init__(input_size, hidden_size, output_size, n_layers, activation, dropout, **kwargs)[source]¶
 Construct Mlp.
- Parameters
 input_size (
int) – size of the input.hidden_size (
int) – size of the hidden layers.output_size (
int) – size of the output.n_layers (
int) – number of layers.activation (
str) – name of the activation.dropout (
float) – dropout rate.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – model input.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'MLP module.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class MlpEncoder(input_size, hidden_size, output_size, n_layers, activation, dropout=0.0, **kwargs)[source]¶
 Bases:
MlpMLP encoder.
- __init__(input_size, hidden_size, output_size, n_layers, activation, dropout=0.0, **kwargs)[source]¶
 Construct MlpEncoder.
- Parameters
 input_size (
int) – size of the input.hidden_size (
int) – size of the hidden layers.output_size (
int) – size of the output.n_layers (
int) – number of layers.activation (
str) – name of the activation.dropout (
float) – dropout rate. Defaults to 0.0.
- __annotations__ = {}¶
 
- __doc__ = 'MLP encoder.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class MlpDecoder(latent_size, hidden_size, output_size, n_layers, activation, dropout=0.0, **kwargs)[source]¶
 Bases:
MlpMLP decoder.
- __init__(latent_size, hidden_size, output_size, n_layers, activation, dropout=0.0, **kwargs)[source]¶
 Construct MlpEncoder.
- Parameters
 latent_size (
int) – size of the input.hidden_size (
int) – size of the hidden layers.output_size (
int) – size of the output.n_layers (
int) – number of layers.activation (
str) – name of the activation.dropout (
float) – dropout rate. Defaults to 0.0.
- __annotations__ = {}¶
 
- __doc__ = 'MLP decoder.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class RnnEncoder(vocab_size, embedding_size, hidden_size=256, n_layers=2, bidirectional=False, latent_size=196)[source]¶
 Bases:
ModuleRNN encoder.
- __init__(vocab_size, embedding_size, hidden_size=256, n_layers=2, bidirectional=False, latent_size=196)[source]¶
 Construct RnnEncoder.
- Parameters
 vocab_size (
int) – size of the vocabulary.embedding_size (
int) – size of the embedding vectors.hidden_size (
int) – hidden size. Defaults to 256.n_layers (
int) – number of layers. Defaults to 2.bidirectional (
bool) – whether the RNN cell is bidirectional. Defaults to False.latent_size (
int) – latent size. Defaults to 196.
- forward(input_sequence)[source]¶
 Forward pass in the model.
- Parameters
 input_sequence (
Tensor) – input sequence tensor.- Return type
 Tuple[Tensor,Tensor]- Returns
 a tuple containing hidden state and embedded sequence.
- __annotations__ = {}¶
 
- __doc__ = 'RNN encoder.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class RnnDecoder(vocab_size, embedding_size, hidden_size=256, n_layers=2, latent_size=196)[source]¶
 Bases:
ModuleRNN decoder.
- __init__(vocab_size, embedding_size, hidden_size=256, n_layers=2, latent_size=196)[source]¶
 Construct RnnDecoder.
- Parameters
 vocab_size (
int) – size of the vocabulary.embedding_size (
int) – size of the embedding vectors.hidden_size (
int) – hidden size. Defaults to 256.n_layers (
int) – number of layers. Defaults to 2.latent_size (
int) – latent size. Defaults to 196.
- forward(latent, input_embedding)[source]¶
 Forward pass in the model.
- Parameters
 latent (
Tensor) – latent tensor.input_embedding (
Tensor) – input embedding.
- Return type
 Tensor- Returns
 model output.
- inference_direct(latent, embedding, tokenizer, max_len)[source]¶
 Direct inference from latent space.
- Parameters
 latent (
Tensor) – latent tensor.embedding (
Module) – embedding module.tokenizer (
Tokenizer) – tokenizer.max_len (
int) – maximum sequence length.
- Return type
 Tuple[List[str],Tensor]- Returns
 a tuple containing decoded strings and indices.
- __annotations__ = {}¶
 
- __doc__ = 'RNN decoder.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- attention(query, key, value, mask=None, dropout=None)[source]¶
 Compute scaled dot product attention (adapted from Viswani et al.).
- Parameters
 query (
Tensor) – query tensor.key (
Tensor) – key tensor.value (
Tensor) – value tesor.mask (
Optional[Tensor,None]) – mask to apply on attention score. Defaults to None, a.k.a., no mask.dropout (
Optional[Module,None]) – dropout layer. Defaults to None, a.k.a., no dropout.
- Return type
 Tuple[Tensor,Tensor]- Returns
 a tuple containing the applied attention and the attention weights.
- clones(module, n)[source]¶
 Produce N identical layers (adapted from http://nlp.seas.harvard.edu/2018/04/03/attention.html).
- Parameters
 module (
Module) – a module.n (
int) – number of clones.
- Return type
 Module- Returns
 a module list.
- subsequent_mask(size)[source]¶
 Mask out subsequent positions (adapted from http://nlp.seas.harvard.edu/2018/04/03/attention.html).
- Parameters
 size (
int) – size of the attention matrix.- Return type
 Tensor- Returns
 the mask tensor.
- class ListModule(*args)[source]¶
 Bases:
ModuleCreate single pytorch module from list of modules.
- __getitem__(idx)[source]¶
 Get item from the module list.
- Parameters
 idx (
int) – index of the item.- Raises
 IndexError – in case the index is out of range.
- Return type
 Any- Returns
 the item.
- __iter__()[source]¶
 An iterator over the module list values.
- Return type
 Any- Returns
 the iterator over values.
- __annotations__ = {}¶
 
- __doc__ = 'Create single pytorch module from list of modules.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class MultiHeadedAttention(h, d_model, dropout=0.1)[source]¶
 Bases:
ModuleMultihead attention implementation (based on Vaswani et al.).
- __init__(h, d_model, dropout=0.1)[source]¶
 Construct MultiHeadedAttention.
- Parameters
 h – number of heads.
d_model – model size.
dropout – dropout rate. Defaults to 0.1.
- forward(query, key, value, mask=None, return_attn=False)[source]¶
 Forward pass in the model.
- Parameters
 query (
Tensor) – query tensor.key (
Tensor) – key tensor.value (
Tensor) – value tesor.mask (
Optional[Tensor,None]) – mask to apply on attention score. Defaults to None, a.k.a., no mask.return_attn (
bool) – whether to return the attention matrix instead of the linear layer output. Defaults to False, a.k.a, do not return attention.
- Return type
 Any- Returns
 either the last layer output of the attention matrix.
- __annotations__ = {}¶
 
- __doc__ = 'Multihead attention implementation (based on Vaswani et al.).'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class PositionwiseFeedForward(d_model, d_ff, dropout=0.1)[source]¶
 Bases:
ModuleFeed forward implementation.
- __init__(d_model, d_ff, dropout=0.1)[source]¶
 Construct PositionwiseFeedForward.
- Parameters
 d_model (
int) – model size.d_ff (
int) – feed forward size.dropout (
float) – dropout rate. Defaults to 0.1.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 feed forward output.
- __annotations__ = {}¶
 
- __doc__ = 'Feed forward implementation.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class ConvBottleneck(size, number_of_layers=3)[source]¶
 Bases:
ModuleSet of convolutional layers to reduce memory matrix to single latent vector.
- __init__(size, number_of_layers=3)[source]¶
 Construct ConvBottleneck.
- Parameters
 size (
int) – input size.number_of_layers (
int) – convolutional layers number. Defaults to 3.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Set of convolutional layers to reduce memory matrix to single latent vector.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class DeconvBottleneck(size, seq_len, dim_factor)[source]¶
 Bases:
ModuleSet of deconvolutional layers to reshape latent vector back into memory matrix.
- __init__(size, seq_len, dim_factor)[source]¶
 Construct DeconvBottleneck.
- Parameters
 size (
int) – size of the deconvolutional padding.seq_len (
int) – length of the sequence.dim_factor (
int) – dimensionality factor.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Set of deconvolutional layers to reshape latent vector back into memory matrix.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class Embeddings(d_model, vocab_size)[source]¶
 Bases:
ModuleTransforms input token id tensors to size d_model embeddings.
- __init__(d_model, vocab_size)[source]¶
 Costruct Embeddings.
- Parameters
 d_model (
int) – size of the embedding vectors.vocab_size (
int) – size of the vocabulary.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Transforms input token id tensors to size d_model embeddings.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class PositionalEncoding(d_model, dropout, max_len=5000)[source]¶
 Bases:
ModuleStatic sinusoidal positional encoding layer.
- __init__(d_model, dropout, max_len=5000)[source]¶
 Construct PositionalEncoding.
- Parameters
 d_model (
int) – model size.dropout (
float) – dropout rate.max_len (
int) – maximum sequence length. Defaults to 5000.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Static sinusoidal positional encoding layer.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class TorchLayerNorm(features, eps=1e-06)[source]¶
 Bases:
ModuleLayer normalization using torch BatchNorm1d.
- __init__(features, eps=1e-06)[source]¶
 Construct TorchLayerNorm.
- Parameters
 features (
int) – number of features.eps – espilon to add to denominator for numerical stability. Defaults to 1e-6.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Layer normalization using torch BatchNorm1d.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class LayerNorm(features, eps=1e-06)[source]¶
 Bases:
ModuleCustom layer normalization.
- __init__(features, eps=1e-06)[source]¶
 Construct LayerNorm.
- Parameters
 features (
int) – number of features.eps – espilon to add to denominator for numerical stability. Defaults to 1e-6.
- forward(x)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Custom layer normalization.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class SublayerConnection(size, dropout)[source]¶
 Bases:
ModuleA residual connection followed by a layer normalization.
Note for code simplicity the norm is first as opposed to last. A dropout layer is also applied.
- __init__(size, dropout)[source]¶
 Initializes internal Module state, shared by both nn.Module and ScriptModule.
- forward(x, sublayer)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.sublayer (
Callable) – a callable returning a tensor.
- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'A residual connection followed by a layer normalization.\n\n Note for code simplicity the norm is first as opposed to last. A dropout layer\n is also applied.\n '¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class TransformerEncoder(hidden_size, ff_size, seq_len, dropout, heads, n_layers_enc, vocab_size, bypass_bottleneck)[source]¶
 Bases:
ModuleBase transformer encoder architecture.
- __init__(hidden_size, ff_size, seq_len, dropout, heads, n_layers_enc, vocab_size, bypass_bottleneck)[source]¶
 Construct TransformerEncoder.
- Parameters
 hidden_size (
int) – hidden size.ff_size (
int) – feed forward size.seq_len (
int) – sequence length.dropout (
float) – dropout rate.heads (
int) – number of heads.n_layers_enc (
int) – number of encoding layers.vocab_size (
int) – vocabulary size.bypass_bottleneck (
bool) – whether the bottleneck should be by passed.
- calc_output_shape(seq_len, hidden_size)[source]¶
 Compute output shape.
- Parameters
 seq_len (
int) – sequence length.hidden_size (
int) – hidden size.
- Returns
 convolutional bottleneck output shape.
- forward(x, mask)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.mask (
Tensor) – mask to apply in the attention layer.
- Return type
 Tensor- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Base transformer encoder architecture.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class TransformerEncoderLayer(size, seq_len, self_attn, feed_forward, dropout)[source]¶
 Bases:
ModuleSelf-attention/feedforward implementation.
- __init__(size, seq_len, self_attn, feed_forward, dropout)[source]¶
 Construct TransformerEncoderLayer.
- Parameters
 size (
int) – model size.seq_len (
int) – sequence length.self_attn (
Module) – self-attention layer.feed_forward (
Module) – feed forward layer.dropout (
float) – droupout rate.
- forward(x, mask, return_attn=False)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.mask (
Tensor) – mask to apply in the attention layer.return_attn (
bool) – whether to return the attention together with the output. Defaults to False, return only encoder output.
- Return type
 Any- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Self-attention/feedforward implementation.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class TransformerDecoder(hidden_size, ff_size, seq_len, dropout, heads, n_layers_dec, latent_size, vocab_size, bypass_bottleneck, deconv_shape)[source]¶
 Bases:
ModuleBase transformer decoder architecture.
- __init__(hidden_size, ff_size, seq_len, dropout, heads, n_layers_dec, latent_size, vocab_size, bypass_bottleneck, deconv_shape)[source]¶
 Construct TransformerDecoder.
- Parameters
 hidden_size (
int) – hidden size.ff_size (
int) – feed forward size.seq_len (
int) – sequence length.dropout (
float) – dropout rate.heads (
int) – number of heads.n_layers_enc – number of encoding layers.
latent_size (
int) – latent size.vocab_size (
int) – vocabulary size.bypass_bottleneck (
bool) – whether the bottleneck should be by passed.deconv_shape (
Tuple[int,int,int]) – shape of the deconvoluted samples. A tuple with three dimensions.
- forward(x, mem, src_mask, tgt_mask)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensor.mem (
Tensor) – memory tensor.src_mask (
Tensor) – source sequence mask.tgt_mask (
Tensor) – target sequence mask.
- Return type
 Tensor- Returns
 model output.
- inference_direct(latent, mask_lengths, tokenizer)[source]¶
 Direct inference from latent space.
- Parameters
 latent (
Tensor) – latent tensor.mask_lengths (
Tensor) – masking tensor.tokenizer (
Tokenizer) – tokenizer.
- Return type
 Tuple[List[str],Tensor]- Returns
 a tuple containing decoded strings and indices.
- __annotations__ = {}¶
 
- __doc__ = 'Base transformer decoder architecture.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶
 
- class TransformerDecoderLayer(size, seq_len, self_attn, src_attn, feed_forward, dropout)[source]¶
 Bases:
ModuleSelf-attention/source-attention/feedforward implementation.
- __init__(size, seq_len, self_attn, src_attn, feed_forward, dropout)[source]¶
 Construct TransformerDecoderLayer.
- Parameters
 size (
int) – model size.seq_len (
int) – sequence length.self_attn (
Module) – self-attention layer.src_attn (
Module) – source attention layer.feed_forward (
Module) – feed forward layer.dropout (
float) – droupout rate.
- forward(x, memory_key, memory_val, src_mask, tgt_mask, return_attn=False)[source]¶
 Forward pass in the model.
- Parameters
 x (
Tensor) – input tensormemory_key (
Tensor) – memory key tensor.memory_val (
Tensor) – memory value tensor.ssrc_mask (
Tensor) – mask to apply in the source attention layer.tgt_mask (
Tensor) – mask to apply in the target attention layer.return_attn (
bool) – whether to return the attention together with the output. Defaults to False, return only encoder output.
- Return type
 Any- Returns
 model output.
- __annotations__ = {}¶
 
- __doc__ = 'Self-attention/source-attention/feedforward implementation.'¶
 
- __module__ = 'gt4sd.frameworks.granular.ml.models.module'¶