From 67ded90aa28272e793dd56a7036d561e48a2c5e1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Shubham=20Gupta/SNAP=20/SRI-Bangalore/Engineer/=EC=82=BC?= =?utf8?q?=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Tue, 4 Dec 2018 06:31:11 +0530 Subject: [PATCH] Add gtest to test Neg op for 3D and 4D Tensors (#3796) This patch will add gtest to test Neg op for 3D/4D tensors. Signed-off-by: shubham --- .../generated/all_generated_tests.cpp | 28 ++++++++++++++++++++++ .../generated/examples/neg_ex_3D_float.example.cpp | 22 +++++++++++++++++ .../generated/examples/neg_ex_4D_float.example.cpp | 22 +++++++++++++++++ .../generated/models/neg_ex_3D_float.model.cpp | 19 +++++++++++++++ .../generated/models/neg_ex_4D_float.model.cpp | 19 +++++++++++++++ ...me_run_android_nn_test.skip.armv7l-linux.neurun | 3 +-- .../runtime_run_android_nn_test.skip.armv7l-tizen | 3 +-- .../runtime_run_android_nn_test.skip.x86_64-linux | 3 +-- .../specs/Ex/neg_ex_3D_float.mod.py | 25 +++++++++++++++++++ .../specs/Ex/neg_ex_4D_float.mod.py | 25 +++++++++++++++++++ 10 files changed, 163 insertions(+), 6 deletions(-) create mode 100644 runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp create mode 100644 runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py create mode 100644 runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py diff --git a/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp index 7e9afa9..8a94e80 100644 --- a/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp +++ b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp @@ -3459,6 +3459,34 @@ TEST_F(GeneratedTests, neg_ex_2D_float) { neg_ex_2D_float::examples); } +namespace neg_ex_3D_float { +std::vector examples = { +// Generated neg_ex_3D_float test +#include "generated/examples/neg_ex_3D_float.example.cpp" +}; +// Generated model constructor +#include "generated/models/neg_ex_3D_float.model.cpp" +} // namespace neg_ex_3D_float +TEST_F(GeneratedTests, neg_ex_3D_float) { + execute(neg_ex_3D_float::CreateModel, + neg_ex_3D_float::is_ignored, + neg_ex_3D_float::examples); +} + +namespace neg_ex_4D_float { +std::vector examples = { +// Generated neg_ex_4D_float test +#include "generated/examples/neg_ex_4D_float.example.cpp" +}; +// Generated model constructor +#include "generated/models/neg_ex_4D_float.model.cpp" +} // namespace neg_ex_4D_float +TEST_F(GeneratedTests, neg_ex_4D_float) { + execute(neg_ex_4D_float::CreateModel, + neg_ex_4D_float::is_ignored, + neg_ex_4D_float::examples); +} + namespace notequal_ex_float { std::vector examples = { // Generated notequal_ex_float test diff --git a/runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp new file mode 100644 index 0000000..411d1af --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp @@ -0,0 +1,22 @@ +// Generated file (from: neg_ex_3D_float.mod.py). Do not edit +// Begin of an example +{ +//Input(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {{0, {3.123456789123457f, 4.123456789123456f, 5.123456789123456f, 6.123456789123456f, 7.123456789123456f, 8.123456789123457f, 9.123456789123457f, 1.1234567891234568f, 2.123456789123457f, 18.123456789123455f, 19.123456789123455f, 11.123456789123457f, 40.12345678912346f, 42.12345678912346f, 4.123456789123456f, 12.123456789123457f, 22.123456789123455f, 32.12345678912346f, 62.12345678912346f, 52.12345678912346f, 92.12345678912345f, 59.12345678912346f, 69.12345678912345f, 312.12345678912345f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {{0, {-3.123456789123457f, -4.123456789123456f, -5.123456789123456f, -6.123456789123456f, -7.123456789123456f, -8.123456789123457f, -9.123456789123457f, -1.1234567891234568f, -2.123456789123457f, -18.123456789123455f, -19.123456789123455f, -11.123456789123457f, -40.12345678912346f, -42.12345678912346f, -4.123456789123456f, -12.123456789123457f, -22.123456789123455f, -32.12345678912346f, -62.12345678912346f, -52.12345678912346f, -92.12345678912345f, -59.12345678912346f, -69.12345678912345f, -312.12345678912345f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +} +}, // End of an example diff --git a/runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp new file mode 100644 index 0000000..fcdf729 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp @@ -0,0 +1,22 @@ +// Generated file (from: neg_ex_4D_float.mod.py). Do not edit +// Begin of an example +{ +//Input(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {{0, {3.123456789123457f, 4.123456789123456f, 5.123456789123456f, 6.123456789123456f, 7.123456789123456f, 8.123456789123457f, 9.123456789123457f, 1.1234567891234568f, 2.123456789123457f, 18.123456789123455f, 19.123456789123455f, 11.123456789123457f, 40.12345678912346f, 42.12345678912346f, 4.123456789123456f, 12.123456789123457f, 22.123456789123455f, 32.12345678912346f, 62.12345678912346f, 52.12345678912346f, 92.12345678912345f, 59.12345678912346f, 69.12345678912345f, 312.12345678912345f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {{0, {-3.123456789123457f, -4.123456789123456f, -5.123456789123456f, -6.123456789123456f, -7.123456789123456f, -8.123456789123457f, -9.123456789123457f, -1.1234567891234568f, -2.123456789123457f, -18.123456789123455f, -19.123456789123455f, -11.123456789123457f, -40.12345678912346f, -42.12345678912346f, -4.123456789123456f, -12.123456789123457f, -22.123456789123455f, -32.12345678912346f, -62.12345678912346f, -52.12345678912346f, -92.12345678912345f, -59.12345678912346f, -69.12345678912345f, -312.12345678912345f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +} +}, // End of an example diff --git a/runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp new file mode 100644 index 0000000..99d80c0 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp @@ -0,0 +1,19 @@ +// Generated file (from: neg_ex_3D_float.mod.py). Do not edit +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_FLOAT32, {2,3,4}); + // Phase 1, operands + auto op1 = model->addOperand(&type0); + auto op2 = model->addOperand(&type0); + // Phase 2, operations + model->addOperationEx(ANEURALNETWORKS_NEG_EX, {op1}, {op2}); + // Phase 3, inputs and outputs + model->identifyInputsAndOutputs( + {op1}, + {op2}); + assert(model->isValid()); +} + +bool is_ignored(int i) { + static std::set ignore = {}; + return ignore.find(i) != ignore.end(); +} diff --git a/runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp new file mode 100644 index 0000000..56e885d --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp @@ -0,0 +1,19 @@ +// Generated file (from: neg_ex_4D_float.mod.py). Do not edit +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_FLOAT32, {2,3,2,2}); + // Phase 1, operands + auto op1 = model->addOperand(&type0); + auto op2 = model->addOperand(&type0); + // Phase 2, operations + model->addOperationEx(ANEURALNETWORKS_NEG_EX, {op1}, {op2}); + // Phase 3, inputs and outputs + model->identifyInputsAndOutputs( + {op1}, + {op2}); + assert(model->isValid()); +} + +bool is_ignored(int i) { + static std::set ignore = {}; + return ignore.find(i) != ignore.end(); +} diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun index bf60118..534de1f 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun @@ -77,8 +77,7 @@ GeneratedTests.max_pool_quant8_2 GeneratedTests.max_pool_quant8_3 GeneratedTests.mobilenet* GeneratedTests.mul* -GeneratedTests.neg_ex_1D_float -GeneratedTests.neg_ex_2D_float +GeneratedTests.neg* GeneratedTests.notequal* GeneratedTests.reduce_min* GeneratedTests.relu1* diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen index d309e12..4596409 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen @@ -47,8 +47,7 @@ GeneratedTests.mean_float_2 GeneratedTests.mean_quant8_1 GeneratedTests.mean_quant8_2 GeneratedTests.mobilenet_quantized -GeneratedTests.neg_ex_1D_float -GeneratedTests.neg_ex_2D_float +GeneratedTests.neg* GeneratedTests.notequal* GeneratedTests.pad GeneratedTests.pad_float_1 diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux index 090c1cc..dd18702 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux @@ -38,8 +38,7 @@ GeneratedTests.lstm3_state GeneratedTests.lstm GeneratedTests.lstm_state2 GeneratedTests.lstm_state -GeneratedTests.neg_ex_1D_float -GeneratedTests.neg_ex_2D_float +GeneratedTests.neg* GeneratedTests.notequal* GeneratedTests.reduce_min_ex* GeneratedTests.relu1_float_1 diff --git a/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py new file mode 100644 index 0000000..1f57c49 --- /dev/null +++ b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py @@ -0,0 +1,25 @@ +# model +model = Model() +i1 = Input("op1", "TENSOR_FLOAT32", "{2,3,4}") +i2 = Output("op2", "TENSOR_FLOAT32", "{2,3,4}") +model = model.Operation("NEG_EX", i1).To(i2) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [3.123456789123456789, 4.123456789123456789, 5.123456789123456789, 6.123456789123456789, + 7.123456789123456789, 8.123456789123456789, 9.123456789123456789, 1.123456789123456789, + 2.123456789123456789, 18.123456789123456789, 19.123456789123456789, 11.123456789123456789, + 40.123456789123456789, 42.123456789123456789, 4.123456789123456789, 12.123456789123456789, + 22.123456789123456789, 32.123456789123456789, 62.123456789123456789, 52.123456789123456789, + 92.123456789123456789, 59.123456789123456789, 69.123456789123456789, 312.123456789123456789]} + +output0 = {i2: # output 0 + [-3.123456789123456789, -4.123456789123456789, -5.123456789123456789, -6.123456789123456789, + -7.123456789123456789, -8.123456789123456789, -9.123456789123456789, -1.123456789123456789, + -2.123456789123456789, -18.123456789123456789, -19.123456789123456789, -11.123456789123456789, + -40.123456789123456789, -42.123456789123456789, -4.123456789123456789, -12.123456789123456789, + -22.123456789123456789, -32.123456789123456789, -62.123456789123456789, -52.123456789123456789, + -92.123456789123456789, -59.123456789123456789, -69.123456789123456789, -312.123456789123456789]} + +# Instantiate an example +Example((input0, output0)) diff --git a/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py new file mode 100644 index 0000000..4d1b10d --- /dev/null +++ b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py @@ -0,0 +1,25 @@ +# model +model = Model() +i1 = Input("op1", "TENSOR_FLOAT32", "{2,3,2,2}") +i2 = Output("op2", "TENSOR_FLOAT32", "{2,3,2,2}") +model = model.Operation("NEG_EX", i1).To(i2) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [3.123456789123456789, 4.123456789123456789, 5.123456789123456789, 6.123456789123456789, + 7.123456789123456789, 8.123456789123456789, 9.123456789123456789, 1.123456789123456789, + 2.123456789123456789, 18.123456789123456789, 19.123456789123456789, 11.123456789123456789, + 40.123456789123456789, 42.123456789123456789, 4.123456789123456789, 12.123456789123456789, + 22.123456789123456789, 32.123456789123456789, 62.123456789123456789, 52.123456789123456789, + 92.123456789123456789, 59.123456789123456789, 69.123456789123456789, 312.123456789123456789]} + +output0 = {i2: # output 0 + [-3.123456789123456789, -4.123456789123456789, -5.123456789123456789, -6.123456789123456789, + -7.123456789123456789, -8.123456789123456789, -9.123456789123456789, -1.123456789123456789, + -2.123456789123456789, -18.123456789123456789, -19.123456789123456789, -11.123456789123456789, + -40.123456789123456789, -42.123456789123456789, -4.123456789123456789, -12.123456789123456789, + -22.123456789123456789, -32.123456789123456789, -62.123456789123456789, -52.123456789123456789, + -92.123456789123456789, -59.123456789123456789, -69.123456789123456789, -312.123456789123456789]} + +# Instantiate an example +Example((input0, output0)) -- 2.7.4