From b454c5c65efb238c130b042ace390b2bc7f0bf75 Mon Sep 17 00:00:00 2001 From: Finn Williams Date: Tue, 9 Feb 2021 15:56:23 +0000 Subject: IVGCVSW-4893 Refactor ILayerVisitor using unified interface strategy. Signed-off-by: Jan Eilers Signed-off-by: Finn Williams Signed-off-by: Francis Murtagh Change-Id: Id7bc8255a8e3f9e5aac65d510bec8a559bf37246 --- src/armnnSerializer/Serializer.hpp | 481 ++++++++++++++++++------------------- 1 file changed, 238 insertions(+), 243 deletions(-) (limited to 'src/armnnSerializer/Serializer.hpp') diff --git a/src/armnnSerializer/Serializer.hpp b/src/armnnSerializer/Serializer.hpp index 10971fddc8..7226006cea 100644 --- a/src/armnnSerializer/Serializer.hpp +++ b/src/armnnSerializer/Serializer.hpp @@ -5,6 +5,7 @@ #pragma once #include +#include #include #include @@ -18,11 +19,17 @@ namespace armnnSerializer { -class SerializerVisitor : public armnn::ILayerVisitor +class SerializerStrategy : public armnn::IStrategy { public: - SerializerVisitor() : m_layerId(0) {} - ~SerializerVisitor() {} + void ExecuteStrategy(const armnn::IConnectableLayer* layer, + const armnn::BaseDescriptor& descriptor, + const std::vector& constants, + const char* name, + const armnn::LayerBindingId id) override; + + SerializerStrategy() : m_layerId(0) {} + ~SerializerStrategy() {} flatbuffers::FlatBufferBuilder& GetFlatBufferBuilder() { @@ -46,309 +53,297 @@ public: flatbuffers::Offset GetVersionTable(); +private: + /// Creates the Input Slots and Output Slots and LayerBase for the layer. + flatbuffers::Offset CreateLayerBase( + const armnn::IConnectableLayer* layer, + const armnnSerializer::LayerType layerType); - ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead") - void VisitAbsLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; - - void VisitActivationLayer(const armnn::IConnectableLayer* layer, - const armnn::ActivationDescriptor& descriptor, - const char* name = nullptr) override; - - void VisitAdditionLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; - - void VisitArgMinMaxLayer(const armnn::IConnectableLayer* layer, - const armnn::ArgMinMaxDescriptor& argMinMaxDescriptor, - const char* name = nullptr) override; - - void VisitBatchToSpaceNdLayer(const armnn::IConnectableLayer* layer, - const armnn::BatchToSpaceNdDescriptor& descriptor, - const char* name = nullptr) override; - - void VisitBatchNormalizationLayer(const armnn::IConnectableLayer* layer, - const armnn::BatchNormalizationDescriptor& BatchNormalizationDescriptor, - const armnn::ConstTensor& mean, - const armnn::ConstTensor& variance, - const armnn::ConstTensor& beta, - const armnn::ConstTensor& gamma, - const char* name = nullptr) override; - - void VisitComparisonLayer(const armnn::IConnectableLayer* layer, - const armnn::ComparisonDescriptor& descriptor, - const char* name = nullptr) override; - - void VisitConcatLayer(const armnn::IConnectableLayer* layer, - const armnn::ConcatDescriptor& concatDescriptor, - const char* name = nullptr) override; - - void VisitConstantLayer(const armnn::IConnectableLayer* layer, - const armnn::ConstTensor& input, - const char* = nullptr) override; - - void VisitConvolution2dLayer(const armnn::IConnectableLayer* layer, - const armnn::Convolution2dDescriptor& descriptor, - const armnn::ConstTensor& weights, - const armnn::Optional& biases, - const char* = nullptr) override; - - void VisitDepthToSpaceLayer(const armnn::IConnectableLayer* layer, - const armnn::DepthToSpaceDescriptor& descriptor, - const char* name = nullptr) override; - - void VisitDepthwiseConvolution2dLayer(const armnn::IConnectableLayer* layer, - const armnn::DepthwiseConvolution2dDescriptor& descriptor, - const armnn::ConstTensor& weights, - const armnn::Optional& biases, - const char* name = nullptr) override; - - void VisitDequantizeLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; - - void VisitDetectionPostProcessLayer(const armnn::IConnectableLayer* layer, - const armnn::DetectionPostProcessDescriptor& descriptor, - const armnn::ConstTensor& anchors, - const char* name = nullptr) override; - - void VisitDivisionLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; - - void VisitElementwiseUnaryLayer(const armnn::IConnectableLayer* layer, - const armnn::ElementwiseUnaryDescriptor& descriptor, - const char* name = nullptr) override; + /// Creates the serializer AnyLayer for the layer and adds it to m_serializedLayers. + void CreateAnyLayer(const flatbuffers::Offset& layer, const armnnSerializer::Layer serializerLayer); - ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead") - void VisitEqualLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + /// Creates the serializer ConstTensor for the armnn ConstTensor. + flatbuffers::Offset CreateConstTensorInfo( + const armnn::ConstTensor& constTensor); - void VisitFillLayer(const armnn::IConnectableLayer* layer, - const armnn::FillDescriptor& fillDescriptor, - const char* name = nullptr) override; + /// Creates the serializer TensorInfo for the armnn TensorInfo. + flatbuffers::Offset CreateTensorInfo(const armnn::TensorInfo& tensorInfo); - void VisitFloorLayer(const armnn::IConnectableLayer *layer, - const char *name = nullptr) override; + template + flatbuffers::Offset> CreateDataVector(const void* memory, unsigned int size); - void VisitFullyConnectedLayer(const armnn::IConnectableLayer* layer, - const armnn::FullyConnectedDescriptor& fullyConnectedDescriptor, - const armnn::ConstTensor& weights, - const armnn::Optional& biases, - const char* name = nullptr) override; + ///Function which maps Guid to an index + uint32_t GetSerializedId(armnn::LayerGuid guid); - ARMNN_DEPRECATED_MSG("Use VisitGatherLayer with descriptor instead") - void VisitGatherLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + /// Creates the serializer InputSlots for the layer. + std::vector> CreateInputSlots( + const armnn::IConnectableLayer* layer); - void VisitGatherLayer(const armnn::IConnectableLayer* layer, - const armnn::GatherDescriptor& gatherDescriptor, - const char* name = nullptr) override; + /// Creates the serializer OutputSlots for the layer. + std::vector> CreateOutputSlots( + const armnn::IConnectableLayer* layer); - ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead") - void VisitGreaterLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + /// FlatBufferBuilder to create our layers' FlatBuffers. + flatbuffers::FlatBufferBuilder m_flatBufferBuilder; - void VisitInputLayer(const armnn::IConnectableLayer* layer, - armnn::LayerBindingId id, - const char* name = nullptr) override; + /// AnyLayers required by the SerializedGraph. + std::vector> m_serializedLayers; - void VisitInstanceNormalizationLayer(const armnn::IConnectableLayer* layer, - const armnn::InstanceNormalizationDescriptor& instanceNormalizationDescriptor, - const char* name = nullptr) override; + /// Vector of the binding ids of all Input Layers required by the SerializedGraph. + std::vector m_inputIds; - void VisitL2NormalizationLayer(const armnn::IConnectableLayer* layer, - const armnn::L2NormalizationDescriptor& l2NormalizationDescriptor, - const char* name = nullptr) override; + /// Vector of the binding ids of all Output Layers required by the SerializedGraph. + std::vector m_outputIds; - void VisitLogicalBinaryLayer(const armnn::IConnectableLayer* layer, - const armnn::LogicalBinaryDescriptor& descriptor, - const char* name = nullptr) override; + /// Mapped Guids of all Layers to match our index. + std::unordered_map m_guidMap; - void VisitLogSoftmaxLayer(const armnn::IConnectableLayer* layer, - const armnn::LogSoftmaxDescriptor& logSoftmaxDescriptor, - const char* name = nullptr) override; + /// layer within our FlatBuffer index. + uint32_t m_layerId; + +private: + ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead") + void SerializeAbsLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitLstmLayer(const armnn::IConnectableLayer* layer, - const armnn::LstmDescriptor& descriptor, - const armnn::LstmInputParams& params, - const char* name = nullptr) override; + void SerializeActivationLayer(const armnn::IConnectableLayer* layer, + const armnn::ActivationDescriptor& descriptor, + const char* name = nullptr); - void VisitMeanLayer(const armnn::IConnectableLayer* layer, - const armnn::MeanDescriptor& descriptor, - const char* name) override; + void SerializeAdditionLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitMinimumLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeArgMinMaxLayer(const armnn::IConnectableLayer* layer, + const armnn::ArgMinMaxDescriptor& argMinMaxDescriptor, + const char* name = nullptr); - void VisitMaximumLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeBatchToSpaceNdLayer(const armnn::IConnectableLayer* layer, + const armnn::BatchToSpaceNdDescriptor& descriptor, + const char* name = nullptr); - void VisitMergeLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeBatchNormalizationLayer(const armnn::IConnectableLayer* layer, + const armnn::BatchNormalizationDescriptor& BatchNormalizationDescriptor, + const std::vector& constants, + const char* name = nullptr); - ARMNN_DEPRECATED_MSG("Use VisitConcatLayer instead") - void VisitMergerLayer(const armnn::IConnectableLayer* layer, - const armnn::MergerDescriptor& mergerDescriptor, - const char* name = nullptr) override; + void SerializeComparisonLayer(const armnn::IConnectableLayer* layer, + const armnn::ComparisonDescriptor& descriptor, + const char* name = nullptr); - void VisitMultiplicationLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeConcatLayer(const armnn::IConnectableLayer* layer, + const armnn::ConcatDescriptor& concatDescriptor, + const char* name = nullptr); - void VisitOutputLayer(const armnn::IConnectableLayer* layer, - armnn::LayerBindingId id, - const char* name = nullptr) override; + void SerializeConstantLayer(const armnn::IConnectableLayer* layer, + const std::vector& contants, + const char* name = nullptr); - void VisitPadLayer(const armnn::IConnectableLayer* layer, - const armnn::PadDescriptor& PadDescriptor, - const char* name = nullptr) override; + void SerializeConvolution2dLayer(const armnn::IConnectableLayer* layer, + const armnn::Convolution2dDescriptor& descriptor, + const std::vector& contants, + const char* name = nullptr); - void VisitPermuteLayer(const armnn::IConnectableLayer* layer, - const armnn::PermuteDescriptor& PermuteDescriptor, - const char* name = nullptr) override; + void SerializeDepthToSpaceLayer(const armnn::IConnectableLayer* layer, + const armnn::DepthToSpaceDescriptor& descriptor, + const char* name = nullptr); - void VisitPooling2dLayer(const armnn::IConnectableLayer* layer, - const armnn::Pooling2dDescriptor& pooling2dDescriptor, - const char* name = nullptr) override; + void SerializeDepthwiseConvolution2dLayer(const armnn::IConnectableLayer* layer, + const armnn::DepthwiseConvolution2dDescriptor& descriptor, + const std::vector& constants, + const char* name = nullptr); - void VisitPreluLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeDequantizeLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitQuantizeLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeDetectionPostProcessLayer(const armnn::IConnectableLayer* layer, + const armnn::DetectionPostProcessDescriptor& descriptor, + const std::vector& constants, + const char* name = nullptr); - void VisitQLstmLayer(const armnn::IConnectableLayer* layer, - const armnn::QLstmDescriptor& descriptor, - const armnn::LstmInputParams& params, - const char* name = nullptr) override; + void SerializeDivisionLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitQuantizedLstmLayer(const armnn::IConnectableLayer* layer, - const armnn::QuantizedLstmInputParams& params, - const char* name = nullptr) override; + void SerializeElementwiseUnaryLayer(const armnn::IConnectableLayer* layer, + const armnn::ElementwiseUnaryDescriptor& descriptor, + const char* name = nullptr); - void VisitRankLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead") + void SerializeEqualLayer(const armnn::IConnectableLayer* layer, const char* name); - void VisitReduceLayer(const armnn::IConnectableLayer* layer, - const armnn::ReduceDescriptor& reduceDescriptor, - const char* name = nullptr) override; + void SerializeFillLayer(const armnn::IConnectableLayer* layer, + const armnn::FillDescriptor& fillDescriptor, + const char* name = nullptr); - void VisitReshapeLayer(const armnn::IConnectableLayer* layer, - const armnn::ReshapeDescriptor& reshapeDescriptor, - const char* name = nullptr) override; + void SerializeFloorLayer(const armnn::IConnectableLayer *layer, + const char *name = nullptr); - void VisitResizeLayer(const armnn::IConnectableLayer* layer, - const armnn::ResizeDescriptor& resizeDescriptor, - const char* name = nullptr) override; + void SerializeFullyConnectedLayer(const armnn::IConnectableLayer* layer, + const armnn::FullyConnectedDescriptor& fullyConnectedDescriptor, + const std::vector& constants, + const char* name = nullptr); - ARMNN_DEPRECATED_MSG("Use VisitResizeLayer instead") - void VisitResizeBilinearLayer(const armnn::IConnectableLayer* layer, - const armnn::ResizeBilinearDescriptor& resizeDescriptor, - const char* name = nullptr) override; + void SerializeGatherLayer(const armnn::IConnectableLayer* layer, + const armnn::GatherDescriptor& gatherDescriptor, + const char* name = nullptr); - ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead") - void VisitRsqrtLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead") + void SerializeGreaterLayer(const armnn::IConnectableLayer* layer, const char* name = nullptr); + + void SerializeInputLayer(const armnn::IConnectableLayer* layer, + armnn::LayerBindingId id, + const char* name = nullptr); - void VisitSliceLayer(const armnn::IConnectableLayer* layer, - const armnn::SliceDescriptor& sliceDescriptor, - const char* name = nullptr) override; + void SerializeInstanceNormalizationLayer(const armnn::IConnectableLayer* layer, + const armnn::InstanceNormalizationDescriptor& instanceNormalizationDescriptor, + const char* name = nullptr); - void VisitSoftmaxLayer(const armnn::IConnectableLayer* layer, - const armnn::SoftmaxDescriptor& softmaxDescriptor, - const char* name = nullptr) override; + void SerializeL2NormalizationLayer(const armnn::IConnectableLayer* layer, + const armnn::L2NormalizationDescriptor& l2NormalizationDescriptor, + const char* name = nullptr); - void VisitSpaceToBatchNdLayer(const armnn::IConnectableLayer* layer, - const armnn::SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor, - const char* name = nullptr) override; + void SerializeLogicalBinaryLayer(const armnn::IConnectableLayer* layer, + const armnn::LogicalBinaryDescriptor& descriptor, + const char* name = nullptr); - void VisitSpaceToDepthLayer(const armnn::IConnectableLayer* layer, - const armnn::SpaceToDepthDescriptor& spaceToDepthDescriptor, - const char* name = nullptr) override; + void SerializeLogSoftmaxLayer(const armnn::IConnectableLayer* layer, + const armnn::LogSoftmaxDescriptor& logSoftmaxDescriptor, + const char* name = nullptr); - void VisitNormalizationLayer(const armnn::IConnectableLayer* layer, - const armnn::NormalizationDescriptor& normalizationDescriptor, - const char* name = nullptr) override; + void SerializeLstmLayer(const armnn::IConnectableLayer* layer, + const armnn::LstmDescriptor& descriptor, + const std::vector& constants, + const char* name = nullptr); - void VisitSplitterLayer(const armnn::IConnectableLayer* layer, - const armnn::ViewsDescriptor& viewsDescriptor, - const char* name = nullptr) override; + void SerializeMeanLayer(const armnn::IConnectableLayer* layer, + const armnn::MeanDescriptor& descriptor, + const char* name); - void VisitStandInLayer(const armnn::IConnectableLayer* layer, - const armnn::StandInDescriptor& standInDescriptor, - const char* name = nullptr) override; + void SerializeMinimumLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitStackLayer(const armnn::IConnectableLayer* layer, - const armnn::StackDescriptor& stackDescriptor, - const char* name = nullptr) override; + void SerializeMaximumLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitStridedSliceLayer(const armnn::IConnectableLayer* layer, - const armnn::StridedSliceDescriptor& stridedSliceDescriptor, - const char* name = nullptr) override; + void SerializeMergeLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitSubtractionLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + ARMNN_DEPRECATED_MSG("Use VisitConcatLayer instead") + void SerializeMergerLayer(const armnn::IConnectableLayer* layer, + const armnn::MergerDescriptor& mergerDescriptor, + const char* name = nullptr); - void VisitSwitchLayer(const armnn::IConnectableLayer* layer, - const char* name = nullptr) override; + void SerializeMultiplicationLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - void VisitTransposeConvolution2dLayer(const armnn::IConnectableLayer* layer, - const armnn::TransposeConvolution2dDescriptor& descriptor, - const armnn::ConstTensor& weights, - const armnn::Optional& biases, - const char* = nullptr) override; + void SerializeOutputLayer(const armnn::IConnectableLayer* layer, + armnn::LayerBindingId id, + const char* name = nullptr); - void VisitTransposeLayer(const armnn::IConnectableLayer* layer, - const armnn::TransposeDescriptor& descriptor, - const char* name = nullptr) override; + void SerializePadLayer(const armnn::IConnectableLayer* layer, + const armnn::PadDescriptor& PadDescriptor, + const char* name = nullptr); -private: + void SerializePermuteLayer(const armnn::IConnectableLayer* layer, + const armnn::PermuteDescriptor& PermuteDescriptor, + const char* name = nullptr); - /// Creates the Input Slots and Output Slots and LayerBase for the layer. - flatbuffers::Offset CreateLayerBase( - const armnn::IConnectableLayer* layer, - const armnnSerializer::LayerType layerType); + void SerializePooling2dLayer(const armnn::IConnectableLayer* layer, + const armnn::Pooling2dDescriptor& pooling2dDescriptor, + const char* name = nullptr); - /// Creates the serializer AnyLayer for the layer and adds it to m_serializedLayers. - void CreateAnyLayer(const flatbuffers::Offset& layer, const armnnSerializer::Layer serializerLayer); + void SerializePreluLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - /// Creates the serializer ConstTensor for the armnn ConstTensor. - flatbuffers::Offset CreateConstTensorInfo( - const armnn::ConstTensor& constTensor); + void SerializeQuantizeLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - /// Creates the serializer TensorInfo for the armnn TensorInfo. - flatbuffers::Offset CreateTensorInfo(const armnn::TensorInfo& tensorInfo); + void SerializeQLstmLayer(const armnn::IConnectableLayer* layer, + const armnn::QLstmDescriptor& descriptor, + const std::vector& constants, + const char* name = nullptr); - template - flatbuffers::Offset> CreateDataVector(const void* memory, unsigned int size); + void SerializeQuantizedLstmLayer(const armnn::IConnectableLayer* layer, + const std::vector& constants, + const char* name = nullptr); - ///Function which maps Guid to an index - uint32_t GetSerializedId(armnn::LayerGuid guid); + void SerializeRankLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - /// Creates the serializer InputSlots for the layer. - std::vector> CreateInputSlots( - const armnn::IConnectableLayer* layer); + void SerializeReduceLayer(const armnn::IConnectableLayer* layer, + const armnn::ReduceDescriptor& reduceDescriptor, + const char* name = nullptr); - /// Creates the serializer OutputSlots for the layer. - std::vector> CreateOutputSlots( - const armnn::IConnectableLayer* layer); + void SerializeReshapeLayer(const armnn::IConnectableLayer* layer, + const armnn::ReshapeDescriptor& reshapeDescriptor, + const char* name = nullptr); - /// FlatBufferBuilder to create our layers' FlatBuffers. - flatbuffers::FlatBufferBuilder m_flatBufferBuilder; + void SerializeResizeLayer(const armnn::IConnectableLayer* layer, + const armnn::ResizeDescriptor& resizeDescriptor, + const char* name = nullptr); - /// AnyLayers required by the SerializedGraph. - std::vector> m_serializedLayers; + ARMNN_DEPRECATED_MSG("Use VisitResizeLayer instead") + void SerializeResizeBilinearLayer(const armnn::IConnectableLayer* layer, + const armnn::ResizeBilinearDescriptor& resizeDescriptor, + const char* name = nullptr); - /// Vector of the binding ids of all Input Layers required by the SerializedGraph. - std::vector m_inputIds; + ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead") + void SerializeRsqrtLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); - /// Vector of the binding ids of all Output Layers required by the SerializedGraph. - std::vector m_outputIds; + void SerializeSliceLayer(const armnn::IConnectableLayer* layer, + const armnn::SliceDescriptor& sliceDescriptor, + const char* name = nullptr); - /// Mapped Guids of all Layers to match our index. - std::unordered_map m_guidMap; + void SerializeSoftmaxLayer(const armnn::IConnectableLayer* layer, + const armnn::SoftmaxDescriptor& softmaxDescriptor, + const char* name = nullptr); - /// layer within our FlatBuffer index. - uint32_t m_layerId; + void SerializeSpaceToBatchNdLayer(const armnn::IConnectableLayer* layer, + const armnn::SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor, + const char* name = nullptr); + + void SerializeSpaceToDepthLayer(const armnn::IConnectableLayer* layer, + const armnn::SpaceToDepthDescriptor& spaceToDepthDescriptor, + const char* name = nullptr); + + void SerializeNormalizationLayer(const armnn::IConnectableLayer* layer, + const armnn::NormalizationDescriptor& normalizationDescriptor, + const char* name = nullptr); + + void SerializeSplitterLayer(const armnn::IConnectableLayer* layer, + const armnn::ViewsDescriptor& viewsDescriptor, + const char* name = nullptr); + + void SerializeStandInLayer(const armnn::IConnectableLayer* layer, + const armnn::StandInDescriptor& standInDescriptor, + const char* name = nullptr); + + void SerializeStackLayer(const armnn::IConnectableLayer* layer, + const armnn::StackDescriptor& stackDescriptor, + const char* name = nullptr); + + void SerializeStridedSliceLayer(const armnn::IConnectableLayer* layer, + const armnn::StridedSliceDescriptor& stridedSliceDescriptor, + const char* name = nullptr); + + void SerializeSubtractionLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); + + void SerializeSwitchLayer(const armnn::IConnectableLayer* layer, + const char* name = nullptr); + + void SerializeTransposeConvolution2dLayer(const armnn::IConnectableLayer* layer, + const armnn::TransposeConvolution2dDescriptor& descriptor, + const std::vector& constants, + const char* = nullptr); + + void SerializeTransposeLayer(const armnn::IConnectableLayer* layer, + const armnn::TransposeDescriptor& descriptor, + const char* name = nullptr); }; + + class ISerializer::SerializerImpl { public: @@ -367,7 +362,7 @@ public: private: /// Visitor to contruct serialized network - SerializerVisitor m_SerializerVisitor; + SerializerStrategy m_SerializerStrategy; }; } //namespace armnnSerializer -- cgit v1.2.1