COMPMID-2920: NEInstanceNormalization fails on NHWC validations
Improved TensorInfo to accept DataLayout, useful to test the validate functions
Removing nighlies tests
Moving all vpadds instructions in add.h
Change-Id: I96290a6f26272eae865dba48bbc3c6aee4bc0214
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2287
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
diff --git a/tests/validation/NEON/InstanceNormalizationLayer.cpp b/tests/validation/NEON/InstanceNormalizationLayer.cpp
index b4be6ba..d2a80f2 100644
--- a/tests/validation/NEON/InstanceNormalizationLayer.cpp
+++ b/tests/validation/NEON/InstanceNormalizationLayer.cpp
@@ -45,7 +45,7 @@
/** Tolerance for float operations */
AbsoluteTolerance<float> tolerance_f32(0.0015f);
#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
-AbsoluteTolerance<float> tolerance_f16(0.2f);
+AbsoluteTolerance<float> tolerance_f16(0.5f);
#endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
} // namespace
@@ -59,6 +59,8 @@
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32), // Mismatching shape input/output
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 2, DataType::F32), // Number of Input channels != 1
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::S16), // DataType != F32
+ TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32, DataLayout::NCHW),
+ TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32, DataLayout::NHWC),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
@@ -68,12 +70,14 @@
TensorInfo(TensorShape(256U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::S16),
+ TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32, DataLayout::NCHW),
+ TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32, DataLayout::NHWC),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32),
TensorInfo(TensorShape(128U, 64U, 32U, 4U), 1, DataType::F32)
})),
- framework::dataset::make("Expected", { false, false, false, false, true, true, true, true })),
+ framework::dataset::make("Expected", { false, false, false, false, true, true, true, true, true, true })),
input_info, output_info, expected)
{
bool is_valid = bool(NEInstanceNormalizationLayer::validate(&input_info.clone()->set_is_resizable(false),
@@ -98,15 +102,6 @@
validate(Accessor(_target), _reference, tolerance_f32);
}
-FIXTURE_DATA_TEST_CASE(RunLarge, NEInstanceNormalizationLayerFixture<float>, framework::DatasetMode::NIGHTLY,
- combine(combine(combine(datasets::Large4DShapes(),
- framework::dataset::make("DataType", DataType::F32)),
- framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC })),
- framework::dataset::make("InPlace", { false, true })))
-{
- // Validate output
- validate(Accessor(_target), _reference, tolerance_f32);
-}
TEST_SUITE_END() // FP32
#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
@@ -120,16 +115,6 @@
// Validate output
validate(Accessor(_target), _reference, tolerance_f16);
}
-
-FIXTURE_DATA_TEST_CASE(RunLarge, NEInstanceNormalizationLayerFixture<half>, framework::DatasetMode::NIGHTLY,
- combine(combine(combine(datasets::LargeShapes(),
- framework::dataset::make("DataType", DataType::F16)),
- framework::dataset::make("DataLayout", { DataLayout::NCHW, DataLayout::NHWC })),
- framework::dataset::make("InPlace", { false, true })))
-{
- // Validate output
- validate(Accessor(_target), _reference, tolerance_f16);
-}
TEST_SUITE_END() // FP16
#endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC