// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "SerializeLayerParameters.hpp" #include #include #include #include namespace armnn { void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const PermuteDescriptor & desc) { std::stringstream ss; ss << "["; bool addComma = false; for (auto it=desc.m_DimMappings.begin(); it!= desc.m_DimMappings.end(); ++it) { if (addComma) { ss << ","; } ss << *it; addComma = true; } ss << "]"; fn("DimMappings",ss.str()); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const ReshapeDescriptor & desc) { std::stringstream ss; ss << desc.m_TargetShape; fn("TargetShape",ss.str()); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const ActivationDescriptor & desc) { fn("Function",GetActivationFunctionAsCString(desc.m_Function)); fn("A",std::to_string(desc.m_A)); fn("B",std::to_string(desc.m_B)); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const Convolution2dDescriptor & desc) { { std::stringstream ss; ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")"; fn("Padding(T,L,B,R)",ss.str()); } { std::stringstream ss; ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")"; fn("Stride(X,Y)", ss.str()); } fn("BiasEnabled",(desc.m_BiasEnabled?"true":"false")); fn("DataLayout",GetDataLayoutName(desc.m_DataLayout)); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const BatchNormalizationDescriptor & desc) { fn("Eps",std::to_string(desc.m_Eps)); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const DepthwiseConvolution2dDescriptor & desc) { { std::stringstream ss; ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")"; fn("Padding(T,L,B,R)",ss.str()); } { std::stringstream ss; ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")"; fn("Stride(X,Y)", ss.str()); } fn("BiasEnabled",(desc.m_BiasEnabled?"true":"false")); fn("DataLayout",std::to_string(int(desc.m_DataLayout))); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const Pooling2dDescriptor & desc) { fn("Type", GetPoolingAlgorithmAsCString(desc.m_PoolType)); { std::stringstream ss; ss << "(" << desc.m_PadTop << "," << desc.m_PadLeft << "," << desc.m_PadBottom << "," << desc.m_PadRight << ")"; fn("Padding(T,L,B,R)",ss.str()); } { std::stringstream ss; ss << "(" << desc.m_PoolWidth << "," << desc.m_PoolHeight << ")"; fn("(Width,Height)",ss.str()); } { std::stringstream ss; ss << "(" << desc.m_StrideX << "," << desc.m_StrideY << ")"; fn("Stride(X,Y)", ss.str()); } fn("OutputShapeRounding", GetOutputShapeRoundingAsCString(desc.m_OutputShapeRounding)); fn("PaddingMethod", GetPaddingMethodAsCString(desc.m_PaddingMethod)); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const SoftmaxDescriptor & desc) { fn("Beta", std::to_string(desc.m_Beta)); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const FullyConnectedDescriptor & desc) { fn("BiasEnabled", (desc.m_BiasEnabled?"true":"false")); fn("TransposeWeightMatrix", (desc.m_TransposeWeightMatrix?"true":"false")); } void StringifyLayerParameters::Serialize(ParameterStringifyFunction & fn, const OriginsDescriptor & desc) { uint32_t numViews = desc.GetNumViews(); uint32_t numDims = desc.GetNumDimensions(); for (uint32_t view=0; view 0) { value << ","; } value << viewData[dim]; } value << "]"; fn(key.str(), value.str()); } } }