Trait BatchPreTrainBase

Source
pub trait BatchPreTrainBase<U>: BatchForwardBase + PreTrain<U>
where U: UnitValue<U>,
{ type BatchPreOutput: Debug + 'static; type BatchOutStack: Stack<Head = Self::BatchPreOutput> + Sized + Debug; }
Expand description

Trait that defines the relevant type of implementation that calculates the results of forward propagation prior to processing the error back propagation of the neural network by batch processing.

Required Associated Types§

Source

type BatchPreOutput: Debug + 'static

The type of output that is piled on the stack during the back-propagation process for errors in a batch run.

Source

type BatchOutStack: Stack<Head = Self::BatchPreOutput> + Sized + Debug

Type of object to keep the results of forward propagation needed to perform error back propagation for batch execution.

Implementors§

Source§

impl<U, C, BC, P, D, I, PI, OP, const NI: usize, const NO: usize> BatchPreTrainBase<U> for LinearLayer<U, C, BC, P, D, I, PI, OP, NI, NO>
where P: ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + PreTrain<U, PreOutput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchForward + BatchPreTrainBase<U, BatchPreOutput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + Send + UnitValue<U>, I: Debug + Send + Sync + BatchDataType, OP: Optimizer<U, D>, <PI as BatchDataType>::Type: BatchSize, <I as BatchDataType>::Type: Debug, D: Device<U> + DeviceLinear<U, C, BC, PI, NI, NO>, PI: Debug + BatchDataType + From<<D as DeviceLinear<U, C, BC, PI, NI, NO>>::LossOutput>, <D as DeviceLinear<U, C, BC, PI, NI, NO>>::BatchOutput: Debug, Self: PreTrain<U, PreOutput = <D as DeviceLinear<U, C, BC, PI, NI, NO>>::Output>,

Source§

type BatchPreOutput = <D as DeviceLinear<U, C, BC, PI, NI, NO>>::BatchOutput

Source§

type BatchOutStack = Cons<<P as BatchPreTrainBase<U>>::BatchOutStack, <LinearLayer<U, C, BC, P, D, I, PI, OP, NI, NO> as BatchPreTrainBase<U>>::BatchPreOutput>

Source§

impl<U, C, P, OP, D, I, PI, S, const N: usize> BatchPreTrainBase<U> for BatchNormalizationLayer<U, C, P, OP, D, I, PI, S, N>
where P: ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + PreTrain<U, PreOutput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchForward + BatchPreTrainBase<U, BatchPreOutput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + Debug + Send + UnitValue<U>, D: Device<U> + DeviceBatchNorm<U, C, PI, N>, I: Debug + Send + Sync + BatchDataType, S: Debug + Sized + 'static, C: Debug, OP: Optimizer<U, D>, PI: BatchDataType + Debug + 'static, <PI as BatchDataType>::Type: Debug + 'static, <I as BatchDataType>::Type: Debug, Self: PreTrain<U, PreOutput = PI>,

Source§

impl<U, C, P, OP, D, I, PI, const N: usize> BatchPreTrainBase<U> for BiasLayer<U, C, P, OP, D, I, PI, N>
where P: ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + PreTrain<U, PreOutput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchForward + BatchPreTrainBase<U, BatchPreOutput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + Send + UnitValue<U>, D: Device<U> + DeviceBias<U, C, PI, N>, I: Debug + Send + Sync + BatchDataType, PI: Debug + BatchDataType + 'static, <PI as BatchDataType>::Type: Debug + BatchSize + 'static, <I as BatchDataType>::Type: Debug, OP: Optimizer<U, D>, Self: PreTrain<U, PreOutput = PI>,

Source§

impl<U, O, LI, D> BatchPreTrainBase<U> for InputLayer<U, O, LI, D>
where U: UnitValue<U>, O: Debug + BatchDataType + Send + Sync + 'static, LI: Debug, D: Device<U> + DeviceInput<U, O>, <O as BatchDataType>::Type: Debug + 'static,

Source§

impl<U, P, A, I, PI, D, const N: usize> BatchPreTrainBase<U> for ActivationLayer<U, P, A, I, PI, D, N>
where P: PreTrain<U, PreOutput = PI> + ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchPreTrainBase<U, BatchPreOutput = <PI as BatchDataType>::Type> + BatchPreTrain<U> + BatchBackward<U> + BatchLoss<U, BatchLossInput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + UnitValue<U>, D: Device<U> + DeviceActivation<U, PI, A, N>, PI: Debug + BatchDataType, I: Debug + Send + Sync + BatchDataType, <PI as BatchDataType>::Type: Debug, <I as BatchDataType>::Type: Debug,

Source§

impl<U, P, D, I, PI, const N: usize> BatchPreTrainBase<U> for LinearOutputLayer<U, P, D, I, PI, N>
where P: ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + PreTrain<U, PreOutput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchForward + BatchPreTrainBase<U, BatchPreOutput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + Send + UnitValue<U>, PI: Debug + BatchDataType + ToHost<U, Output = Arr<U, N>> + 'static, I: Debug + Send + Sync + BatchDataType, <PI as BatchDataType>::Type: Debug + ToHost<U, Output = SerializedVec<U, Arr<U, N>>>, <PI as ToHost<U>>::Output: Debug + 'static, <I as BatchDataType>::Type: Debug, <<PI as BatchDataType>::Type as ToHost<U>>::Output: Debug + 'static, for<'a> D: Device<U> + DeviceLinearOutput<'a, U, N, IO = PI>,

Source§

impl<U, P, I, PI, CI, D> BatchPreTrainBase<U> for BridgeLayer<U, P, I, PI, CI, D>
where P: PreTrain<U, PreOutput = PI> + ForwardAll<Input = I, Output = PI> + BackwardAll<U, LossInput = PI> + Loss<U> + BatchForwardBase<BatchInput = <I as BatchDataType>::Type, BatchOutput = <PI as BatchDataType>::Type> + BatchPreTrainBase<U> + BatchPreTrain<U, BatchPreOutput = <PI as BatchDataType>::Type> + BatchBackward<U> + BatchLoss<U, BatchLossInput = <PI as BatchDataType>::Type>, U: Default + Clone + Copy + UnitValue<U>, D: Device<U>, PI: Debug + From<CI> + BatchDataType, I: Debug + Send + Sync + BatchDataType, <PI as BatchDataType>::Type: Debug, <I as BatchDataType>::Type: Debug, for<'a> CI: Debug + SliceSize + AsRawSlice<U> + MakeView<'a, U> + MakeViewMut<'a, U> + 'static,