/// A simple linear layer
pub struct Linear<const A: usize, const B: usize> {
pub(crate) weight: GraphTensor<R2<A, B>>,
}
impl<const A: usize, const B: usize> Module<GraphTensor<R1<A>>> for Linear<A, B> {
type Output = GraphTensor<R1<B>>;
fn forward(&self, input: GraphTensor<R1<A>>) -> Self::Output {
input.matmul(self.weight)
}
}