pub struct QkvBase<S = OwnedRepr<f64>, D = Ix2>{ /* private fields */ }Expand description
QkvBase is a container for the query, key, and value arrays used in the attention mechanism of the transformer model.
Implementations§
Source§impl<A, S, D> QkvBase<S, D>
impl<A, S, D> QkvBase<S, D>
pub fn builder<Sh, F>(shape: Sh, builder: F) -> Self
pub fn from_elem<Sh>(shape: Sh, value: A) -> Self
pub fn as_qkv(
&self,
) -> (ArrayView<'_, A, D>, ArrayView<'_, A, D>, ArrayView<'_, A, D>)where
S: Data,
Sourcepub fn into_qkv(self) -> (ArrayBase<S, D>, ArrayBase<S, D>, ArrayBase<S, D>)
pub fn into_qkv(self) -> (ArrayBase<S, D>, ArrayBase<S, D>, ArrayBase<S, D>)
Consumes the store and returns a three-tuple consisting of the query, key, and value arrays respectively.
pub fn qkv(&self) -> (&ArrayBase<S, D>, &ArrayBase<S, D>, &ArrayBase<S, D>)
pub fn new<Sh: ShapeBuilder<Dim = D>>(shape: Sh) -> Self
pub fn ones<Sh: ShapeBuilder<Dim = D>>(shape: Sh) -> Self
pub fn zeros<Sh: ShapeBuilder<Dim = D>>(shape: Sh) -> Self
pub fn q(&self) -> &ArrayBase<S, D>
pub fn q_mut(&mut self) -> &mut ArrayBase<S, D>
pub fn k(&self) -> &ArrayBase<S, D>
pub fn k_mut(&mut self) -> &mut ArrayBase<S, D>
pub fn v(&self) -> &ArrayBase<S, D>
pub fn v_mut(&mut self) -> &mut ArrayBase<S, D>
pub fn into_owned(self) -> QkvBase<OwnedRepr<A>, D>
pub fn to_owned(&self) -> QkvBase<OwnedRepr<A>, D>
pub fn view(&self) -> QkvBase<ViewRepr<&A>, D>where
S: Data,
pub fn view_mut(&mut self) -> QkvBase<ViewRepr<&mut A>, D>where
S: DataMut,
Trait Implementations§
Source§impl<A, S, D> Borrow<QkvBase<S, D>> for AttentionHead<A, D, S>
impl<A, S, D> Borrow<QkvBase<S, D>> for AttentionHead<A, D, S>
Source§impl<A, S, D> BorrowMut<QkvBase<S, D>> for AttentionHead<A, D, S>
impl<A, S, D> BorrowMut<QkvBase<S, D>> for AttentionHead<A, D, S>
Source§fn borrow_mut(&mut self) -> &mut QkvBase<S, D>
fn borrow_mut(&mut self) -> &mut QkvBase<S, D>
Mutably borrows from an owned value. Read more
Source§impl<A, S, D> From<QkvBase<S, D>> for AttentionHead<A, D, S>
impl<A, S, D> From<QkvBase<S, D>> for AttentionHead<A, D, S>
Source§impl<A, B, S, D, S2, D2> PartialEq<(ArrayBase<S2, D2>, ArrayBase<S2, D2>, ArrayBase<S2, D2>)> for QkvBase<S, D>
impl<A, B, S, D, S2, D2> PartialEq<(ArrayBase<S2, D2>, ArrayBase<S2, D2>, ArrayBase<S2, D2>)> for QkvBase<S, D>
impl<A, S, D> Copy for QkvBase<S, D>
Auto Trait Implementations§
impl<S, D> Freeze for QkvBase<S, D>
impl<S, D> RefUnwindSafe for QkvBase<S, D>
impl<S, D> Send for QkvBase<S, D>
impl<S, D> Sync for QkvBase<S, D>
impl<S, D> Unpin for QkvBase<S, D>
impl<S, D> UnwindSafe for QkvBase<S, D>
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