summaryrefslogtreecommitdiff
path: root/nn/runtime/test/fuzzing
diff options
context:
space:
mode:
authorXusong Wang <xusongw@google.com>2020-03-09 11:51:50 -0700
committerXusong Wang <xusongw@google.com>2020-03-09 16:09:28 -0700
commit8735e145a9f429a1b3ed0db73ec42103f5c51569 (patch)
tree7febb96ede4ac370646b32c7b68b654aefe6693d /nn/runtime/test/fuzzing
parent1120efcc605bdf7b50c14c89683591400b5801e8 (diff)
downloadml-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.cpp46
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