aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/SerializeLayerParameters.hpp
blob: d2c7d76d7d3c40788f9a1d1dd67137730c494144 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
#pragma once

#include <string>
#include <functional>
#include <armnn/Descriptors.hpp>

namespace armnn
{

using ParameterStringifyFunction = std::function<void(const std::string& name, const std::string& value)>;

///
/// StringifyLayerParameters allows serializing layer parameters to string.
/// The default implementation is a no-op because this operation is considered
/// non-vital for ArmNN and thus we allow adding new layer parameters without
/// supplying the corresponding stringify functionality.
///
template <typename LayerParameter>
struct StringifyLayerParameters
{
    static void Serialize(ParameterStringifyFunction&, const LayerParameter&) {}
};

template <> struct StringifyLayerParameters<ActivationDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ActivationDescriptor& desc);
};

template <> struct StringifyLayerParameters<BatchNormalizationDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const BatchNormalizationDescriptor& desc);
};

template <> struct StringifyLayerParameters<BatchToSpaceNdDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const BatchToSpaceNdDescriptor& desc);
};

template <> struct StringifyLayerParameters<ChannelShuffleDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ChannelShuffleDescriptor& desc);
};

template <> struct StringifyLayerParameters<ComparisonDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ComparisonDescriptor& desc);
};

template <> struct StringifyLayerParameters<Convolution2dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const Convolution2dDescriptor& desc);
};

template <> struct StringifyLayerParameters<Convolution3dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const Convolution3dDescriptor& desc);
};

template <> struct StringifyLayerParameters<DetectionPostProcessDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const DetectionPostProcessDescriptor& desc);
};

template <> struct StringifyLayerParameters<DepthwiseConvolution2dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const DepthwiseConvolution2dDescriptor& desc);
};

template <> struct StringifyLayerParameters<ElementwiseUnaryDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ElementwiseUnaryDescriptor& desc);
};

template <> struct StringifyLayerParameters<FakeQuantizationDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const FakeQuantizationDescriptor& desc);
};

template <> struct StringifyLayerParameters<FullyConnectedDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const FullyConnectedDescriptor& desc);
};

template <> struct StringifyLayerParameters<L2NormalizationDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const L2NormalizationDescriptor& desc);
};

template <> struct StringifyLayerParameters<LstmDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const LstmDescriptor& desc);
};

template <> struct StringifyLayerParameters<MeanDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const MeanDescriptor& desc);
};

template <> struct StringifyLayerParameters<NormalizationDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const NormalizationDescriptor& desc);
};

template <> struct StringifyLayerParameters<OriginsDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const OriginsDescriptor& desc);
};

template <> struct StringifyLayerParameters<PadDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PadDescriptor& desc);
};
template <> struct StringifyLayerParameters<PermuteDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PermuteDescriptor& desc);
};

template <> struct StringifyLayerParameters<Pooling2dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const Pooling2dDescriptor& desc);
};

template <> struct StringifyLayerParameters<Pooling3dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const Pooling3dDescriptor& desc);
};

template <> struct StringifyLayerParameters<PreCompiledDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PreCompiledDescriptor& desc);
};

template <> struct StringifyLayerParameters<ReduceDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ReduceDescriptor& desc);
};

template <> struct StringifyLayerParameters<ReshapeDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ReshapeDescriptor& desc);
};

template <> struct StringifyLayerParameters<ResizeDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ResizeDescriptor& desc);
};

template <> struct StringifyLayerParameters<SpaceToBatchNdDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const SpaceToBatchNdDescriptor& desc);
};

template <> struct StringifyLayerParameters<SpaceToDepthDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const SpaceToDepthDescriptor& desc);
};

template <> struct StringifyLayerParameters<StackDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const StackDescriptor& desc);
};

template <> struct StringifyLayerParameters<StridedSliceDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const StridedSliceDescriptor& desc);
};

template <> struct StringifyLayerParameters<SoftmaxDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const SoftmaxDescriptor& desc);
};

template <> struct StringifyLayerParameters<TransposeConvolution2dDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const TransposeConvolution2dDescriptor& desc);
};

template <> struct StringifyLayerParameters<TransposeDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const TransposeDescriptor& desc);
};

template <> struct StringifyLayerParameters<ViewsDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ViewsDescriptor& desc);
};

} // namespace armnn