aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer
diff options
context:
space:
mode:
authorTracy Narine <tracy.narine@arm.com>2023-07-13 16:50:54 +0100
committerTracy Narine <tracy.narine@arm.com>2023-07-17 14:19:36 +0100
commitbb8d7591a35bd95480b39001f8b7e41a6671f3a6 (patch)
treeabf2871aa1bb86378f423df405164b0d4521db3f /src/armnnSerializer
parent688268328c69e7d4181cdd31fe4717c80a6d1685 (diff)
downloadarmnn-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.fbs5
-rw-r--r--src/armnnSerializer/Serializer.cpp14
-rw-r--r--src/armnnSerializer/Serializer.hpp1
-rw-r--r--src/armnnSerializer/test/SerializerTests.cpp11
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);
}