blob: a47ce5a9705cee2c91ab9105f7de2abd6ab9f4c5 [file] [log] [blame]
surmeh01bceff2f2018-03-29 16:29:27 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
surmeh01bceff2f2018-03-29 16:29:27 +01004//
5#pragma once
6
7#include <string>
8#include <functional>
9#include <armnn/Descriptors.hpp>
10
11namespace armnn
12{
13
14using ParameterStringifyFunction = std::function<void(const std::string & name, const std::string & value)>;
15
16///
17/// StringifyLayerParameters allows serializing layer parameters to string.
18/// The default implementation is a no-op because this operation is considered
19/// non-vital for ArmNN and thus we allow adding new layer parameters without
20/// supplying the corresponding stringify functionality.
21///
22template <typename LayerParameter>
23struct StringifyLayerParameters
24{
25 static void Serialize(ParameterStringifyFunction &, const LayerParameter &) {}
26};
27
28template <> struct StringifyLayerParameters<PermuteDescriptor>
29{
30 static void Serialize(ParameterStringifyFunction & fn, const PermuteDescriptor & desc);
31};
32
33template <> struct StringifyLayerParameters<ReshapeDescriptor>
34{
35 static void Serialize(ParameterStringifyFunction & fn, const ReshapeDescriptor & desc);
36};
37
38template <> struct StringifyLayerParameters<ActivationDescriptor>
39{
40 static void Serialize(ParameterStringifyFunction & fn, const ActivationDescriptor & desc);
41};
42
43template <> struct StringifyLayerParameters<Convolution2dDescriptor>
44{
45 static void Serialize(ParameterStringifyFunction & fn, const Convolution2dDescriptor & desc);
46};
47
48template <> struct StringifyLayerParameters<BatchNormalizationDescriptor>
49{
50 static void Serialize(ParameterStringifyFunction & fn, const BatchNormalizationDescriptor & desc);
51};
52
53template <> struct StringifyLayerParameters<DepthwiseConvolution2dDescriptor>
54{
55 static void Serialize(ParameterStringifyFunction & fn, const DepthwiseConvolution2dDescriptor & desc);
56};
57
58template <> struct StringifyLayerParameters<Pooling2dDescriptor>
59{
60 static void Serialize(ParameterStringifyFunction & fn, const Pooling2dDescriptor & desc);
61};
62
63template <> struct StringifyLayerParameters<SoftmaxDescriptor>
64{
65 static void Serialize(ParameterStringifyFunction & fn, const SoftmaxDescriptor & desc);
66};
67
68template <> struct StringifyLayerParameters<FullyConnectedDescriptor>
69{
70 static void Serialize(ParameterStringifyFunction & fn, const FullyConnectedDescriptor & desc);
71};
72
surmeh013537c2c2018-05-18 16:31:43 +010073template <> struct StringifyLayerParameters<OriginsDescriptor>
74{
75 static void Serialize(ParameterStringifyFunction & fn, const OriginsDescriptor & desc);
76};
77
surmeh01bceff2f2018-03-29 16:29:27 +010078}