diff options
Diffstat (limited to 'tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8')
3 files changed, 128 insertions, 0 deletions
diff --git a/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/depthwise_conv2d_quant8.mod.py b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/depthwise_conv2d_quant8.mod.py new file mode 100644 index 000000000..051780877 --- /dev/null +++ b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/depthwise_conv2d_quant8.mod.py @@ -0,0 +1,43 @@ +# Copyright 2018, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +model = Model() +i1 = Input("op1", "TENSOR_QUANT8_ASYMM", "{1, 2, 2, 2}, 0.5f, 0") +f1 = Input("op2", "TENSOR_QUANT8_ASYMM", "{1, 2, 2, 2}, 0.5f, 0") +b1 = Input("op3", "TENSOR_INT32", "{2}, 0.25f, 0") +pad0 = Int32Scalar("pad0", 0) +act = Int32Scalar("act", 0) +stride = Int32Scalar("stride", 1) +cm = Int32Scalar("channelMultiplier", 1) +output = Output("op4", "TENSOR_QUANT8_ASYMM", "{1,1,1,2}, 1.f, 0") + +model = model.Operation("DEPTHWISE_CONV_2D", + i1, f1, b1, + pad0, pad0, pad0, pad0, + stride, stride, + cm, act).To(output) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [4, 16, 4, 32, 4, 64, 4, 128], + f1: + [2, 4, 2, 0, 2, 2, 2, 0], + b1: + [0, 0]} +# (i1 (depthconv) f1) +output0 = {output: # output 0 + [8, 48]} + +# Instantiate an example +Example((input0, output0)) diff --git a/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stderr.txt.expect b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stderr.txt.expect new file mode 100644 index 000000000..7ac2240b2 --- /dev/null +++ b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stderr.txt.expect @@ -0,0 +1,3 @@ +Output CTS model: - +Output example:- +Output CTS test: - diff --git a/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stdout.txt.expect b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stdout.txt.expect new file mode 100644 index 000000000..9c54412de --- /dev/null +++ b/tests/nnapi/nnapi_test_generator/android-q-beta/tests/P_backward_compatibility_quant8/stdout.txt.expect @@ -0,0 +1,82 @@ +// clang-format off +// Generated file (from: depthwise_conv2d_quant8.mod.py). Do not edit +// clang-format off +// Generated file (from: depthwise_conv2d_quant8.mod.py). Do not edit +// clang-format off +// Generated file (from: depthwise_conv2d_quant8.mod.py). Do not edit +#include "../../TestGenerated.h" + +namespace depthwise_conv2d_quant8 { +// Generated depthwise_conv2d_quant8 test +#include "-" +// Generated model constructor +#include "-" +} // namespace depthwise_conv2d_quant8 + +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0); + OperandType type1(Type::TENSOR_INT32, {2}, 0.25f, 0); + OperandType type2(Type::INT32, {}); + OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 2}, 1.0f, 0); + // Phase 1, operands + auto op1 = model->addOperand(&type0); + auto op2 = model->addOperand(&type0); + auto op3 = model->addOperand(&type1); + auto pad0 = model->addOperand(&type2); + auto stride = model->addOperand(&type2); + auto channelMultiplier = model->addOperand(&type2); + auto act = model->addOperand(&type2); + auto op4 = model->addOperand(&type3); + // Phase 2, operations + static int32_t pad0_init[] = {0}; + model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1); + static int32_t stride_init[] = {1}; + model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1); + static int32_t channelMultiplier_init[] = {1}; + model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1); + static int32_t act_init[] = {0}; + model->setOperandValue(act, act_init, sizeof(int32_t) * 1); + model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4}); + // Phase 3, inputs and outputs + model->identifyInputsAndOutputs( + {op1, op2, op3}, + {op4}); + assert(model->isValid()); +} + +bool is_ignored(int i) { + static std::set<int> ignore = {}; + return ignore.find(i) != ignore.end(); +} + +std::vector<MixedTypedExample> examples = { +// Begin of an example +{ +//Input(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {}, + // int -> INT32 map + {{2, {0, 0}}}, + // int -> QUANT8_ASYMM map + {{0, {4, 16, 4, 32, 4, 64, 4, 128}}, {1, {2, 4, 2, 0, 2, 2, 2, 0}}} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {{0, {8, 48}}} +} +}, // End of an example +}; + +TEST_F(GeneratedTests, depthwise_conv2d_quant8) { + execute(depthwise_conv2d_quant8::CreateModel, + depthwise_conv2d_quant8::is_ignored, + depthwise_conv2d_quant8::examples); +} + +#include "../generated/tests/depthwise_conv2d_quant8.mod.py.cpp" |