// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include namespace armnn { using ParameterStringifyFunction = std::function; /// /// 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 struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction&, const LayerParameter&) {} }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ActivationDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const BatchNormalizationDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const BatchToSpaceNdDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ChannelShuffleDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ComparisonDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const Convolution2dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const Convolution3dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const DetectionPostProcessDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const DepthwiseConvolution2dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ElementwiseUnaryDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const FakeQuantizationDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const FullyConnectedDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const L2NormalizationDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const LstmDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const MeanDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const NormalizationDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const OriginsDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const PadDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const PermuteDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const Pooling2dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const Pooling3dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const PreCompiledDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ReduceDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ReshapeDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ResizeDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const SpaceToBatchNdDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const SpaceToDepthDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const StackDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const StridedSliceDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const SoftmaxDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const TransposeConvolution2dDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const TransposeDescriptor& desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction& fn, const ViewsDescriptor& desc); }; } // namespace armnn