OpenNN
Open-source neural networks library
Loading...
Searching...
No Matches
variable.h
Go to the documentation of this file.
1// OpenNN: Open Neural Networks Library
2// www.opennn.net
3//
4// V A R I A B L E S T R U C T U R E H E A D E R
5//
6// Artificial Intelligence Techniques SL
7// artelnics@artelnics.com
8
9#include "pch.h"
10#include "tensor_utilities.h"
11#include "enum_map.h"
12
13#pragma once
14
15namespace opennn
16{
17
19
29
31{
32 static const vector<pair<ScalerMethod, string>> entries = {
33 {ScalerMethod::None, "None"},
34 {ScalerMethod::MinimumMaximum, "MinimumMaximum"},
35 {ScalerMethod::MeanStandardDeviation, "MeanStandardDeviation"},
36 {ScalerMethod::StandardDeviation, "StandardDeviation"},
37 {ScalerMethod::Logarithm, "Logarithm"},
38 {ScalerMethod::ImageMinMax, "ImageMinMax"}
39 };
40 static const EnumMap<ScalerMethod> map{entries};
41 return map;
42}
43
44inline const string& scaler_method_to_string(ScalerMethod method)
45{
46 return scaler_method_map().to_string(method);
47}
48
49inline ScalerMethod string_to_scaler_method(const string& name)
50{
51 return scaler_method_map().from_string(name);
52}
53
63
65{
66 static const vector<pair<VariableRole, string>> entries = {
67 {VariableRole::None, "None"},
68 {VariableRole::Input, "Input"},
69 {VariableRole::Target, "Target"},
70 {VariableRole::Decoder, "Decoder"},
71 {VariableRole::InputTarget, "InputTarget"},
72 {VariableRole::Time, "Time"}
73 };
74 static const EnumMap<VariableRole> map{entries};
75 return map;
76}
77
78inline const string& variable_role_to_string(VariableRole role)
79{
80 return variable_role_map().to_string(role);
81}
82
83inline VariableRole string_to_variable_role(const string& name)
84{
85 if (name == "Id") return VariableRole::None;
86 return variable_role_map().from_string(name);
87}
88
89inline bool role_matches(VariableRole actual, VariableRole query)
90{
91 return actual == query
92 || (actual == VariableRole::InputTarget && (query == VariableRole::Input || query == VariableRole::Target));
93}
94
96{
97 Variable(const string& = string(),
98 const string& = "None",
100 const string& = "MeanStandardDeviation",
101 const vector<string>& = vector<string>());
102
103 void set(const string& = string(),
104 const string& = "None",
106 const string& = "MeanStandardDeviation",
107 const vector<string>& = vector<string>());
108
109 string name;
112 vector<string> categories;
114 const string& get_role() const { return variable_role_to_string(role); }
115 VariableRole get_role_type() const { return role; }
116 const string& get_scaler() const { return scaler_method_to_string(scaler); }
118 string get_type_string() const;
120
121 void set_scaler(const string& new_scaler) { scaler = string_to_scaler_method(new_scaler); }
122 void set_scaler(ScalerMethod new_scaler) { scaler = new_scaler; }
123 void set_role(const string& new_role) { role = string_to_variable_role(new_role); }
124 void set_role(VariableRole new_role) { role = new_role; }
125 void set_type(const string&);
126 void set_categories(const vector<string>& new_categories) { categories = new_categories; }
127
129 void to_JSON(JsonWriter&) const;
130
131 bool is_binary() const { return type == VariableType::Binary; }
133 bool is_used() const { return role != VariableRole::None && role != VariableRole::Time; }
134
135 vector<string> get_names() const;
136
137};
138
139}
Definition json.h:71
Definition json.h:84
Definition adaptive_moment_estimation.h:19
const EnumMap< ScalerMethod > & scaler_method_map()
Definition variable.h:30
VariableRole
Definition variable.h:55
@ InputTarget
Definition variable.h:60
@ Input
Definition variable.h:57
@ None
Definition variable.h:56
@ Time
Definition variable.h:61
@ Target
Definition variable.h:58
@ Decoder
Definition variable.h:59
bool role_matches(VariableRole actual, VariableRole query)
Definition variable.h:89
const EnumMap< VariableRole > & variable_role_map()
Definition variable.h:64
ScalerMethod
Definition variable.h:21
@ MeanStandardDeviation
Definition variable.h:24
@ Logarithm
Definition variable.h:26
@ StandardDeviation
Definition variable.h:25
@ None
Definition variable.h:22
@ MinimumMaximum
Definition variable.h:23
@ ImageMinMax
Definition variable.h:27
const string & variable_role_to_string(VariableRole role)
Definition variable.h:78
ScalerMethod string_to_scaler_method(const string &name)
Definition variable.h:49
@ None
Definition dataset.h:44
VariableType
Definition variable.h:18
@ Categorical
Definition variable.h:18
@ None
Definition variable.h:18
@ Binary
Definition variable.h:18
@ Numeric
Definition variable.h:18
@ DateTime
Definition variable.h:18
@ Constant
Definition variable.h:18
const string & scaler_method_to_string(ScalerMethod method)
Definition variable.h:44
VariableRole string_to_variable_role(const string &name)
Definition variable.h:83
Definition enum_map.h:18
const string & to_string(Enum value) const
Definition enum_map.h:23
const string & get_role() const
Definition variable.h:114
void set_categories(const vector< string > &new_categories)
Definition variable.h:126
string get_type_string() const
string name
Definition variable.h:109
void set(const string &=string(), const string &="None", const VariableType &=VariableType::Numeric, const string &="MeanStandardDeviation", const vector< string > &=vector< string >())
Index get_categories_number() const
void set_scaler(ScalerMethod new_scaler)
Definition variable.h:122
void set_type(const string &)
bool is_used() const
Definition variable.h:133
void set_role(VariableRole new_role)
Definition variable.h:124
bool is_categorical() const
Definition variable.h:132
void to_JSON(JsonWriter &) const
vector< string > get_names() const
vector< string > categories
Definition variable.h:112
void set_scaler(const string &new_scaler)
Definition variable.h:121
VariableRole get_role_type() const
Definition variable.h:115
void set_role(const string &new_role)
Definition variable.h:123
bool is_binary() const
Definition variable.h:131
VariableRole role
Definition variable.h:110
ScalerMethod scaler
Definition variable.h:113
ScalerMethod get_scaler_type() const
Definition variable.h:117
void from_JSON(const JsonDocument &)
VariableType type
Definition variable.h:111
Variable(const string &=string(), const string &="None", const VariableType &=VariableType::Numeric, const string &="MeanStandardDeviation", const vector< string > &=vector< string >())
const string & get_scaler() const
Definition variable.h:116