diff options
author | Tracy Narine <tracy.narine@arm.com> | 2023-07-13 16:50:54 +0100 |
---|---|---|
committer | Tracy Narine <tracy.narine@arm.com> | 2023-07-17 14:19:36 +0100 |
commit | bb8d7591a35bd95480b39001f8b7e41a6671f3a6 (patch) | |
tree | abf2871aa1bb86378f423df405164b0d4521db3f /src/armnnSerializer | |
parent | 688268328c69e7d4181cdd31fe4717c80a6d1685 (diff) | |
download | armnn-bb8d7591a35bd95480b39001f8b7e41a6671f3a6.tar.gz |
IVGCVSW-7879 Change REVERSE_V2 from LayerWithParameters with 1 input, to Layer with 2 inputs
* Changing ReverseV2 to use two inputs
* This is required by the backends
* The ReverseV2Descriptor was removed
* Tests updated
* Added a Run<> templatefor inputs with different data types
Signed-off-by: Tracy Narine <tracy.narine@arm.com>
Change-Id: I22f947de829b4b3da6bda3a74f4ffdef4052cc25
Diffstat (limited to 'src/armnnSerializer')
-rw-r--r-- | src/armnnSerializer/ArmnnSchema.fbs | 5 | ||||
-rw-r--r-- | src/armnnSerializer/Serializer.cpp | 14 | ||||
-rw-r--r-- | src/armnnSerializer/Serializer.hpp | 1 | ||||
-rw-r--r-- | src/armnnSerializer/test/SerializerTests.cpp | 11 |
4 files changed, 9 insertions, 22 deletions
diff --git a/src/armnnSerializer/ArmnnSchema.fbs b/src/armnnSerializer/ArmnnSchema.fbs index 995a6013c1..75dd252e68 100644 --- a/src/armnnSerializer/ArmnnSchema.fbs +++ b/src/armnnSerializer/ArmnnSchema.fbs @@ -984,11 +984,6 @@ table ResizeDescriptor { table ReverseV2Layer { base:LayerBase; - descriptor:ReverseV2Descriptor; -} - -table ReverseV2Descriptor { - axis:[int]; } table StackLayer { diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index e10b66f51d..39a42954a9 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -1036,20 +1036,14 @@ void SerializerStrategy::SerializeResizeLayer(const armnn::IConnectableLayer* la } void SerializerStrategy::SerializeReverseV2Layer(const armnn::IConnectableLayer* layer, - const armnn::ReverseV2Descriptor& reverseV2Descriptor, - const char* name) + const char* name) { IgnoreUnused(name); auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_ReverseV2); - auto flatBufferDescriptor = - CreateReverseV2Descriptor(m_flatBufferBuilder, - m_flatBufferBuilder.CreateVector(reverseV2Descriptor.m_Axis)); - auto flatBufferLayer = serializer::CreateReverseV2Layer(m_flatBufferBuilder, - flatBufferBaseLayer, - flatBufferDescriptor); + flatBufferBaseLayer); CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ReverseV2Layer); } @@ -2357,9 +2351,7 @@ void SerializerStrategy::ExecuteStrategy(const armnn::IConnectableLayer* layer, } case armnn::LayerType::ReverseV2: { - const armnn::ReverseV2Descriptor& layerDescriptor = - static_cast<const armnn::ReverseV2Descriptor&>(descriptor); - SerializeReverseV2Layer(layer, layerDescriptor, name); + SerializeReverseV2Layer(layer, name); break; } case armnn::LayerType::Shape: diff --git a/src/armnnSerializer/Serializer.hpp b/src/armnnSerializer/Serializer.hpp index eb724752f2..9e9eca8e26 100644 --- a/src/armnnSerializer/Serializer.hpp +++ b/src/armnnSerializer/Serializer.hpp @@ -290,7 +290,6 @@ private: const char* name = nullptr); void SerializeReverseV2Layer(const armnn::IConnectableLayer* layer, - const armnn::ReverseV2Descriptor& reverseV2Descriptor, const char* name = nullptr); void SerializeSliceLayer(const armnn::IConnectableLayer* layer, diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index 49971d2ecc..163e5c8374 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -2457,26 +2457,27 @@ TEST_CASE("SerializeReverseV2") { const std::string layerName("reverseV2"); const armnn::TensorInfo inputInfo = armnn::TensorInfo({2, 3, 4}, armnn::DataType::Float32); + const armnn::TensorInfo axisInfo = armnn::TensorInfo({3}, armnn::DataType::Signed32, 0.0f, 0, true); const armnn::TensorInfo outputInfo = armnn::TensorInfo({2, 3, 4}, armnn::DataType::Float32); - armnn::ReverseV2Descriptor desc; - desc.m_Axis = {1, 0, 2}; - armnn::INetworkPtr network = armnn::INetwork::Create(); armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); - armnn::IConnectableLayer* const reverseV2Layer = network->AddReverseV2Layer(desc, layerName.c_str()); + armnn::IConnectableLayer* const axisLayer = network->AddInputLayer(1); + armnn::IConnectableLayer* const reverseV2Layer = network->AddReverseV2Layer(layerName.c_str()); armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0); inputLayer->GetOutputSlot(0).Connect(reverseV2Layer->GetInputSlot(0)); + axisLayer->GetOutputSlot(0).Connect(reverseV2Layer->GetInputSlot(1)); reverseV2Layer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); inputLayer->GetOutputSlot(0).SetTensorInfo(inputInfo); + axisLayer->GetOutputSlot(0).SetTensorInfo(axisInfo); reverseV2Layer->GetOutputSlot(0).SetTensorInfo(outputInfo); armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network)); CHECK(deserializedNetwork); - LayerVerifierBaseWithDescriptor<armnn::ReverseV2Descriptor> verifier(layerName, {inputInfo}, {outputInfo}, desc); + LayerVerifierBase verifier(layerName, {inputInfo, axisInfo}, {outputInfo}); deserializedNetwork->ExecuteStrategy(verifier); } |