Trait MetricRegistration

pub trait MetricRegistration<B, M, O, S, TI, VI, TO, VO>: Sized
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static,
{ // Required method fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>; }
Expand description

Trait to fake variadic generics.

Required Methods§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

Register the metrics.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<M1, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1,)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input>, M1: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

§

impl<M1, M2, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1, M2)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input>, M1: Metric + Numeric + 'static, M2: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

§

impl<M1, M2, M3, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1, M2, M3)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input>, M1: Metric + Numeric + 'static, M2: Metric + Numeric + 'static, M3: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

§

impl<M1, M2, M3, M4, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1, M2, M3, M4)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input>, M1: Metric + Numeric + 'static, M2: Metric + Numeric + 'static, M3: Metric + Numeric + 'static, M4: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

§

impl<M1, M2, M3, M4, M5, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1, M2, M3, M4, M5)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input> + Adaptor<<M5 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input> + Adaptor<<M5 as Metric>::Input>, M1: Metric + Numeric + 'static, M2: Metric + Numeric + 'static, M3: Metric + Numeric + 'static, M4: Metric + Numeric + 'static, M5: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

§

impl<M1, M2, M3, M4, M5, M6, B, M, O, S, TI, VI, TO, VO> MetricRegistration<B, M, O, S, TI, VI, TO, VO> for (M1, M2, M3, M4, M5, M6)
where B: AutodiffBackend, M: AutodiffModule<B> + TrainStep<TI, TO> + Display + 'static, <M as AutodiffModule<B>>::InnerModule: ValidStep<VI, VO>, O: Optimizer<M, B>, S: LrScheduler, TI: Send + 'static, VI: Send + 'static, TO: ItemLazy + 'static, VO: ItemLazy + 'static, <TO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input> + Adaptor<<M5 as Metric>::Input> + Adaptor<<M6 as Metric>::Input>, <VO as ItemLazy>::ItemSync: Adaptor<<M1 as Metric>::Input> + Adaptor<<M2 as Metric>::Input> + Adaptor<<M3 as Metric>::Input> + Adaptor<<M4 as Metric>::Input> + Adaptor<<M5 as Metric>::Input> + Adaptor<<M6 as Metric>::Input>, M1: Metric + Numeric + 'static, M2: Metric + Numeric + 'static, M3: Metric + Numeric + 'static, M4: Metric + Numeric + 'static, M5: Metric + Numeric + 'static, M6: Metric + Numeric + 'static,

§

fn register( self, builder: LearnerBuilder<B, M, O, S, TI, VI, TO, VO>, ) -> LearnerBuilder<B, M, O, S, TI, VI, TO, VO>

Implementors§