diff options
author | Aron 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 |
commit | 77bfb5e32faadb1383d48364a6f54adbff84ad80 (patch) | |
tree | 0bf5dfb48cb8d5c248baf716f02b9f481400316e /src/armnnSerializer | |
parent | 5884708e650a80e355398532bc320bbabdbb53f4 (diff) | |
download | armnn-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.cpp | 7 | ||||
-rw-r--r-- | src/armnnSerializer/Serializer.hpp | 6 | ||||
-rw-r--r-- | src/armnnSerializer/test/SerializerTests.cpp | 84 |
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 |