diff options
author | Alex Gilday <alexander.gilday@arm.com> | 2018-02-22 11:36:16 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:49:16 +0000 |
commit | 27c08abe6947b1ee5b266799f2bb2bf0a05d0def (patch) | |
tree | 32dfb3a6d6b199d5138e25b103023f07d88bce29 /tests/validation/NEON/LocallyConnected.cpp | |
parent | 9e9cbafa9e6cc6b543c89a96d52fc9c5fde04ceb (diff) | |
download | ComputeLibrary-27c08abe6947b1ee5b266799f2bb2bf0a05d0def.tar.gz |
COMPMID-754: Add validation to LocallyConnected and NEDeconv layers
Change-Id: Ifed8713f4d7f1315af684b30d11323db2b533f10
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/121783
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Diffstat (limited to 'tests/validation/NEON/LocallyConnected.cpp')
-rw-r--r-- | tests/validation/NEON/LocallyConnected.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/validation/NEON/LocallyConnected.cpp b/tests/validation/NEON/LocallyConnected.cpp index 56430d9650..b00f27445c 100644 --- a/tests/validation/NEON/LocallyConnected.cpp +++ b/tests/validation/NEON/LocallyConnected.cpp @@ -48,6 +48,67 @@ constexpr RelativeTolerance<float> tolerance_f32(0.0001f); /**< Tolerance value TEST_SUITE(NEON) TEST_SUITE(LocallyConnected) +// *INDENT-OFF* +// clang-format off +DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip(zip(zip(zip( + framework::dataset::make("InputInfo", { TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching data type input/weights + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching data type input/bias + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching data type input/output + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching shape input/weights + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching shape input/bias + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Mismatching shape input/output + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0), // Asymmetric padding + TensorInfo(TensorShape(23U, 27U, 5U), 1, DataType::F32, 0) + }), + framework::dataset::make("WeightsInfo",{ TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F16, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 274U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(3U, 3U, 5U, 21U, 275U), 1, DataType::F32, 0) + })), + framework::dataset::make("BiasInfo", { TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F16, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 274U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0), + TensorInfo(TensorShape(21U, 275U), 1, DataType::F32, 0) + })), + framework::dataset::make("OutputInfo", { TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F16, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 22U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0), + TensorInfo(TensorShape(11U, 25U, 21U), 1, DataType::F32, 0) + })), + framework::dataset::make("PadStride", { PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 0, 0), + PadStrideInfo(2, 1, 1, 0, 0, 0, DimensionRoundingType::FLOOR), + PadStrideInfo(2, 1, 0, 0) + })), + framework::dataset::make("Expected", { false, false, false, false, false, false, false, true })), + input_info, weights_info, bias_info, output_info, conv_info, expected) +{ + bool is_valid = bool(NELocallyConnectedLayer::validate(&input_info.clone()->set_is_resizable(false), + &weights_info.clone()->set_is_resizable(false), + &bias_info.clone()->set_is_resizable(false), + &output_info.clone()->set_is_resizable(false), + conv_info)); + ARM_COMPUTE_EXPECT(is_valid == expected, framework::LogLevel::ERRORS); +} +// clang-format on +// *INDENT-ON* + DATA_TEST_CASE(Configuration, framework::DatasetMode::ALL, combine(framework::dataset::concat(datasets::SmallLocallyConnectedDataset(), datasets::LargeLocallyConnectedDataset()), framework::dataset::make("DataType", DataType::F32)), src_shape, weights_shape, bias_shape, dst_shape, info, data_type) |