pub struct TransformerDecoderLayer { /* private fields */ }Expand description
A single Transformer decoder layer.
Consists of:
- Masked multi-head self-attention (causal)
- Multi-head cross-attention over encoder output
- Position-wise feedforward network
Each sublayer has residual connections and layer normalization.
§Shape
- Target: (N, T, E)
- Memory: (N, S, E)
- Output: (N, T, E)
Implementations§
Source§impl TransformerDecoderLayer
impl TransformerDecoderLayer
Sourcepub fn new(d_model: usize, nhead: usize, dim_feedforward: usize) -> Self
pub fn new(d_model: usize, nhead: usize, dim_feedforward: usize) -> Self
Creates a new TransformerDecoderLayer (post-norm, default).
§Arguments
d_model- Embedding dimensionnhead- Number of attention headsdim_feedforward- Hidden dimension of feedforward network
Sourcepub fn new_with_pre_norm(
d_model: usize,
nhead: usize,
dim_feedforward: usize,
pre_norm: bool,
) -> Self
pub fn new_with_pre_norm( d_model: usize, nhead: usize, dim_feedforward: usize, pre_norm: bool, ) -> Self
Creates a TransformerDecoderLayer with configurable norm ordering.
Sourcepub fn forward_with_memory(
&self,
tgt: &Variable,
memory: &Variable,
tgt_mask: Option<&Variable>,
memory_mask: Option<&Variable>,
) -> Variable
pub fn forward_with_memory( &self, tgt: &Variable, memory: &Variable, tgt_mask: Option<&Variable>, memory_mask: Option<&Variable>, ) -> Variable
Forward pass with encoder memory and optional masks.
§Arguments
tgt- Target sequence (N, T, E)memory- Encoder output (N, S, E)tgt_mask- Optional causal mask for self-attentionmemory_mask- Optional mask for cross-attention
Trait Implementations§
Source§impl Module for TransformerDecoderLayer
impl Module for TransformerDecoderLayer
Source§fn named_parameters(&self) -> HashMap<String, Parameter>
fn named_parameters(&self) -> HashMap<String, Parameter>
Returns named parameters of this module.
Source§fn num_parameters(&self) -> usize
fn num_parameters(&self) -> usize
Returns the number of trainable parameters.
Source§fn set_training(&mut self, _training: bool)
fn set_training(&mut self, _training: bool)
Sets the training mode.
Source§fn is_training(&self) -> bool
fn is_training(&self) -> bool
Returns whether the module is in training mode.
Auto Trait Implementations§
impl Freeze for TransformerDecoderLayer
impl !RefUnwindSafe for TransformerDecoderLayer
impl Send for TransformerDecoderLayer
impl Sync for TransformerDecoderLayer
impl Unpin for TransformerDecoderLayer
impl UnsafeUnpin for TransformerDecoderLayer
impl !UnwindSafe for TransformerDecoderLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more