Loading...
Searching...
No Matches
optimizer.h
Go to the documentation of this file.
75 void set_maximum_validation_failures(const Index new_maximum_validation_failures) { maximum_validation_failures = new_maximum_validation_failures; }
223 bool should_display(Index epoch) const noexcept { return display && epoch % display_period == 0; }
Definition dataset.h:48
Definition json.h:75
Definition json.h:92
Definition json.h:24
Definition loss.h:19
Definition network.h:87
Definition optimizer.h:37
opennn::StoppingCondition StoppingCondition
Definition optimizer.h:44
Loss::EvaluationResult run_epoch_loop(EpochLoopContext &)
Index get_maximum_batch_size() const
void prefetch_batch(Batch &)
virtual void from_JSON(const JsonDocument &)
void set_maximum_time(const float new_maximum_time)
Definition optimizer.h:72
void set_validation_period(const Index n)
Definition optimizer.h:76
int get_batch_pool_size(const Network &) const
virtual void on_epoch_begin(Index, OptimizerData &)
Definition optimizer.h:306
void prepare_training_artifacts()
void setup_device_training()
virtual ~Optimizer()
bool cuda_graph_capture_failed
Definition optimizer.h:374
void sync_device(bool on_gpu, bool has_recurrent_layers, TrainingSession &)
virtual void update_parameters(BackPropagation &, OptimizerData &, UpdateMode=UpdateMode::Standard)
Definition optimizer.h:287
void prepare_full_batch_training(FullBatchContext &, const char *banner)
void save(const filesystem::path &) const
bool network_has_active_dropout() const
void read_common_json(const Json *)
unique_ptr< BatchPrefetchSession > start_batch_prefetch(ThreadSafeQueue< Batch * > &, const vector< vector< Index > > &, const FeatureSelection &, FillMode, WorkerProfileCounters *profile_counters=nullptr)
optional< StoppingCondition > find_stopping_condition(const EpochReport &, float minimum_loss_decrease=-MAX) const
Loss::EvaluationResult evaluate_epoch(ForwardPropagation &, ThreadSafeQueue< Batch * > &, const vector< vector< Index > > &, const FeatureSelection &, TrainingSession &)
void teardown_device_training()
void set_display_period(const Index new_display_period)
Definition optimizer.h:54
void display_epoch_results(Index epoch, float training_error, float training_accuracy, float validation_error, float validation_accuracy, bool has_validation, bool validation_fresh, bool is_token_cross_entropy, float elapsed_time) const
void close_training_result(TrainingResult &, const EpochReport &, bool has_validation) const
void set_names()
Index maximum_validation_failures
Definition optimizer.h:335
static const int default_workers_number
Definition optimizer.h:369
void set_batch_size(const Index new_batch_size)
Definition optimizer.h:92
bool uses_joint_gradient_arena() const noexcept
void update_best_parameters(Network *, float, Index, Index &, BestModelSnapshot &)
void restore_best_parameters(Network *, TrainingResult &, const BestModelSnapshot &)
virtual void configure_for_task(NetworkTask)
virtual string get_display_name() const
Definition optimizer.h:285
Optimizer(Loss *=nullptr)
Index get_epoch_budget() const noexcept
Definition optimizer.h:166
virtual bool supports_cuda_graph() const noexcept
Definition optimizer.h:293
void set_loss_goal(const float new_loss_goal)
Definition optimizer.h:74
void set_maximum_epochs(const Index new_maximum_epochs)
Definition optimizer.h:70
void set_gradient_clip_norm(const float new_clip)
Definition optimizer.h:84
void set_workers_number(int new_workers_number)
Definition optimizer.h:60
function< void(Network *)> post_batch_callback
Definition optimizer.h:110
virtual void setup_optimizer_data(OptimizerData &, Index, Device)
Definition optimizer.h:286
bool should_display(Index epoch) const noexcept
Definition optimizer.h:223
virtual void to_JSON(JsonWriter &) const
Loss::EvaluationResult run_graph_epoch(TrainingSession &, OptimizerData &, ForwardPropagation &, BackPropagation &, ThreadSafeQueue< Batch * > &, const vector< vector< Index > > &, const FeatureSelection &)
void warmup_device_training(TrainingContext &, ThreadSafeQueue< Batch * > &, const vector< vector< Index > > &, const FeatureSelection &, TrainingSession &, OptimizerData &, ForwardPropagation *validation_forward_propagation=nullptr, ThreadSafeQueue< Batch * > *validation_empty_queue=nullptr, const vector< vector< Index > > *validation_batches=nullptr)
void write_common_json(JsonWriter &) const
void set_joint_gradient_arena(bool enabled) noexcept
Definition optimizer.h:86
Index get_maximum_epochs() const noexcept
Definition optimizer.h:71
void load(const filesystem::path &)
bool get_cuda_graph_capture_failed() const noexcept
Definition optimizer.h:64
function< void(Index, float)> post_best_callback
Definition optimizer.h:111
Loss::EvaluationResult train_epoch(TrainingContext &, ThreadSafeQueue< Batch * > &, const vector< vector< Index > > &, const FeatureSelection &, TrainingSession &, OptimizerData &)
TrainingResult train_full_batch(FullBatchContext &, const FullBatchHooks &)
function< void(Index, float, float, Network *)> post_epoch_callback
Definition optimizer.h:109
void set_maximum_validation_failures(const Index new_maximum_validation_failures)
Definition optimizer.h:75
virtual TrainingResult train()
void setup_batch_pools(BatchPools &pools, Dataset &dataset, Network &network, Index training_batch_size, Index validation_batch_size, bool has_validation, TrainingSession &training_session)
static void clip_gradient_norm(BackPropagation &, float)
Definition thread_safe_queue.h:16
Definition device_backend.h:298
Definition energy_meter.h:7
unique_ptr< remove_pointer_t< DeviceGraphExec >, GraphExecDeleter > GraphExecHandle
Definition device_backend.h:326
Definition configuration.h:10
unique_ptr< Optimizer > create_optimizer(const string &name)
Definition back_propagation.h:19
Definition batch.h:132
Definition batch.h:60
Definition tensor_types.h:340
Definition batch.h:24
Definition forward_propagation.h:52
Definition loss.h:94
Definition optimizer.h:28
void set(const vector< Shape > &, const vector< Type > &slot_types, Device device=Device::CPU)
void set(const vector< Shape > &, Device device=Device::CPU)
Definition optimizer.h:184
float validation_error
Definition optimizer.h:185
vector< float > parameters
Definition optimizer.h:187
Definition optimizer.h:169
Index validation_failures
Definition optimizer.h:175
optional< float > loss_decrease
Definition optimizer.h:174
Definition optimizer.h:255
Index training_samples_number
Definition optimizer.h:257
unique_ptr< ForwardPropagation > validation_forward_propagation
Definition optimizer.h:262
Index validation_samples_number
Definition optimizer.h:258
unique_ptr< Batch > validation_batch
Definition optimizer.h:260
unique_ptr< Batch > training_batch
Definition optimizer.h:259
unique_ptr< ForwardPropagation > training_forward_propagation
Definition optimizer.h:261
Definition optimizer.h:273
function< void()> display_extra
Definition optimizer.h:277
float minimum_loss_decrease
Definition optimizer.h:279
function< void()> setup_state
Definition optimizer.h:274
function< FullBatchStep()> train_step
Definition optimizer.h:275
function< float()> validation_error
Definition optimizer.h:276
Definition optimizer.h:266
Definition optimizer.h:124
device::GraphExecHandle exec
Definition optimizer.h:126
array< device::CudaEvent, group_size > copy_done_events
Definition optimizer.h:128
device::CudaEvent fork_event
Definition optimizer.h:127
array< unique_ptr< Batch >, group_size > slots
Definition optimizer.h:125
Definition optimizer.h:146
unique_ptr< Batch > batch
Definition optimizer.h:147
unique_ptr< TrainingContext > context
Definition optimizer.h:148
device::GraphExecHandle exec
Definition optimizer.h:149
bool capture_failed
Definition optimizer.h:151
Definition optimizer.h:118
array< GraphPipeline, pipelines_count > pipelines
Definition optimizer.h:154
bool has_graph_batches() const
Definition optimizer.h:133
bool cuda_graph_capture_allowed
Definition optimizer.h:159
static constexpr int pipelines_count
Definition optimizer.h:121
array< device::CudaEvent, 4 > throttle_events
Definition optimizer.h:157
static constexpr int group_size
Definition optimizer.h:119
Batch * fixed_batch() const
Definition optimizer.h:131
static constexpr int slots_count
Definition optimizer.h:120
void disable_cuda_graph_capture()
Definition optimizer.h:138
Definition training_context.h:15
Definition training_result.h:20