pub trait LearnerComponentTypes {
type Backend: AutodiffBackend;
type LrScheduler: LrScheduler;
type Model: AutodiffModule<Self::Backend, InnerModule = Self::InnerModel> + TrainStep<<Self::LearningData as LearningData>::TrainInput, <Self::LearningData as LearningData>::TrainOutput> + Display + 'static;
type InnerModel: ValidStep<<Self::LearningData as LearningData>::ValidInput, <Self::LearningData as LearningData>::ValidOutput>;
type Optimizer: Optimizer<Self::Model, Self::Backend>;
type CheckpointerModel: Checkpointer<<Self::Model as Module<Self::Backend>>::Record, Self::Backend>;
type CheckpointerOptimizer: Checkpointer<<Self::Optimizer as Optimizer<Self::Model, Self::Backend>>::Record, Self::Backend> + Send;
type CheckpointerLrScheduler: Checkpointer<<Self::LrScheduler as LrScheduler>::Record<Self::Backend>, Self::Backend>;
type EventProcessor: EventProcessorTraining<ItemTrain = <Self::LearningData as LearningData>::TrainOutput, ItemValid = <Self::LearningData as LearningData>::ValidOutput> + 'static;
type CheckpointerStrategy: CheckpointingStrategy;
type LearningData: LearningData;
}Expand description
All components necessary to train a model grouped in one trait.
Required Associated Types§
Sourcetype Backend: AutodiffBackend
type Backend: AutodiffBackend
The backend in used for the training.
Sourcetype LrScheduler: LrScheduler
type LrScheduler: LrScheduler
The learning rate scheduler used for the training.
Sourcetype Model: AutodiffModule<Self::Backend, InnerModule = Self::InnerModel> + TrainStep<<Self::LearningData as LearningData>::TrainInput, <Self::LearningData as LearningData>::TrainOutput> + Display + 'static
type Model: AutodiffModule<Self::Backend, InnerModule = Self::InnerModel> + TrainStep<<Self::LearningData as LearningData>::TrainInput, <Self::LearningData as LearningData>::TrainOutput> + Display + 'static
The model to train.
Sourcetype InnerModel: ValidStep<<Self::LearningData as LearningData>::ValidInput, <Self::LearningData as LearningData>::ValidOutput>
type InnerModel: ValidStep<<Self::LearningData as LearningData>::ValidInput, <Self::LearningData as LearningData>::ValidOutput>
The non-autodiff type of the model, should implement ValidationStep
Sourcetype CheckpointerModel: Checkpointer<<Self::Model as Module<Self::Backend>>::Record, Self::Backend>
type CheckpointerModel: Checkpointer<<Self::Model as Module<Self::Backend>>::Record, Self::Backend>
The checkpointer used for the model.
Sourcetype CheckpointerOptimizer: Checkpointer<<Self::Optimizer as Optimizer<Self::Model, Self::Backend>>::Record, Self::Backend> + Send
type CheckpointerOptimizer: Checkpointer<<Self::Optimizer as Optimizer<Self::Model, Self::Backend>>::Record, Self::Backend> + Send
The checkpointer used for the optimizer.
Sourcetype CheckpointerLrScheduler: Checkpointer<<Self::LrScheduler as LrScheduler>::Record<Self::Backend>, Self::Backend>
type CheckpointerLrScheduler: Checkpointer<<Self::LrScheduler as LrScheduler>::Record<Self::Backend>, Self::Backend>
The checkpointer used for the scheduler.
Sourcetype EventProcessor: EventProcessorTraining<ItemTrain = <Self::LearningData as LearningData>::TrainOutput, ItemValid = <Self::LearningData as LearningData>::ValidOutput> + 'static
type EventProcessor: EventProcessorTraining<ItemTrain = <Self::LearningData as LearningData>::TrainOutput, ItemValid = <Self::LearningData as LearningData>::ValidOutput> + 'static
Processes events happening during training and valid.
Sourcetype CheckpointerStrategy: CheckpointingStrategy
type CheckpointerStrategy: CheckpointingStrategy
The strategy to save and delete checkpoints.
Sourcetype LearningData: LearningData
type LearningData: LearningData
The data used to perform training and validation.