aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer/Serializer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnSerializer/Serializer.hpp')
-rw-r--r--src/armnnSerializer/Serializer.hpp481
1 files changed, 238 insertions, 243 deletions
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 <armnn/ILayerVisitor.hpp>
+#include <armnn/IStrategy.hpp>
#include <armnn/LayerVisitorBase.hpp>
#include <armnnSerializer/ISerializer.hpp>
@@ -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<armnn::ConstTensor>& constants,
+ const char* name,
+ const armnn::LayerBindingId id) override;
+
+ SerializerStrategy() : m_layerId(0) {}
+ ~SerializerStrategy() {}
flatbuffers::FlatBufferBuilder& GetFlatBufferBuilder()
{
@@ -46,309 +53,297 @@ public:
flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> GetVersionTable();
+private:
+ /// Creates the Input Slots and Output Slots and LayerBase for the layer.
+ flatbuffers::Offset<armnnSerializer::LayerBase> 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<void>& 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<armnnSerializer::ConstTensor> 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<TensorInfo> CreateTensorInfo(const armnn::TensorInfo& tensorInfo);
- void VisitFloorLayer(const armnn::IConnectableLayer *layer,
- const char *name = nullptr) override;
+ template <typename T>
+ flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(const void* memory, unsigned int size);
- void VisitFullyConnectedLayer(const armnn::IConnectableLayer* layer,
- const armnn::FullyConnectedDescriptor& fullyConnectedDescriptor,
- const armnn::ConstTensor& weights,
- const armnn::Optional<armnn::ConstTensor>& 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<flatbuffers::Offset<armnnSerializer::InputSlot>> 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<flatbuffers::Offset<armnnSerializer::OutputSlot>> 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<flatbuffers::Offset<armnnSerializer::AnyLayer>> 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<int> 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<int> 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<armnn::LayerGuid, uint32_t > 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnn::ConstTensor>& 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<armnnSerializer::LayerBase> 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<void>& 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<armnnSerializer::ConstTensor> 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<TensorInfo> CreateTensorInfo(const armnn::TensorInfo& tensorInfo);
+ void SerializeQLstmLayer(const armnn::IConnectableLayer* layer,
+ const armnn::QLstmDescriptor& descriptor,
+ const std::vector<armnn::ConstTensor>& constants,
+ const char* name = nullptr);
- template <typename T>
- flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(const void* memory, unsigned int size);
+ void SerializeQuantizedLstmLayer(const armnn::IConnectableLayer* layer,
+ const std::vector<armnn::ConstTensor>& 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<flatbuffers::Offset<armnnSerializer::InputSlot>> 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<flatbuffers::Offset<armnnSerializer::OutputSlot>> 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<flatbuffers::Offset<armnnSerializer::AnyLayer>> 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<int> 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<int> 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<armnn::LayerGuid, uint32_t > 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<armnn::ConstTensor>& 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