aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2019-10-16 17:45:38 +0100
committerÁron Virginás-Tar <aron.virginas-tar@arm.com>2019-10-21 08:52:04 +0000
commit77bfb5e32faadb1383d48364a6f54adbff84ad80 (patch)
tree0bf5dfb48cb8d5c248baf716f02b9f481400316e /src/armnnSerializer
parent5884708e650a80e355398532bc320bbabdbb53f4 (diff)
downloadarmnn-77bfb5e32faadb1383d48364a6f54adbff84ad80.tar.gz
IVGCVSW-3993 Add frontend and reference workload for ComparisonLayer
* Added frontend for ComparisonLayer * Added RefComparisonWorkload * Deprecated and removed Equal and Greater layers and workloads * Updated tests to ensure backward compatibility Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Id50c880be1b567c531efff919c0c366d0a71cbe9
Diffstat (limited to 'src/armnnSerializer')
-rw-r--r--src/armnnSerializer/Serializer.cpp7
-rw-r--r--src/armnnSerializer/Serializer.hpp6
-rw-r--r--src/armnnSerializer/test/SerializerTests.cpp84
3 files changed, 13 insertions, 84 deletions
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 11f833c5b7..5c9855f87e 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -240,6 +240,13 @@ void SerializerVisitor::VisitBatchNormalizationLayer(const armnn::IConnectableLa
CreateAnyLayer(fbBatchNormalizationLayer.o, serializer::Layer::Layer_BatchNormalizationLayer);
}
+void SerializerVisitor::VisitComparisonLayer(const armnn::IConnectableLayer* layer,
+ const armnn::ComparisonDescriptor& descriptor,
+ const char* name)
+{
+ throw armnn::UnimplementedException("SerializerVisitor::VisitComparisonLayer() is not implemented");
+}
+
// Build FlatBuffer for Constant Layer
void SerializerVisitor::VisitConstantLayer(const armnn::IConnectableLayer* layer,
const armnn::ConstTensor& input,
diff --git a/src/armnnSerializer/Serializer.hpp b/src/armnnSerializer/Serializer.hpp
index 8c13245aeb..79dc17ba01 100644
--- a/src/armnnSerializer/Serializer.hpp
+++ b/src/armnnSerializer/Serializer.hpp
@@ -68,6 +68,10 @@ public:
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;
@@ -103,6 +107,7 @@ public:
void VisitDivisionLayer(const armnn::IConnectableLayer* layer,
const char* name = nullptr) override;
+ ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead")
void VisitEqualLayer(const armnn::IConnectableLayer* layer,
const char* name = nullptr) override;
@@ -118,6 +123,7 @@ public:
void VisitGatherLayer(const armnn::IConnectableLayer* layer,
const char* name = nullptr) override;
+ ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead")
void VisitGreaterLayer(const armnn::IConnectableLayer* layer,
const char* name = nullptr) override;
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp
index a70c891849..58f56f484f 100644
--- a/src/armnnSerializer/test/SerializerTests.cpp
+++ b/src/armnnSerializer/test/SerializerTests.cpp
@@ -1009,48 +1009,6 @@ BOOST_AUTO_TEST_CASE(SerializeDivision)
deserializedNetwork->Accept(verifier);
}
-BOOST_AUTO_TEST_CASE(SerializeEqual)
-{
- class EqualLayerVerifier : public LayerVerifierBase
- {
- public:
- EqualLayerVerifier(const std::string& layerName,
- const std::vector<armnn::TensorInfo>& inputInfos,
- const std::vector<armnn::TensorInfo>& outputInfos)
- : LayerVerifierBase(layerName, inputInfos, outputInfos) {}
-
- void VisitEqualLayer(const armnn::IConnectableLayer* layer, const char* name) override
- {
- VerifyNameAndConnections(layer, name);
- }
- };
-
- const std::string layerName("equal");
- const armnn::TensorInfo inputTensorInfo1 = armnn::TensorInfo({2, 1, 2, 4}, armnn::DataType::Float32);
- const armnn::TensorInfo inputTensorInfo2 = armnn::TensorInfo({2, 1, 2, 4}, armnn::DataType::Float32);
- const armnn::TensorInfo outputTensorInfo = armnn::TensorInfo({2, 1, 2, 4}, armnn::DataType::Boolean);
-
- armnn::INetworkPtr network = armnn::INetwork::Create();
- armnn::IConnectableLayer* const inputLayer1 = network->AddInputLayer(0);
- armnn::IConnectableLayer* const inputLayer2 = network->AddInputLayer(1);
- armnn::IConnectableLayer* const equalLayer = network->AddEqualLayer(layerName.c_str());
- armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0);
-
- inputLayer1->GetOutputSlot(0).Connect(equalLayer->GetInputSlot(0));
- inputLayer2->GetOutputSlot(0).Connect(equalLayer->GetInputSlot(1));
- equalLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
-
- inputLayer1->GetOutputSlot(0).SetTensorInfo(inputTensorInfo1);
- inputLayer2->GetOutputSlot(0).SetTensorInfo(inputTensorInfo2);
- equalLayer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
-
- armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network));
- BOOST_CHECK(deserializedNetwork);
-
- EqualLayerVerifier verifier(layerName, {inputTensorInfo1, inputTensorInfo2}, {outputTensorInfo});
- deserializedNetwork->Accept(verifier);
-}
-
BOOST_AUTO_TEST_CASE(SerializeFloor)
{
class FloorLayerVerifier : public LayerVerifierBase
@@ -1225,48 +1183,6 @@ BOOST_AUTO_TEST_CASE(SerializeGather)
deserializedNetwork->Accept(verifier);
}
-BOOST_AUTO_TEST_CASE(SerializeGreater)
-{
- class GreaterLayerVerifier : public LayerVerifierBase
- {
- public:
- GreaterLayerVerifier(const std::string& layerName,
- const std::vector<armnn::TensorInfo>& inputInfos,
- const std::vector<armnn::TensorInfo>& outputInfos)
- : LayerVerifierBase(layerName, inputInfos, outputInfos) {}
-
- void VisitGreaterLayer(const armnn::IConnectableLayer* layer, const char* name) override
- {
- VerifyNameAndConnections(layer, name);
- }
- };
-
- const std::string layerName("greater");
- const armnn::TensorInfo inputTensorInfo1({ 1, 2, 2, 2 }, armnn::DataType::Float32);
- const armnn::TensorInfo inputTensorInfo2({ 1, 2, 2, 2 }, armnn::DataType::Float32);
- const armnn::TensorInfo outputTensorInfo({ 1, 2, 2, 2 }, armnn::DataType::Boolean);
-
- armnn::INetworkPtr network = armnn::INetwork::Create();
- armnn::IConnectableLayer* const inputLayer1 = network->AddInputLayer(0);
- armnn::IConnectableLayer* const inputLayer2 = network->AddInputLayer(1);
- armnn::IConnectableLayer* const greaterLayer = network->AddGreaterLayer(layerName.c_str());
- armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0);
-
- inputLayer1->GetOutputSlot(0).Connect(greaterLayer->GetInputSlot(0));
- inputLayer2->GetOutputSlot(0).Connect(greaterLayer->GetInputSlot(1));
- greaterLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
-
- inputLayer1->GetOutputSlot(0).SetTensorInfo(inputTensorInfo1);
- inputLayer2->GetOutputSlot(0).SetTensorInfo(inputTensorInfo2);
- greaterLayer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
-
- armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network));
- BOOST_CHECK(deserializedNetwork);
-
- GreaterLayerVerifier verifier(layerName, {inputTensorInfo1, inputTensorInfo2}, {outputTensorInfo});
- deserializedNetwork->Accept(verifier);
-}
-
BOOST_AUTO_TEST_CASE(SerializeInstanceNormalization)
{
class InstanceNormalizationLayerVerifier : public LayerVerifierBase