aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/SerializeLayerParameters.hpp
blob: 76ca0a52ddd555ee7c7b6964a9fe9d3b1ac121ed (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
//
// 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<PermuteDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PermuteDescriptor& desc);
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

template <> struct StringifyLayerParameters<ResizeBilinearDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const ResizeBilinearDescriptor& 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<LstmDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const LstmDescriptor& desc);
};

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

template <> struct StringifyLayerParameters<PadDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PadDescriptor& 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<PreCompiledDescriptor>
{
    static void Serialize(ParameterStringifyFunction& fn, const PreCompiledDescriptor& desc);
};

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

} // namespace armnn