pub trait TrainingAlgorithm<T: Float>: Send {
// Required methods
fn train_epoch(
&mut self,
network: &mut Network<T>,
data: &TrainingData<T>,
) -> Result<T, TrainingError>;
fn calculate_error(&self, network: &Network<T>, data: &TrainingData<T>) -> T;
fn count_bit_fails(
&self,
network: &Network<T>,
data: &TrainingData<T>,
bit_fail_limit: T,
) -> usize;
fn save_state(&self) -> TrainingState<T>;
fn restore_state(&mut self, state: TrainingState<T>);
fn set_callback(&mut self, callback: TrainingCallback<T>);
fn call_callback(
&mut self,
epoch: usize,
network: &Network<T>,
data: &TrainingData<T>,
) -> bool;
}Expand description
Main trait for training algorithms
Required Methods§
Sourcefn train_epoch(
&mut self,
network: &mut Network<T>,
data: &TrainingData<T>,
) -> Result<T, TrainingError>
fn train_epoch( &mut self, network: &mut Network<T>, data: &TrainingData<T>, ) -> Result<T, TrainingError>
Train for one epoch
Sourcefn calculate_error(&self, network: &Network<T>, data: &TrainingData<T>) -> T
fn calculate_error(&self, network: &Network<T>, data: &TrainingData<T>) -> T
Calculate the current error
Sourcefn count_bit_fails(
&self,
network: &Network<T>,
data: &TrainingData<T>,
bit_fail_limit: T,
) -> usize
fn count_bit_fails( &self, network: &Network<T>, data: &TrainingData<T>, bit_fail_limit: T, ) -> usize
Count bit fails
Sourcefn save_state(&self) -> TrainingState<T>
fn save_state(&self) -> TrainingState<T>
Save training state
Sourcefn restore_state(&mut self, state: TrainingState<T>)
fn restore_state(&mut self, state: TrainingState<T>)
Restore training state
Sourcefn set_callback(&mut self, callback: TrainingCallback<T>)
fn set_callback(&mut self, callback: TrainingCallback<T>)
Set a callback function
Sourcefn call_callback(
&mut self,
epoch: usize,
network: &Network<T>,
data: &TrainingData<T>,
) -> bool
fn call_callback( &mut self, epoch: usize, network: &Network<T>, data: &TrainingData<T>, ) -> bool
Call the callback if set