pub trait Layer {
type Input: Dimension;
type Output: Dimension;
// Required methods
fn forward(
&mut self,
input: &ArrayBase<OwnedRepr<f32>, Self::Input>,
) -> ArrayBase<OwnedRepr<f32>, Self::Output>;
fn backward(
&mut self,
grad_output: &ArrayBase<OwnedRepr<f32>, Self::Output>,
learning_rate: f32,
) -> ArrayBase<OwnedRepr<f32>, Self::Input>;
}