Loading...
Searching...
No Matches
selection_utilities.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-only
2// Copyright (C) 2026 Artificial Intelligence Techniques, S.L. and Roberto López González
3
4#pragma once
5
7#include "opennn/core/log.h"
10
11namespace opennn
12{
13
14class Training;
15class Network;
16class Dataset;
17
18void validate_selection_training(const Training*, Index folds_number, string_view algorithm);
19
25
26// The history-minimum flag is retained for compatibility; returned-model metrics take precedence.
28 Network*,
29 Index folds_number,
30 const vector<vector<Index>>& fold_partition,
31 Index trials_number,
32 bool use_validation_history_minimum,
33 const function<void(Index, float, float, bool)>& on_trial,
34 const function<void(Index)>& initialize_trial = {});
35
37{
38 struct Block { Shape shape; vector<float> values; };
39 vector<vector<Block>> layers;
40 bool empty() const noexcept { return layers.empty(); }
41};
42
44
46
48
50 const ParameterSnapshot&,
51 const vector<Index>& input_row_map = {});
52
54 Network*,
55 const VectorR& optimal_parameters,
56 Index folds_number,
57 bool display,
58 const char* selected_label);
59
60float read_json_float_alias(const Json*, string_view primary, string_view legacy);
61long long read_json_index_alias(const Json*, string_view primary, string_view legacy);
62
63template <typename Condition>
65{
66 bool fired;
67 Condition condition;
68 string message;
69};
70
71template <typename Condition>
72optional<Condition> first_stopping_condition(const bool display,
73 initializer_list<StoppingCheck<Condition>> checks)
74{
75 const auto check = ranges::find(checks, true, &StoppingCheck<Condition>::fired);
76 if (check != checks.end())
77 {
78 if (display) logging::info() << check->message;
79 return check->condition;
80 }
81
82 return nullopt;
83}
84
85}
Definition dataset.h:48
Definition json.h:24
Definition network.h:87
Definition training.h:13
Line info()
Definition log.h:77
Definition configuration.h:10
optional< Condition > first_stopping_condition(const bool display, initializer_list< StoppingCheck< Condition > > checks)
Definition selection_utilities.h:72
long long read_json_index_alias(const Json *, string_view primary, string_view legacy)
constexpr float MAX
Definition opennn_types.h:309
float read_json_float_alias(const Json *, string_view primary, string_view legacy)
void validate_selection_training(const Training *, Index folds_number, string_view algorithm)
FeatureScaling capture_input_scaling(Dataset *)
void seed_parameters_from_snapshot(Network *, const ParameterSnapshot &, const vector< Index > &input_row_map={})
ParameterSnapshot capture_parameter_snapshot(Network *)
void apply_input_scaling(Network *, FeatureScaling)
CandidateEvaluation evaluate_candidate(Training *, Network *, Index folds_number, const vector< vector< Index > > &fold_partition, Index trials_number, bool use_validation_history_minimum, const function< void(Index, float, float, bool)> &on_trial, const function< void(Index)> &initialize_trial={})
void finalize_selected_model(Training *, Network *, const VectorR &optimal_parameters, Index folds_number, bool display, const char *selected_label)
Eigen::Matrix< float, Eigen::Dynamic, 1 > VectorR
Definition opennn_types.h:335
Definition selection_utilities.h:21
float validation_error
Definition selection_utilities.h:23
float training_error
Definition selection_utilities.h:22
Definition scaling.h:12
Definition selection_utilities.h:38
vector< float > values
Definition selection_utilities.h:38
Shape shape
Definition selection_utilities.h:38
Definition selection_utilities.h:37
bool empty() const noexcept
Definition selection_utilities.h:40
vector< vector< Block > > layers
Definition selection_utilities.h:39
Definition tensor_types.h:172
Definition selection_utilities.h:65
string message
Definition selection_utilities.h:68
bool fired
Definition selection_utilities.h:66
Condition condition
Definition selection_utilities.h:67