Line data Source code
1 : #include "Common.h"
2 :
3 : #include <sstream>
4 :
5 : namespace elsa
6 : {
7 : namespace ml
8 : {
9 : namespace detail
10 : {
11 :
12 : #define ELSA_ML_CASE_STATEMENT(T, X) \
13 : case T::X: \
14 : return #X
15 :
16 12 : std::string getEnumMemberAsString(LayerType type)
17 : {
18 12 : switch (type) {
19 0 : ELSA_ML_CASE_STATEMENT(LayerType, Undefined);
20 4 : ELSA_ML_CASE_STATEMENT(LayerType, Input);
21 1 : ELSA_ML_CASE_STATEMENT(LayerType, Dense);
22 0 : ELSA_ML_CASE_STATEMENT(LayerType, Activation);
23 2 : ELSA_ML_CASE_STATEMENT(LayerType, Conv1D);
24 2 : ELSA_ML_CASE_STATEMENT(LayerType, Conv2D);
25 1 : ELSA_ML_CASE_STATEMENT(LayerType, Conv3D);
26 0 : ELSA_ML_CASE_STATEMENT(LayerType, Conv2DTranspose);
27 0 : ELSA_ML_CASE_STATEMENT(LayerType, Conv3DTranspose);
28 0 : ELSA_ML_CASE_STATEMENT(LayerType, MaxPooling1D);
29 0 : ELSA_ML_CASE_STATEMENT(LayerType, MaxPooling2D);
30 0 : ELSA_ML_CASE_STATEMENT(LayerType, MaxPooling3D);
31 0 : ELSA_ML_CASE_STATEMENT(LayerType, AveragePooling1D);
32 0 : ELSA_ML_CASE_STATEMENT(LayerType, AveragePooling2D);
33 0 : ELSA_ML_CASE_STATEMENT(LayerType, AveragePooling3D);
34 1 : ELSA_ML_CASE_STATEMENT(LayerType, Sum);
35 1 : ELSA_ML_CASE_STATEMENT(LayerType, Concatenate);
36 0 : ELSA_ML_CASE_STATEMENT(LayerType, Reshape);
37 0 : ELSA_ML_CASE_STATEMENT(LayerType, Flatten);
38 0 : ELSA_ML_CASE_STATEMENT(LayerType, Softmax);
39 0 : ELSA_ML_CASE_STATEMENT(LayerType, UpSampling1D);
40 0 : ELSA_ML_CASE_STATEMENT(LayerType, UpSampling2D);
41 0 : ELSA_ML_CASE_STATEMENT(LayerType, UpSampling3D);
42 0 : ELSA_ML_CASE_STATEMENT(LayerType, Projector);
43 0 : default:
44 0 : return "unknown";
45 : }
46 : }
47 :
48 8 : std::string getEnumMemberAsString(Initializer initializer)
49 : {
50 8 : switch (initializer) {
51 1 : ELSA_ML_CASE_STATEMENT(Initializer, Zeros);
52 1 : ELSA_ML_CASE_STATEMENT(Initializer, Ones);
53 1 : ELSA_ML_CASE_STATEMENT(Initializer, Uniform);
54 1 : ELSA_ML_CASE_STATEMENT(Initializer, Normal);
55 1 : ELSA_ML_CASE_STATEMENT(Initializer, GlorotUniform);
56 1 : ELSA_ML_CASE_STATEMENT(Initializer, GlorotNormal);
57 1 : ELSA_ML_CASE_STATEMENT(Initializer, HeUniform);
58 1 : ELSA_ML_CASE_STATEMENT(Initializer, HeNormal);
59 0 : ELSA_ML_CASE_STATEMENT(Initializer, RamLak);
60 0 : default:
61 0 : return "unknown";
62 : }
63 : }
64 :
65 2 : std::string getEnumMemberAsString(MlBackend backend)
66 : {
67 2 : switch (backend) {
68 1 : ELSA_ML_CASE_STATEMENT(MlBackend, Dnnl);
69 1 : ELSA_ML_CASE_STATEMENT(MlBackend, Cudnn);
70 0 : default:
71 0 : return "unknown";
72 : }
73 : }
74 :
75 3 : std::string getEnumMemberAsString(PropagationKind propagation)
76 : {
77 3 : switch (propagation) {
78 1 : ELSA_ML_CASE_STATEMENT(PropagationKind, Forward);
79 1 : ELSA_ML_CASE_STATEMENT(PropagationKind, Backward);
80 1 : ELSA_ML_CASE_STATEMENT(PropagationKind, Full);
81 0 : default:
82 0 : return "unknown";
83 : }
84 : }
85 : #undef ELSA_ML_CASE_STATEMENT
86 : } // namespace detail
87 :
88 : } // namespace ml
89 : } // namespace elsa
|