aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichele Di Giorgio <michele.digiorgio@arm.com>2020-06-01 12:07:50 +0100
committerMichele Di Giorgio <michele.digiorgio@arm.com>2020-06-01 21:03:49 +0000
commit1710133b05a9ed1fcc1cc68624c2ce0e09eae495 (patch)
tree9ab738a59e23b3782613602cedfe29d31cc595a2 /tests
parentc72dabc9ad572493c12c1d9052ec201732b9201e (diff)
downloadComputeLibrary-1710133b05a9ed1fcc1cc68624c2ce0e09eae495.tar.gz
COMPMID-2395: Add support for U8 datatype to CropResize on NEON
Change-Id: Ia356b3545e01ccc98056951f3a20ed2712240dac Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3283 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/validation/NEON/CropResize.cpp27
-rw-r--r--tests/validation/reference/CropResize.cpp4
2 files changed, 21 insertions, 10 deletions
diff --git a/tests/validation/NEON/CropResize.cpp b/tests/validation/NEON/CropResize.cpp
index 1feed3d9d2..c6a1046b7e 100644
--- a/tests/validation/NEON/CropResize.cpp
+++ b/tests/validation/NEON/CropResize.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 ARM Limited.
+ * Copyright (c) 2019-2020 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -52,7 +52,6 @@ using NECropResizeFixture = CropResizeFixture<Tensor, Accessor, NECropResize, T>
// clang-format off
DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
framework::dataset::make("InputInfo", { TensorInfo(TensorShape(15U, 30U, 40U, 10U), 1, DataType::S32),
- TensorInfo(TensorShape(15U, 30U, 40U, 10U), 1, DataType::U8), // Invalid input data type.
TensorInfo(TensorShape(15U, 30U, 40U, 10U), 1, DataType::S32), // Invalid box_ind shape.
TensorInfo(TensorShape(15U, 30U, 40U, 10U), 1, DataType::S32), // Invalid output shape.
TensorInfo(TensorShape(15U, 30U, 40U, 10U), 1, DataType::S32), // Invalid output data type.
@@ -64,11 +63,9 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
TensorInfo(TensorShape(4, 20), 1, DataType::F32),
TensorInfo(TensorShape(4, 20), 1, DataType::F32),
TensorInfo(TensorShape(4, 20), 1, DataType::F32),
- TensorInfo(TensorShape(4, 20), 1, DataType::F32),
TensorInfo(TensorShape(3, 20), 1, DataType::F32),
})),
framework::dataset::make("BoxIndInfo",{ TensorInfo(TensorShape(20), 1, DataType::S32),
- TensorInfo(TensorShape(20), 1, DataType::S32),
TensorInfo(TensorShape(10), 1, DataType::S32),
TensorInfo(TensorShape(20), 1, DataType::S32),
TensorInfo(TensorShape(20), 1, DataType::S32),
@@ -77,13 +74,12 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(
})),
framework::dataset::make("OutputInfo",{ TensorInfo(TensorShape(15U, 5, 5, 20U), 1, DataType::F32),
TensorInfo(TensorShape(15U, 5, 5, 20U), 1, DataType::F32),
- TensorInfo(TensorShape(15U, 5, 5, 20U), 1, DataType::F32),
TensorInfo(TensorShape(15U, 5, 5, 10U), 1, DataType::F32),
TensorInfo(TensorShape(15U, 5, 5, 20U), 1, DataType::S32),
TensorInfo(TensorShape(5U, 5, 5, 20U), 1, DataType::F32),
TensorInfo(TensorShape(15U, 5, 5, 20U), 1, DataType::F32),
})),
- framework::dataset::make("Expected", { true, false, false, false, false, false, false})),
+ framework::dataset::make("Expected", { true, false, false, false, false, false})),
input, boxes, box_ind, output, expected)
{
ARM_COMPUTE_EXPECT(bool(NECropResize::validate(&input.clone()->set_data_layout(DataLayout::NHWC).set_is_resizable(false),
@@ -100,7 +96,7 @@ TEST_SUITE(Float)
TEST_SUITE(F16)
FIXTURE_DATA_TEST_CASE(RunSmall,
NECropResizeFixture<half>,
- framework::DatasetMode::PRECOMMIT,
+ framework::DatasetMode::ALL,
combine(datasets::SmallCropResizeDataset(),
combine(framework::dataset::make("IsOutOfBounds", { true, false }),
framework::dataset::make("DataType", DataType::F16))))
@@ -114,7 +110,7 @@ TEST_SUITE_END() // F16
TEST_SUITE(F32)
FIXTURE_DATA_TEST_CASE(RunSmall,
NECropResizeFixture<float>,
- framework::DatasetMode::PRECOMMIT,
+ framework::DatasetMode::ALL,
combine(datasets::SmallCropResizeDataset(),
combine(framework::dataset::make("IsOutOfBounds", { true, false }),
framework::dataset::make("DataType", DataType::F32))))
@@ -125,10 +121,23 @@ FIXTURE_DATA_TEST_CASE(RunSmall,
TEST_SUITE_END() // F32
TEST_SUITE_END() // Float
+TEST_SUITE(U8)
+FIXTURE_DATA_TEST_CASE(RunSmall,
+ NECropResizeFixture<uint8_t>,
+ framework::DatasetMode::ALL,
+ combine(datasets::SmallCropResizeDataset(),
+ combine(framework::dataset::make("IsOutOfBounds", { true, false }),
+ framework::dataset::make("DataType", DataType::U8))))
+{
+ // Validate output
+ validate(Accessor(_target), _reference, tolerance_fp32, 0.01);
+}
+TEST_SUITE_END() // U8
+
TEST_SUITE(U16)
FIXTURE_DATA_TEST_CASE(RunSmall,
NECropResizeFixture<uint16_t>,
- framework::DatasetMode::PRECOMMIT,
+ framework::DatasetMode::ALL,
combine(datasets::SmallCropResizeDataset(),
combine(framework::dataset::make("IsOutOfBounds", { true, false }),
framework::dataset::make("DataType", DataType::U16))))
diff --git a/tests/validation/reference/CropResize.cpp b/tests/validation/reference/CropResize.cpp
index 68ee4557fb..f1b49f6673 100644
--- a/tests/validation/reference/CropResize.cpp
+++ b/tests/validation/reference/CropResize.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 ARM Limited.
+ * Copyright (c) 2019-2020 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -193,6 +193,8 @@ template SimpleTensor<float> crop_and_resize(const SimpleTensor<int32_t> &src, c
Coordinates2D crop_size, InterpolationPolicy method, float extrapolation_value);
template SimpleTensor<float> crop_and_resize(const SimpleTensor<half> &src, const SimpleTensor<float> &boxes, SimpleTensor<int32_t> box_ind,
Coordinates2D crop_size, InterpolationPolicy method, float extrapolation_value);
+template SimpleTensor<float> crop_and_resize(const SimpleTensor<uint8_t> &src, const SimpleTensor<float> &boxes, SimpleTensor<int32_t> box_ind,
+ Coordinates2D crop_size, InterpolationPolicy method, float extrapolation_value);
} // namespace reference
} // namespace validation
} // namespace test