Loading...
Searching...
No Matches
growing_neurons.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
8
9namespace opennn
10{
11
12class Training;
14
16{
17
18public:
19
27
28 explicit GrowingNeurons(Training* = nullptr);
29
30 const Training* get_training() const noexcept { return training; }
31
32 void set(Training*);
33 void set_training(Training* new_training) noexcept
34 {
35 training = new_training;
36 }
37
39
40 void set_maximum_neurons(const Index new_maximum_neurons) { maximum_neurons = new_maximum_neurons; }
41 void set_minimum_neurons(const Index new_minimum_neurons) { minimum_neurons = new_minimum_neurons; }
42
43 void set_neurons_increment(const Index new_neurons_increment) { neurons_increment = new_neurons_increment; }
44
45 void set_warm_start(bool new_warm_start) { warm_start = new_warm_start; }
46
48
49 string get_name() const { return "GrowingNeurons"; }
50
51 void from_JSON(const JsonDocument&);
52
53 void to_JSON(JsonWriter&) const;
54
55 void save(const filesystem::path&) const;
56 void load(const filesystem::path&);
57
58private:
59
60 Index minimum_neurons = 0;
61
62 Index maximum_neurons = 0;
63
64 Index neurons_increment = 0;
65
66 bool warm_start = true;
67};
68
70{
71 NeuronsSelectionResult(const Index maximum_epochs = 0);
72
73 void resize_history(const Index);
74
75 void print() const;
76
78
80
82
84
86
88
90
91 optional<GrowingNeurons::StoppingCondition> stopping_condition;
92
94};
95
96}
void to_JSON(JsonWriter &) const
void set_neurons_increment(const Index new_neurons_increment)
Definition growing_neurons.h:43
void set_minimum_neurons(const Index new_minimum_neurons)
Definition growing_neurons.h:41
NeuronsSelectionResult perform_neurons_selection()
void save(const filesystem::path &) const
string get_name() const
Definition growing_neurons.h:49
void set_training(Training *new_training) noexcept
Definition growing_neurons.h:33
StoppingCondition
Definition growing_neurons.h:20
@ ValidationErrorGoal
Definition growing_neurons.h:22
@ MaximumEpochs
Definition growing_neurons.h:23
@ MaximumTime
Definition growing_neurons.h:21
@ MaximumNeurons
Definition growing_neurons.h:25
@ MaximumValidationFailures
Definition growing_neurons.h:24
void set_maximum_neurons(const Index new_maximum_neurons)
Definition growing_neurons.h:40
const Training * get_training() const noexcept
Definition growing_neurons.h:30
GrowingNeurons(Training *=nullptr)
void from_JSON(const JsonDocument &)
void set(Training *)
void set_warm_start(bool new_warm_start)
Definition growing_neurons.h:45
void load(const filesystem::path &)
Definition json.h:75
Definition json.h:92
SelectionAlgorithm(Training *new_training=nullptr)
Definition selection_algorithm.h:17
Training * training
Definition selection_algorithm.h:41
Definition training.h:13
Definition configuration.h:10
Eigen::Matrix< float, Eigen::Dynamic, 1 > VectorR
Definition opennn_types.h:335
Eigen::Matrix< Index, Eigen::Dynamic, 1 > VectorI
Definition opennn_types.h:336
Definition growing_neurons.h:70
VectorR optimal_parameters
Definition growing_neurons.h:81
VectorI neurons_number_history
Definition growing_neurons.h:77
float optimum_validation_error
Definition growing_neurons.h:89
string elapsed_time
Definition growing_neurons.h:93
void resize_history(const Index)
NeuronsSelectionResult(const Index maximum_epochs=0)
VectorR validation_error_history
Definition growing_neurons.h:85
VectorR training_error_history
Definition growing_neurons.h:83
Index optimal_neurons_number
Definition growing_neurons.h:79
optional< GrowingNeurons::StoppingCondition > stopping_condition
Definition growing_neurons.h:91
float optimum_training_error
Definition growing_neurons.h:87