langml.layers
Submodules
Package Contents
Classes
Sine Cosine Position Embedding. |
|
Scale Offset |
|
Conditional Layer Normalization |
|
ScaledDotProductAttention |
|
MultiHeadAttention |
|
Gated Attention Unit |
Attributes
- class langml.layers.CRF(output_dim: int, sparse_target: bool = True, **kwargs)[source]
Bases:
tensorflow.keras.layers.Layer- build(self, input_shape: langml.tensor_typing.Tensors)
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None)
- call(self, inputs: langml.tensor_typing.Tensors, sequence_lengths: Optional[langml.tensor_typing.Tensors] = None, training: Optional[Union[bool, int]] = None, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) langml.tensor_typing.Tensors
- property loss(self) Callable
- property accuracy(self) Callable
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- property trans(self) langml.tensor_typing.Tensors
transition parameters
- get_config(self) dict
- static get_custom_objects() dict
- class langml.layers.LayerNorm(center: bool = True, scale: bool = True, epsilon: float = 1e-07, gamma_initializer: langml.tensor_typing.Initializer = 'ones', gamma_regularizer: Optional[langml.tensor_typing.Regularizer] = None, gamma_constraint: Optional[langml.tensor_typing.Constraint] = None, beta_initializer: langml.tensor_typing.Initializer = 'zeros', beta_regularizer: Optional[langml.tensor_typing.Regularizer] = None, beta_constraint: Optional[langml.tensor_typing.Constraint] = None, **kwargs)[source]
Bases:
tensorflow.keras.layers.Layer- get_config(self) dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- call(self, inputs: langml.tensor_typing.Tensors, **kwargs) langml.tensor_typing.Tensors
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) Union[langml.tensor_typing.Tensors, None]
- static get_custom_objects() dict
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- class langml.layers.AbsolutePositionEmbedding(input_dim: int, output_dim: int, mode: str = 'add', embeddings_initializer: langml.tensor_typing.Initializer = 'uniform', embeddings_regularizer: Optional[langml.tensor_typing.Regularizer] = None, embeddings_constraint: Optional[langml.tensor_typing.Constraint] = None, mask_zero: bool = False, **kwargs)[source]
Bases:
langml.L.Layer- get_config(self) dict
- static get_custom_objects() dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) langml.tensor_typing.Tensors
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- call(self, inputs: langml.tensor_typing.Tensors, **kwargs) langml.tensor_typing.Tensors
- class langml.layers.SineCosinePositionEmbedding(mode: str = 'add', output_dim: Optional[int] = None, **kwargs)[source]
Bases:
langml.L.LayerSine Cosine Position Embedding. https://arxiv.org/pdf/1706.03762
- get_config(self)
- static get_custom_objects() dict
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) langml.tensor_typing.Tensors
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) langml.tensor_typing.Tensors
- class langml.layers.ScaleOffset(scale: bool = True, offset: bool = True, **kwargs)[source]
Bases:
langml.L.LayerScale Offset
- get_config(self)
- build(self, input_shape: langml.tensor_typing.Tensors)
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None)
- call(self, inputs: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- static get_custom_objects() dict
- class langml.layers.ConditionalLayerNormalization(center: bool = True, epsilon: Optional[float] = None, scale: bool = True, offset: bool = True, **kwargs)[source]
Bases:
langml.L.LayerConditional Layer Normalization https://arxiv.org/abs/2108.00449
- get_config(self)
- build(self, input_shapes: langml.tensor_typing.Tensors)
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None)
- call(self, inputs: List[langml.tensor_typing.Tensors]) langml.tensor_typing.Tensors
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- static get_custom_objects() dict
- class langml.layers.SelfAttention(attention_units: Optional[int] = None, return_attention: bool = False, is_residual: bool = False, attention_activation: langml.tensor_typing.Activation = 'relu', attention_epsilon: float = 10000000000.0, kernel_initializer: langml.tensor_typing.Initializer = 'glorot_normal', kernel_regularizer: Optional[langml.tensor_typing.Regularizer] = None, kernel_constraint: Optional[langml.tensor_typing.Constraint] = None, bias_initializer: langml.tensor_typing.Initializer = 'zeros', bias_regularizer: Optional[langml.tensor_typing.Regularizer] = None, bias_constraint: Optional[langml.tensor_typing.Constraint] = None, use_attention_bias: bool = True, attention_penalty_weight: float = 0.0, **kwargs)[source]
Bases:
tensorflow.keras.layers.Layer- get_config(self) dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) Union[List[Union[langml.tensor_typing.Tensors, None]], langml.tensor_typing.Tensors]
- _attention_penalty(self, attention: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- static get_custom_objects() dict
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- class langml.layers.SelfAdditiveAttention(attention_units: Optional[int] = None, return_attention: bool = False, is_residual: bool = False, attention_activation: langml.tensor_typing.Activation = 'relu', attention_epsilon: float = 10000000000.0, kernel_initializer: langml.tensor_typing.Initializer = 'glorot_normal', kernel_regularizer: Optional[langml.tensor_typing.Regularizer] = None, kernel_constraint: Optional[langml.tensor_typing.Constraint] = None, bias_initializer: langml.tensor_typing.Initializer = 'zeros', bias_regularizer: Optional[langml.tensor_typing.Regularizer] = None, bias_constraint: Optional[langml.tensor_typing.Constraint] = None, use_attention_bias: bool = True, attention_penalty_weight: float = 0.0, **kwargs)[source]
Bases:
tensorflow.keras.layers.Layer- get_config(self) dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) Union[List[Union[langml.tensor_typing.Tensors, None]], langml.tensor_typing.Tensors]
- _attention_penalty(self, attention: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- static get_custom_objects() dict
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- class langml.layers.ScaledDotProductAttention(return_attention: bool = False, history_only: bool = False, **kwargs)[source]
Bases:
tensorflow.keras.layers.LayerScaledDotProductAttention
$Attention(Q, K, V) = softmax(frac{Q K^T}{sqrt{d_k}}) V$
https://arxiv.org/pdf/1706.03762.pdf
- get_config(self) dict
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[Union[langml.tensor_typing.Tensors, List[langml.tensor_typing.Tensors]]] = None, **kwargs) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[Union[langml.tensor_typing.Tensors, List[langml.tensor_typing.Tensors]]] = None) Union[List[Union[langml.tensor_typing.Tensors, None]], langml.tensor_typing.Tensors]
- static get_custom_objects() dict
- compute_output_shape(self, input_shape: Union[langml.tensor_typing.Tensors, List[langml.tensor_typing.Tensors]]) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- class langml.layers.MultiHeadAttention(head_num: int, return_attention: bool = False, attention_activation: langml.tensor_typing.Activation = 'relu', kernel_initializer: langml.tensor_typing.Initializer = 'glorot_normal', kernel_regularizer: Optional[langml.tensor_typing.Regularizer] = None, kernel_constraint: Optional[langml.tensor_typing.Constraint] = None, bias_initializer: langml.tensor_typing.Initializer = 'zeros', bias_regularizer: Optional[langml.tensor_typing.Regularizer] = None, bias_constraint: Optional[langml.tensor_typing.Constraint] = None, use_attention_bias: bool = True, history_only: bool = False, **kwargs)[source]
Bases:
tensorflow.keras.layers.LayerMultiHeadAttention https://arxiv.org/pdf/1706.03762.pdf
- get_config(self) dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- static _reshape_to_batches(x, head_num)
- static _reshape_attention_from_batches(x, head_num)
- static _reshape_from_batches(x, head_num)
- static _reshape_mask(mask, head_num)
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) langml.tensor_typing.Tensors
- static get_custom_objects() dict
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) Union[List[Union[langml.tensor_typing.Tensors, None]], langml.tensor_typing.Tensors]
- compute_output_shape(self, input_shape: Union[langml.tensor_typing.Tensors, List[langml.tensor_typing.Tensors]]) Union[List[langml.tensor_typing.Tensors], langml.tensor_typing.Tensors]
- class langml.layers.GatedAttentionUnit(attention_units: int, attention_activation: langml.tensor_typing.Activation = 'relu', attention_normalizer: langml.tensor_typing.Activation = relu2, attention_epsilon: float = 10000000000.0, kernel_initializer: langml.tensor_typing.Initializer = 'glorot_normal', kernel_regularizer: Optional[langml.tensor_typing.Regularizer] = None, kernel_constraint: Optional[langml.tensor_typing.Constraint] = None, bias_initializer: langml.tensor_typing.Initializer = 'zeros', bias_regularizer: Optional[langml.tensor_typing.Regularizer] = None, bias_constraint: Optional[langml.tensor_typing.Constraint] = None, use_attention_bias: bool = True, use_attention_scale: bool = True, use_relative_position: bool = True, use_offset: bool = True, use_scale: bool = True, is_residual: bool = True, **kwargs)[source]
Bases:
tensorflow.keras.layers.LayerGated Attention Unit https://arxiv.org/abs/2202.10447
- get_config(self) dict
- build(self, input_shape: langml.tensor_typing.Tensors)
- apply_rotary_position_embeddings(self, sinusoidal: langml.tensor_typing.Tensors, *tensors)
apply RoPE modified from: https://github.com/bojone/bert4keras/blob/master/bert4keras/backend.py#L310
- attn(self, x: langml.tensor_typing.Tensors, v: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) langml.tensor_typing.Tensors
- call(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None, **kwargs) langml.tensor_typing.Tensors
- compute_mask(self, inputs: langml.tensor_typing.Tensors, mask: Optional[langml.tensor_typing.Tensors] = None) langml.tensor_typing.Tensors
- compute_output_shape(self, input_shape: langml.tensor_typing.Tensors) langml.tensor_typing.Tensors
- static get_custom_objects() dict