ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
tauRecTools
tauRecTools
lwtnn
NNLayerConfig.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef NN_LAYER_CONFIG_HH_TAURECTOOLS
6
#define NN_LAYER_CONFIG_HH_TAURECTOOLS
7
8
// Layer Configiruation for Lightweight Tagger
9
//
10
// The structures below are used to initalize
11
// `LightweightNeuralNetwork` and the simpler `Stack`.
12
//
13
// Author: Dan Guest <dguest@cern.ch>
14
15
#include <vector>
16
#include <map>
17
#include <string>
18
19
namespace
lwtDev
{
20
enum class
Activation
{
NONE
,
LINEAR
,
SIGMOID
,
RECTIFIED
,
SOFTMAX
,
TANH
,
21
HARD_SIGMOID
,
ELU
,
LEAKY_RELU
,
SWISH
,
ABS
};
22
enum class
Architecture
{
NONE
,
DENSE
,
NORMALIZATION
,
MAXOUT
,
HIGHWAY
,
23
LSTM
,
GRU
,
BIDIRECTIONAL
,
EMBEDDING
};
24
// components (for LSTM, etc)
25
enum class
Component
{
26
I
,
O
,
C
,
F
,
// LSTM
27
Z
,
R
,
H
,
// GRU
28
T,
CARRY
};
// Highway
29
30
// structure for embedding layers
31
struct
EmbeddingConfig
32
{
33
std::vector<double>
weights
;
34
int
index
{};
35
int
n_out
{};
36
};
37
38
struct
ActivationConfig
39
{
40
Activation
function
=
Activation::NONE
;
41
double
alpha
= 0;
42
};
43
44
// main layer configuration
45
struct
LayerConfig
46
{
47
// dense layer info
48
std::vector<double>
weights
;
49
std::vector<double>
bias
;
50
std::vector<double>
U
;
// TODO: what is this thing called in LSTMs?
51
ActivationConfig
activation
;
52
ActivationConfig
inner_activation
;
// for LSTMs and GRUs
53
bool
go_backwards
=
false
;
// for LSTMs and GRUs
54
bool
return_sequence
=
false
;
// for LSTMs and GRUs
55
std::string
merge_mode
;
// for Bidirectional
56
57
58
// additional info for sublayers
59
std::vector<LayerConfig>
sublayers
;
60
std::map<Component, LayerConfig>
components
;
61
std::vector<EmbeddingConfig>
embedding
;
62
63
// arch flag
64
Architecture
architecture
=
Architecture::NONE
;
65
};
66
67
// graph node configuration
68
struct
NodeConfig
69
{
70
enum class
Type
{
71
INPUT
,
INPUT_SEQUENCE
,
FEED_FORWARD
,
CONCATENATE
,
SEQUENCE
,
72
TIME_DISTRIBUTED
,
SUM
};
73
Type
type
{};
74
std::vector<size_t>
sources
;
75
int
index
{};
// input node size, or layer number
76
};
77
}
78
79
#endif
F
#define F(x, y, z)
Definition
MD5.cxx:112
I
#define I(x, y, z)
Definition
MD5.cxx:116
H
#define H(x, y, z)
Definition
MD5.cxx:114
INPUT
@ INPUT
Definition
TrigSignatureMoni.cxx:17
lwtDev::ELU
Definition
Stack.h:338
C
struct color C
index
Definition
index.py:1
lwtDev
Definition
Reconstruction/tauRecTools/Root/lwtnn/Exceptions.cxx:8
lwtDev::Activation
Activation
Definition
NNLayerConfig.h:20
lwtDev::Activation::TANH
@ TANH
Definition
NNLayerConfig.h:20
lwtDev::Activation::SOFTMAX
@ SOFTMAX
Definition
NNLayerConfig.h:20
lwtDev::Activation::RECTIFIED
@ RECTIFIED
Definition
NNLayerConfig.h:20
lwtDev::Activation::HARD_SIGMOID
@ HARD_SIGMOID
Definition
NNLayerConfig.h:21
lwtDev::Activation::ABS
@ ABS
Definition
NNLayerConfig.h:21
lwtDev::Activation::LINEAR
@ LINEAR
Definition
NNLayerConfig.h:20
lwtDev::Activation::SIGMOID
@ SIGMOID
Definition
NNLayerConfig.h:20
lwtDev::Activation::NONE
@ NONE
Definition
NNLayerConfig.h:20
lwtDev::Activation::LEAKY_RELU
@ LEAKY_RELU
Definition
NNLayerConfig.h:21
lwtDev::Activation::SWISH
@ SWISH
Definition
NNLayerConfig.h:21
lwtDev::Component
Component
Definition
NNLayerConfig.h:25
lwtDev::Component::Z
@ Z
Definition
NNLayerConfig.h:27
lwtDev::Component::CARRY
@ CARRY
Definition
NNLayerConfig.h:28
lwtDev::Component::R
@ R
Definition
NNLayerConfig.h:27
lwtDev::Component::O
@ O
Definition
NNLayerConfig.h:26
lwtDev::Architecture
Architecture
Definition
NNLayerConfig.h:22
lwtDev::Architecture::BIDIRECTIONAL
@ BIDIRECTIONAL
Definition
NNLayerConfig.h:23
lwtDev::Architecture::DENSE
@ DENSE
Definition
NNLayerConfig.h:22
lwtDev::Architecture::HIGHWAY
@ HIGHWAY
Definition
NNLayerConfig.h:22
lwtDev::Architecture::MAXOUT
@ MAXOUT
Definition
NNLayerConfig.h:22
lwtDev::Architecture::EMBEDDING
@ EMBEDDING
Definition
NNLayerConfig.h:23
lwtDev::Architecture::NORMALIZATION
@ NORMALIZATION
Definition
NNLayerConfig.h:22
lwtDev::Architecture::NONE
@ NONE
Definition
NNLayerConfig.h:22
lwtDev::Architecture::GRU
@ GRU
Definition
NNLayerConfig.h:23
lwtDev::Architecture::LSTM
@ LSTM
Definition
NNLayerConfig.h:23
lwtDev::ActivationConfig
Definition
NNLayerConfig.h:39
lwtDev::ActivationConfig::function
Activation function
Definition
NNLayerConfig.h:40
lwtDev::ActivationConfig::alpha
double alpha
Definition
NNLayerConfig.h:41
lwtDev::EmbeddingConfig
Definition
NNLayerConfig.h:32
lwtDev::EmbeddingConfig::n_out
int n_out
Definition
NNLayerConfig.h:35
lwtDev::EmbeddingConfig::weights
std::vector< double > weights
Definition
NNLayerConfig.h:33
lwtDev::LayerConfig
Definition
NNLayerConfig.h:46
lwtDev::LayerConfig::go_backwards
bool go_backwards
Definition
NNLayerConfig.h:53
lwtDev::LayerConfig::inner_activation
ActivationConfig inner_activation
Definition
NNLayerConfig.h:52
lwtDev::LayerConfig::merge_mode
std::string merge_mode
Definition
NNLayerConfig.h:55
lwtDev::LayerConfig::U
std::vector< double > U
Definition
NNLayerConfig.h:50
lwtDev::LayerConfig::bias
std::vector< double > bias
Definition
NNLayerConfig.h:49
lwtDev::LayerConfig::sublayers
std::vector< LayerConfig > sublayers
Definition
NNLayerConfig.h:59
lwtDev::LayerConfig::architecture
Architecture architecture
Definition
NNLayerConfig.h:64
lwtDev::LayerConfig::activation
ActivationConfig activation
Definition
NNLayerConfig.h:51
lwtDev::LayerConfig::embedding
std::vector< EmbeddingConfig > embedding
Definition
NNLayerConfig.h:61
lwtDev::LayerConfig::components
std::map< Component, LayerConfig > components
Definition
NNLayerConfig.h:60
lwtDev::LayerConfig::weights
std::vector< double > weights
Definition
NNLayerConfig.h:48
lwtDev::LayerConfig::return_sequence
bool return_sequence
Definition
NNLayerConfig.h:54
lwtDev::NodeConfig
Definition
NNLayerConfig.h:69
lwtDev::NodeConfig::Type
Type
Definition
NNLayerConfig.h:70
lwtDev::NodeConfig::Type::FEED_FORWARD
@ FEED_FORWARD
Definition
NNLayerConfig.h:71
lwtDev::NodeConfig::Type::TIME_DISTRIBUTED
@ TIME_DISTRIBUTED
Definition
NNLayerConfig.h:72
lwtDev::NodeConfig::Type::SEQUENCE
@ SEQUENCE
Definition
NNLayerConfig.h:71
lwtDev::NodeConfig::Type::CONCATENATE
@ CONCATENATE
Definition
NNLayerConfig.h:71
lwtDev::NodeConfig::Type::SUM
@ SUM
Definition
NNLayerConfig.h:72
lwtDev::NodeConfig::Type::INPUT_SEQUENCE
@ INPUT_SEQUENCE
Definition
NNLayerConfig.h:71
lwtDev::NodeConfig::sources
std::vector< size_t > sources
Definition
NNLayerConfig.h:74
lwtDev::NodeConfig::type
Type type
Definition
NNLayerConfig.h:73
Generated on
for ATLAS Offline Software by
1.17.0