diff options
author | Xusong Wang <xusongw@google.com> | 2020-03-09 11:51:50 -0700 |
---|---|---|
committer | Xusong Wang <xusongw@google.com> | 2020-03-09 16:09:28 -0700 |
commit | 8735e145a9f429a1b3ed0db73ec42103f5c51569 (patch) | |
tree | 7febb96ede4ac370646b32c7b68b654aefe6693d /nn/runtime/test/fuzzing | |
parent | 1120efcc605bdf7b50c14c89683591400b5801e8 (diff) | |
download | ml-8735e145a9f429a1b3ed0db73ec42103f5c51569.tar.gz |
Add new flags of resize operations to RGG.
NNAPI 1.3 introduces two optional flags to RESIZE_BILINEAR and
RESIZE_NEAREST_NEIGHBOR:
- align_corners
- half_pixel_center
This CLs add these new flags to RGG.
Bug: 141704517
Test: NNT_static_fuzzing
Change-Id: Ic80084cafb6bb521e6448a4cbce03970353123b6
Diffstat (limited to 'nn/runtime/test/fuzzing')
-rw-r--r-- | nn/runtime/test/fuzzing/operation_signatures/Resize.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/nn/runtime/test/fuzzing/operation_signatures/Resize.cpp b/nn/runtime/test/fuzzing/operation_signatures/Resize.cpp index 7d4d5f588..cf0dc22a4 100644 --- a/nn/runtime/test/fuzzing/operation_signatures/Resize.cpp +++ b/nn/runtime/test/fuzzing/operation_signatures/Resize.cpp @@ -59,6 +59,15 @@ static void resizeOpConstructor(TestOperandType, uint32_t rank, RandomOperation* op->inputs[0]->dimensions[3]}; } setSameQuantization(op->outputs[0], op->inputs[0]); + + // If "half_pixel_center" is set to true, then "align_corners" must be false. + if (op->inputs.size() == 6) { + auto& alignCornerFlag = op->inputs[4]; + const auto& halfPixelCenterFlag = op->inputs[5]; + if (halfPixelCenterFlag->value<bool8>()) { + alignCornerFlag->setScalarValue<bool8>(false); + } + } } #define DEFINE_RESIZE_WITHOUT_LAYOUT_SIGNATURE(op, ver, ...) \ @@ -106,6 +115,43 @@ DEFINE_RESIZE_OP_SIGNATURE(RESIZE_BILINEAR, V1_3, TestOperandType::TENSOR_QUANT8 DEFINE_RESIZE_OP_SIGNATURE(RESIZE_NEAREST_NEIGHBOR, V1_3, TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED); +// Resize operations with optional flags of "align_corners" and "half_pixel_center". +#define DEFINE_RESIZE_OP_WITH_OPTIONAL_FLAGS_SIGNATURE(op, ver, ...) \ + DEFINE_OPERATION_SIGNATURE(op##_shape_with_optional_flags_##ver){ \ + .opType = TestOperationType::op, \ + .supportedDataTypes = {__VA_ARGS__}, \ + .supportedRanks = {4}, \ + .version = TestHalVersion::ver, \ + .inputs = {INPUT_DEFAULT, RANDOM_INT_FREE, RANDOM_INT_FREE, \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true), \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true), \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true)}, \ + .outputs = {OUTPUT_DEFAULT}, \ + .constructor = resizeOpConstructor}; \ + DEFINE_OPERATION_SIGNATURE(op##_scale_with_optional_flags){ \ + .opType = TestOperationType::op, \ + .supportedDataTypes = {__VA_ARGS__}, \ + .supportedRanks = {4}, \ + .version = TestHalVersion::ver, \ + .inputs = {INPUT_DEFAULT, PARAMETER_FLOAT_RANGE(0.2, 4.0), \ + PARAMETER_FLOAT_RANGE(0.2, 4.0), \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true), \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true), \ + PARAMETER_CHOICE(TestOperandType::BOOL, false, true)}, \ + .outputs = {OUTPUT_DEFAULT}, \ + .constructor = resizeOpConstructor}; + +DEFINE_RESIZE_OP_WITH_OPTIONAL_FLAGS_SIGNATURE(RESIZE_BILINEAR, V1_3, + TestOperandType::TENSOR_FLOAT32, + TestOperandType::TENSOR_QUANT8_ASYMM, + TestOperandType::TENSOR_FLOAT16, + TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED); +DEFINE_RESIZE_OP_WITH_OPTIONAL_FLAGS_SIGNATURE(RESIZE_NEAREST_NEIGHBOR, V1_3, + TestOperandType::TENSOR_FLOAT32, + TestOperandType::TENSOR_QUANT8_ASYMM, + TestOperandType::TENSOR_FLOAT16, + TestOperandType::TENSOR_QUANT8_ASYMM_SIGNED); + } // namespace fuzzing_test } // namespace nn } // namespace android |