pub struct DetrDecoderLayer {
pub config: DetrConfig,
pub weights: DetrDecoderLayerWeights,
}Expand description
A single DETR decoder layer.
Fields§
§config: DetrConfigDecoder configuration (n_queries, embed_dim, n_heads, …).
weights: DetrDecoderLayerWeightsLearned weights for this layer.
Implementations§
Source§impl DetrDecoderLayer
impl DetrDecoderLayer
Sourcepub fn new(cfg: DetrConfig, rng: &mut LcgRng) -> Self
pub fn new(cfg: DetrConfig, rng: &mut LcgRng) -> Self
Construct a new decoder layer with Xavier-initialised weights.
Sourcepub fn forward(
&self,
queries: &[f32],
encoder_feats: &[f32],
n_enc_tokens: usize,
) -> VisionResult<Vec<f32>>
pub fn forward( &self, queries: &[f32], encoder_feats: &[f32], n_enc_tokens: usize, ) -> VisionResult<Vec<f32>>
Forward pass for one decoder layer.
Pre-norm residual scheme:
q1 = self_attn(LN1(queries)) + queries
q2 = cross_attn(LN2(q1), key=encoder, val=encoder) + q1
out = FFN(LN3(q2)) + q2§Parameters
queries: flat[n_queries × embed_dim].encoder_feats: flat[n_enc_tokens × embed_dim].n_enc_tokens: number of encoder feature tokens.
§Returns
Updated queries: flat [n_queries × embed_dim].
§Errors
DimensionMismatchif input tensor lengths are inconsistent.NonFiniteif NaN/Inf appear in attention output.
Auto Trait Implementations§
impl Freeze for DetrDecoderLayer
impl RefUnwindSafe for DetrDecoderLayer
impl Send for DetrDecoderLayer
impl Sync for DetrDecoderLayer
impl Unpin for DetrDecoderLayer
impl UnsafeUnpin for DetrDecoderLayer
impl UnwindSafe for DetrDecoderLayer
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