aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/test/RefOptimizedNetworkTests.cpp
diff options
context:
space:
mode:
authorkeidav01 <keith.davis@arm.com>2018-12-11 16:14:20 +0000
committerKeith Davis Arm <keith.davis@arm.com>2018-12-11 17:11:20 +0000
commit738c2e6a647b886750e1bc3daa6dd615a0244baa (patch)
treeef88c6a5ee1076471bd36b85c30afb36a68bbfc9 /src/backends/reference/test/RefOptimizedNetworkTests.cpp
parent44a7167e0f13dc1d703cd573f57636fde711c618 (diff)
downloadarmnn-738c2e6a647b886750e1bc3daa6dd615a0244baa.tar.gz
IVGCVSW-1434 Add debug mode to Optimizer
* Modified optimizer to support debug mode via DebugLayer Change-Id: Ic8f313778e55540c182cf99876c44a0823be04c6
Diffstat (limited to 'src/backends/reference/test/RefOptimizedNetworkTests.cpp')
-rw-r--r--src/backends/reference/test/RefOptimizedNetworkTests.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/backends/reference/test/RefOptimizedNetworkTests.cpp b/src/backends/reference/test/RefOptimizedNetworkTests.cpp
index 907e7950f5..68617b9d4d 100644
--- a/src/backends/reference/test/RefOptimizedNetworkTests.cpp
+++ b/src/backends/reference/test/RefOptimizedNetworkTests.cpp
@@ -10,6 +10,7 @@
#include <reference/RefWorkloadFactory.hpp>
#include <boost/test/unit_test.hpp>
+#include <test/GraphUtils.hpp>
BOOST_AUTO_TEST_SUITE(RefOptimizedNetwork)
@@ -209,4 +210,50 @@ BOOST_AUTO_TEST_CASE(FP16TurboModeTestOnCpuRef)
BOOST_TEST(ss.str() == expected.str());
}
+BOOST_AUTO_TEST_CASE(DebugTestOnCpuRef)
+{
+ armnn::Network net;
+
+ armnn::ActivationDescriptor activation1Descriptor;
+ activation1Descriptor.m_Function = armnn::ActivationFunction::BoundedReLu;
+ activation1Descriptor.m_A = 1.f;
+ activation1Descriptor.m_B = -1.f;
+
+ // Defines layers.
+ auto input = net.AddInputLayer(0, "InputLayer");
+ auto activation = net.AddActivationLayer(activation1Descriptor, "ActivationLayer");
+ auto output = net.AddOutputLayer(0, "OutputLayer");
+
+ // Connects layers.
+ input->GetOutputSlot(0).Connect(activation->GetInputSlot(0));
+ activation->GetOutputSlot(0).Connect(output->GetInputSlot(0));
+
+ armnn::TensorShape shape({4});
+ armnn::TensorInfo info(shape, armnn::DataType::Float32);
+ input->GetOutputSlot(0).SetTensorInfo(info);
+ activation->GetOutputSlot(0).SetTensorInfo(info);
+
+ armnn::IRuntime::CreationOptions options;
+ armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
+
+ std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef};
+
+ armnn::OptimizerOptions optimizerOptions;
+ optimizerOptions.m_Debug = true;
+
+ armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(net, backends, runtime->GetDeviceSpec(),
+ optimizerOptions);
+
+ const armnn::Graph& graph = static_cast<armnn::OptimizedNetwork*>(optimizedNet.get())->GetGraph();
+ // Tests that all layers are present in the graph.
+ BOOST_TEST(graph.GetNumLayers() == 5);
+
+ // Tests that the vertices exist and have correct names.
+ BOOST_TEST(GraphHasNamedLayer(graph, "InputLayer"));
+ BOOST_TEST(GraphHasNamedLayer(graph, "DebugLayerAfterInputLayer"));
+ BOOST_TEST(GraphHasNamedLayer(graph, "ActivationLayer"));
+ BOOST_TEST(GraphHasNamedLayer(graph, "DebugLayerAfterActivationLayer"));
+ BOOST_TEST(GraphHasNamedLayer(graph, "OutputLayer"));
+}
+
BOOST_AUTO_TEST_SUITE_END()