// // 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 PermuteDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const ReshapeDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const ActivationDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const Convolution2dDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const BatchNormalizationDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const DepthwiseConvolution2dDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const Pooling2dDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const SoftmaxDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const FullyConnectedDescriptor & desc); }; template <> struct StringifyLayerParameters { static void Serialize(ParameterStringifyFunction & fn, const OriginsDescriptor & desc); }; }