Loading...
Searching...
No Matches
optimizer.h
Go to the documentation of this file.
76 void set_maximum_validation_failures(const Index new_maximum_validation_failures) { maximum_validation_failures = new_maximum_validation_failures; }
Definition json.h:72
Definition json.h:85
Definition json.h:23
Unified loss container supporting MSE, cross-entropy, Minkowski, weighted, and regularized variants.
Definition loss.h:24
static void clip_gradient_norm(Buffer &gradient, float max_norm)
Index get_maximum_batch_size() const
Largest batch size compatible with the dataset and configured memory budget.
unordered_set< Batch * > batch_reuse_recorded
Definition optimizer.h:175
virtual void from_JSON(const JsonDocument &)
Restores optimizer configuration from a JSON document.
void set_maximum_time(const float new_maximum_time)
Definition optimizer.h:73
void setup_device_training()
void warn_dropped_samples(Index batch_size, Index samples_number, const char *context) const
void save(const filesystem::path &) const
Writes the current optimizer configuration to a JSON file at the given path.
void read_common_json(const Json *)
void set_unscaling()
unordered_map< Batch *, cudaEvent_t > batch_reuse_events
Definition optimizer.h:174
virtual TrainingResults train()=0
Runs the training loop and returns the recorded results (must be implemented by subclasses).
void prefetch_batch(Batch &batch, Index sample_count, int slot)
void teardown_device_training()
void set_display_period(const Index new_display_period)
Definition optimizer.h:67
EpochStats train_epoch(bool tracks_accuracy, ForwardPropagation &forward_propagation, BackPropagation &back_propagation, ThreadSafeQueue< Batch * > &empty_queue, const vector< vector< Index > > &batches, const vector< Index > &input_feature_indices, const vector< Index > &decoder_feature_indices, const vector< Index > &target_feature_indices, const function< void(BackPropagation &)> &update, bool show_progress=true)
void set_names()
Index maximum_validation_failures
Definition optimizer.h:158
void wait_prefetch(int slot)
virtual void print() const
Prints a human-readable description of the optimizer (no-op default).
Definition optimizer.h:86
virtual ~Optimizer()=default
bool check_stopping_condition(TrainingResults &, Index epoch, float elapsed_time, float training_error, Index validation_failures) const
EpochStats evaluate_epoch(bool tracks_accuracy, ForwardPropagation &forward_propagation, ThreadSafeQueue< Batch * > &empty_queue, const vector< vector< Index > > &batches, const vector< Index > &input_feature_indices, const vector< Index > &decoder_feature_indices, const vector< Index > &target_feature_indices)
Optimizer(Loss *=nullptr)
Constructs an optimizer optionally bound to a Loss instance.
void clear_batch_reuse_events()
StoppingCondition
Reason that training was halted in the last call to train().
Definition optimizer.h:47
@ MaximumEpochsNumber
Definition optimizer.h:51
@ MaximumSelectionErrorIncreases
Definition optimizer.h:50
@ MinimumLossDecrease
Definition optimizer.h:48
void sync_device()
void set_loss_goal(const float new_loss_goal)
Definition optimizer.h:75
void set_maximum_epochs(const Index new_maximum_epochs)
Definition optimizer.h:72
virtual void to_JSON(JsonWriter &) const
Serializes the optimizer configuration to JSON.
void write_common_json(JsonWriter &) const
static float get_elapsed_time(const time_t &beginning_time)
Returns seconds elapsed since the given start time.
virtual void set_loss(Loss *new_loss)
Binds the optimizer to a new Loss instance (virtual hook for derived classes).
Definition optimizer.h:62
void load(const filesystem::path &)
Loads the optimizer configuration from a JSON file at the given path.
void set_scaling()
void set_maximum_validation_failures(const Index new_maximum_validation_failures)
Definition optimizer.h:76
void set(Loss *new_loss)
Binds the optimizer to a new Loss instance.
Definition optimizer.h:59
void record_batch_reuse(Batch &batch)
virtual void set_display(bool new_display)
Enables or disables console progress reporting during training.
Definition optimizer.h:65
Definition thread_safe_queue.h:24
Definition adaptive_moment_estimation.h:14
Device
Execution device selection for OpenNN runtime (auto-detected, CPU or CUDA GPU).
Definition configuration.h:17
Workspace holding parameter gradients and per-layer deltas during a backward pass.
Definition back_propagation.h:21
Minibatch container holding pinned host/device buffers and views into a Dataset.
Definition batch.h:19
Owning raw byte buffer that lives on CPU or CUDA memory, with aligned (re)allocation.
Definition tensor_utilities.h:166
Workspace holding the activations of every layer during a forward pass.
Definition forward_propagation.h:20
OptimizerData()=default
void set(const vector< Shape > &slot_shapes, Device device=Device::CPU)
Allocates a buffer with the requested slot shapes on the target device and refreshes the views.
virtual void print() const
Prints the optimizer scratch state for debugging.
virtual ~OptimizerData()=default
Aggregated per-epoch error and accuracy returned by training/evaluation passes.
Definition optimizer.h:37
History and final metrics produced by a training run.
Definition optimizer.h:204
VectorR training_error_history
Definition optimizer.h:238
void print(const string &message={}) const
Prints a summary of the training run, optionally prefixed by a message.
void resize_validation_error_history(const Index)
Resizes the stored validation-error history.
void resize_training_error_history(const Index)
Resizes the stored training-error history.
virtual ~TrainingResults()=default
VectorR validation_error_history
Definition optimizer.h:240
float get_training_error() const
Returns the final training error.
void save(const filesystem::path &) const
Saves the training-error and validation-error histories to a JSON file.
string write_stopping_condition() const
Returns a human-readable label for the stored stopping condition.
Index get_epochs_number() const
Returns the number of epochs that were actually executed.
float get_validation_error() const
Returns the final validation (selection) error.
Optimizer::StoppingCondition stopping_condition
Definition optimizer.h:227
Tensor< string, 2 > write_override_results(const Index=3) const
Builds a table of final metrics for embedding in higher-level reports.
TrainingResults(const Index=0)
Constructs a TrainingResults pre-sized for the given number of epochs.