Trait Module

Source
pub trait Module<X> {
    type Output;

    // Required method
    fn forward(&self, x: &X) -> Result<Self::Output, Error>;
}
Expand description

A unit of computation that consumes Input and produces Module::Output.

Required Associated Types§

Source

type Output

The type that this unit produces given Input.

Required Methods§

Source

fn forward(&self, x: &X) -> Result<Self::Output, Error>

Implementations on Foreign Types§

Source§

impl<Input, M1: Module<Input>> Module<Input> for (M1,)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M1 as Module<Input>>::Output

Source§

impl<Input, M2: Module<M1::Output>, M1: Module<Input>> Module<Input> for (M1, M2)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M2 as Module<<M1 as Module<Input>>::Output>>::Output

Source§

impl<Input, M3: Module<M2::Output>, M2: Module<M1::Output>, M1: Module<Input>> Module<Input> for (M1, M2, M3)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M3 as Module<<M2 as Module<<M1 as Module<Input>>::Output>>::Output>>::Output

Source§

impl<Input, M4: Module<M3::Output>, M3: Module<M2::Output>, M2: Module<M1::Output>, M1: Module<Input>> Module<Input> for (M1, M2, M3, M4)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M4 as Module<<M3 as Module<<M2 as Module<<M1 as Module<Input>>::Output>>::Output>>::Output>>::Output

Source§

impl<Input, M5: Module<M4::Output>, M4: Module<M3::Output>, M3: Module<M2::Output>, M2: Module<M1::Output>, M1: Module<Input>> Module<Input> for (M1, M2, M3, M4, M5)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M5 as Module<<M4 as Module<<M3 as Module<<M2 as Module<<M1 as Module<Input>>::Output>>::Output>>::Output>>::Output>>::Output

Source§

impl<Input, M6: Module<M5::Output>, M5: Module<M4::Output>, M4: Module<M3::Output>, M3: Module<M2::Output>, M2: Module<M1::Output>, M1: Module<Input>> Module<Input> for (M1, M2, M3, M4, M5, M6)

Source§

fn forward(&self, x: &Input) -> Result<Self::Output, Error>

Calls forward sequentially on each module in the tuple.

Source§

type Output = <M6 as Module<<M5 as Module<<M4 as Module<<M3 as Module<<M2 as Module<<M1 as Module<Input>>::Output>>::Output>>::Output>>::Output>>::Output>>::Output

Implementors§

Source§

impl<E: Dtype + Float + MatMulImpl, const I: usize, const O: usize, A: Module<[E; O], Output = [E; O]> + TracedModule<[E; O]> + Default> Module<[E; I]> for GLU<E, I, O, A>

Source§

impl<E: Dtype + MatMulImpl, const I: usize, const O: usize> Module<[E; I]> for Dense<E, I, O>

Source§

impl<E: Dtype + MatMulImpl, const I: usize, const O: usize, C: Conv1dKernel<E, Const<I>, Const<O>>> Module<[E; I]> for Conv1d<E, I, O, C>

Source§

impl<E: Dtype, const I: usize> Module<[E; I]> for Bias1d<E, I>

Source§

impl<E: Dtype, const I: usize> Module<[E; I]> for Diag<E, I>

Source§

impl<E: Dtype, const I: usize> Module<[E; I]> for ScalarScale<E>

Source§

impl<E: Dtype, const I: usize, M: Default + Module<[E; I]>> Module<[E; I]> for LR<E, I, M>

Source§

impl<E: Dtype, const I: usize, M: Default + Module<[E; I], Output = [E; I]>> Module<[E; I]> for Residual<E, I, M>

Source§

impl<E: Float + MatMulImpl, const I: usize> Module<[E; I]> for RMSDiv<E, I>

Source§

impl<E: Float, const I: usize> Module<[E; I]> for Activation<E>

Source§

impl<E: Float, const I: usize> Module<[E; I]> for Softmax

Source§

impl<E: Float, const I: usize> Module<[E; I]> for Swish<E, I>