2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
5 #include "SerializeLayerParameters.hpp"
6 #include <armnn/TypesUtils.hpp>
15 StringifyLayerParameters<PermuteDescriptor>::Serialize(ParameterStringifyFunction & fn,
16 const PermuteDescriptor & desc)
20 bool addComma = false;
21 for (auto it=desc.m_DimMappings.begin(); it!= desc.m_DimMappings.end(); ++it)
32 fn("DimMappings",ss.str());
36 StringifyLayerParameters<ReshapeDescriptor>::Serialize(ParameterStringifyFunction & fn,
37 const ReshapeDescriptor & desc)
40 ss << desc.m_TargetShape;
41 fn("TargetShape",ss.str());
45 StringifyLayerParameters<ActivationDescriptor>::Serialize(ParameterStringifyFunction & fn,
46 const ActivationDescriptor & desc)
48 fn("Function",GetActivationFunctionAsCString(desc.m_Function));
49 fn("A",std::to_string(desc.m_A));
50 fn("B",std::to_string(desc.m_B));
54 StringifyLayerParameters<Convolution2dDescriptor>::Serialize(ParameterStringifyFunction & fn,
55 const Convolution2dDescriptor & desc)
59 ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft
60 << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")";
61 fn("Padding(T,L,B,R)",ss.str());
66 ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")";
67 fn("Stride(X,Y)", ss.str());
70 fn("BiasEnabled",(desc.m_BiasEnabled?"true":"false"));
71 fn("DataLayout",GetDataLayoutName(desc.m_DataLayout));
75 StringifyLayerParameters<BatchNormalizationDescriptor>::Serialize(ParameterStringifyFunction & fn,
76 const BatchNormalizationDescriptor & desc)
78 fn("Eps",std::to_string(desc.m_Eps));
82 StringifyLayerParameters<DepthwiseConvolution2dDescriptor>::Serialize(ParameterStringifyFunction & fn,
83 const DepthwiseConvolution2dDescriptor & desc)
87 ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft
88 << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")";
89 fn("Padding(T,L,B,R)",ss.str());
94 ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")";
95 fn("Stride(X,Y)", ss.str());
98 fn("BiasEnabled",(desc.m_BiasEnabled?"true":"false"));
99 fn("DataLayout",std::to_string(int(desc.m_DataLayout)));
103 StringifyLayerParameters<Pooling2dDescriptor>::Serialize(ParameterStringifyFunction & fn,
104 const Pooling2dDescriptor & desc)
106 fn("Type", GetPoolingAlgorithmAsCString(desc.m_PoolType));
108 std::stringstream ss;
109 ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft
110 << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")";
111 fn("Padding(T,L,B,R)",ss.str());
115 std::stringstream ss;
116 ss << "(" << desc.m_PoolWidth << "," << desc.m_PoolHeight << ")";
117 fn("(Width,Height)",ss.str());
121 std::stringstream ss;
122 ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")";
123 fn("Stride(X,Y)", ss.str());
126 fn("OutputShapeRounding", GetOutputShapeRoundingAsCString(desc.m_OutputShapeRounding));
127 fn("PaddingMethod", GetPaddingMethodAsCString(desc.m_PaddingMethod));
131 StringifyLayerParameters<SoftmaxDescriptor>::Serialize(ParameterStringifyFunction & fn,
132 const SoftmaxDescriptor & desc)
134 fn("Beta", std::to_string(desc.m_Beta));
138 StringifyLayerParameters<FullyConnectedDescriptor>::Serialize(ParameterStringifyFunction & fn,
139 const FullyConnectedDescriptor & desc)
141 fn("BiasEnabled", (desc.m_BiasEnabled?"true":"false"));
142 fn("TransposeWeightMatrix", (desc.m_TransposeWeightMatrix?"true":"false"));
146 StringifyLayerParameters<OriginsDescriptor>::Serialize(ParameterStringifyFunction & fn,
147 const OriginsDescriptor & desc)
149 uint32_t numViews = desc.GetNumViews();
150 uint32_t numDims = desc.GetNumDimensions();
152 for (uint32_t view=0; view<numViews; ++view)
154 std::stringstream key;
155 key << "MergeTo#" << view;
156 std::stringstream value;
158 auto viewData = desc.GetViewOrigin(view);
160 for (uint32_t dim=0; dim<numDims; ++dim)
166 value << viewData[dim];
169 fn(key.str(), value.str());