transformer_decoder
transformer_decoder
¶
TransformerDecoderLayer
¶
TransformerDecoderLayer(embedding_dimension, number_of_heads, feedforward_dimension=2048, dropout=0.1, activation=value, normalize_before=False)
Bases: Module
DETR-style decoder layer with self-attention and cross-attention to memory.
Initialize transformer decoder layer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
embedding_dimension
|
int
|
Model embedding dimension. |
required |
number_of_heads
|
int
|
Number of attention heads. |
required |
feedforward_dimension
|
int
|
Dimension of feedforward network. |
2048
|
dropout
|
float
|
Dropout rate. |
0.1
|
activation
|
str
|
Activation function name from ActivationFunction enum. |
value
|
normalize_before
|
bool
|
If True, use pre-normalization (norm before attention/FFN). If False, use post-normalization (norm after attention/FFN). |
False
|
Source code in src/versatil/models/layers/detr_transformer/transformer_decoder.py
forward
¶
forward(target, memory, target_mask=None, memory_mask=None, target_key_padding_mask=None, memory_key_padding_mask=None, memory_positional_encoding=None, query_positional_encoding=None)
Forward pass through decoder layer.
Returns:
| Type | Description |
|---|---|
Tensor
|
Output tensor of shape (batch size, target_length, embedding_dimension). |
Source code in src/versatil/models/layers/detr_transformer/transformer_decoder.py
TransformerDecoder
¶
Bases: Module
Stack of transformer decoder layers.
Initialize transformer decoder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
decoder_layer
|
TransformerDecoderLayer
|
Single decoder layer to be stacked. |
required |
number_of_layers
|
int
|
Number of decoder layers. |
required |
normalization
|
Module | None
|
Optional final normalization layer. |
None
|
return_intermediate
|
bool
|
If True, return outputs from all layers stacked. |
False
|
Source code in src/versatil/models/layers/detr_transformer/transformer_decoder.py
forward
¶
forward(target, memory, target_mask=None, memory_mask=None, target_key_padding_mask=None, memory_key_padding_mask=None, memory_positional_encoding=None, query_positional_encoding=None)
Forward pass through all decoder layers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target
|
Tensor
|
Target tensor of shape (batch size, target_length, embedding_dimension). |
required |
memory
|
Tensor
|
Encoder output of shape (batch size, source_length, embedding_dimension). |
required |
target_mask
|
Tensor | None
|
Target attention mask of shape (target_length, target_length). |
None
|
memory_mask
|
Tensor | None
|
Memory attention mask of shape (target_length, source_length). |
None
|
target_key_padding_mask
|
Tensor | None
|
Target padding mask of shape (batch size, target_length). |
None
|
memory_key_padding_mask
|
Tensor | None
|
Memory padding mask of shape (batch size, source_length). |
None
|
memory_positional_encoding
|
Tensor | None
|
Memory positional encoding of shape (batch size,source_length,embedding_dimension). |
None
|
query_positional_encoding
|
Tensor | None
|
Query positional encoding of shape (batch size,target_length,embedding_dimension). |
None
|
Returns:
| Type | Description |
|---|---|
Tensor
|
If return_intermediate is True, a tensor with shape (number_of_layers, batch_size, target_length, embedding_dimension). Otherwise, with shape (1, batch_size, target_length, embedding_dimension). |