diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2017-06-19 15:19:29 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:14:20 +0100 |
commit | 8af2dd6eb230f2205070dce50c2a22bdf2d55e46 (patch) | |
tree | b0d523617ae866495bc19c5ef3a41b5545eada76 /tests | |
parent | c6cb35a1935cde168f4b72d8782c21a344e78623 (diff) | |
download | ComputeLibrary-8af2dd6eb230f2205070dce50c2a22bdf2d55e46.tar.gz |
COMPMID-403: Add 7x7 NEON Pooling support.
Change-Id: I2f1e808884f215b9cf79e1f2015ef901e66b3e5f
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78146
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/validation/NEON/PoolingLayer.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/validation/NEON/PoolingLayer.cpp b/tests/validation/NEON/PoolingLayer.cpp index 10b9a5250e..489c5b668b 100644 --- a/tests/validation/NEON/PoolingLayer.cpp +++ b/tests/validation/NEON/PoolingLayer.cpp @@ -92,6 +92,20 @@ Tensor compute_pooling_layer(const TensorShape &shape_in, const TensorShape &sha return dst; } + +TensorShape get_output_shape(TensorShape in_shape, const PoolingLayerInfo &pool_info) +{ + TensorShape out_shape(in_shape); + const std::pair<unsigned int, unsigned int> scaled_dims = arm_compute::scaled_dimensions(in_shape.x(), + in_shape.y(), + pool_info.pool_size(), + pool_info.pad_stride_info().stride().first, pool_info.pad_stride_info().stride().second, + pool_info.pad_stride_info().pad().first, pool_info.pad_stride_info().pad().second, + pool_info.pad_stride_info().round()); + out_shape.set(0, scaled_dims.first); + out_shape.set(1, scaled_dims.second); + return out_shape; +} } // namespace #ifndef DOXYGEN_SKIP_THIS @@ -113,6 +127,23 @@ BOOST_DATA_TEST_CASE(RandomDataset, // Validate output validate(NEAccessor(dst), ref_dst, tolerance_f, 0); } + +BOOST_DATA_TEST_CASE(RunSmall7x7, + SmallShapes() * CNNFloatDataTypes() * PoolingTypes() * boost::unit_test::data::make({ 2, 3, 7 }) * boost::unit_test::data::make({ 1, 2 }) * boost::unit_test::data::make({ 0, 1 }), + src_shape, dt, pool_type, pool_size, pool_stride, pool_pad) +{ + PoolingLayerInfo pool_info(pool_type, pool_size, PadStrideInfo(pool_stride, pool_stride, pool_pad, pool_pad, DimensionRoundingType::CEIL)); + TensorShape dst_shape = get_output_shape(src_shape, pool_info); + + // Compute function + Tensor dst = compute_pooling_layer(src_shape, dst_shape, dt, pool_info); + + // Compute reference + RawTensor ref_dst = Reference::compute_reference_pooling_layer(src_shape, dst_shape, dt, pool_info); + + // Validate output + validate(NEAccessor(dst), ref_dst, tolerance_f, 0); +} BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(Quantized) |