aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON
diff options
context:
space:
mode:
authorMichalis Spyrou <michalis.spyrou@arm.com>2020-03-23 10:53:11 +0000
committerMichalis Spyrou <michalis.spyrou@arm.com>2020-03-23 16:58:57 +0000
commit3bb75d60ced0cefa503e90f5d0d8cfe3db3f8637 (patch)
tree6bc878e64ea5fad1ea4cbfb649a1454fad635fcf /src/core/NEON
parentd9a623a1729a9a613f7dcf8cf8536e5d8dd921b4 (diff)
downloadComputeLibrary-3bb75d60ced0cefa503e90f5d0d8cfe3db3f8637.tar.gz
COMPMID-3175: Remove padding from NEBoundingBoxTransformKernel
Change-Id: I24b465162a54011bf9b0210f46bdb1a96398c32c Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2916 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON')
-rw-r--r--src/core/NEON/kernels/NEBoundingBoxTransformKernel.cpp40
1 files changed, 12 insertions, 28 deletions
diff --git a/src/core/NEON/kernels/NEBoundingBoxTransformKernel.cpp b/src/core/NEON/kernels/NEBoundingBoxTransformKernel.cpp
index e195c96722..ea8d47d57e 100644
--- a/src/core/NEON/kernels/NEBoundingBoxTransformKernel.cpp
+++ b/src/core/NEON/kernels/NEBoundingBoxTransformKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 ARM Limited.
+ * Copyright (c) 2019-2020 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -76,30 +76,6 @@ Status validate_arguments(const ITensorInfo *boxes, const ITensorInfo *pred_boxe
return Status{};
}
-
-std::pair<Status, Window> validate_and_configure_window(ITensorInfo *boxes, ITensorInfo *pred_boxes, ITensorInfo *deltas, const BoundingBoxTransformInfo &bb_info)
-{
- ARM_COMPUTE_UNUSED(bb_info);
- ARM_COMPUTE_ERROR_ON_NULLPTR(boxes, pred_boxes);
-
- auto_init_if_empty(*pred_boxes, deltas->clone()->set_data_type(boxes->data_type()).set_quantization_info(boxes->quantization_info()));
-
- const unsigned int num_boxes = boxes->dimension(1);
-
- Window window;
- window.set(Window::DimX, Window::Dimension(0, 1u));
- window.set(Window::DimY, Window::Dimension(0, num_boxes));
-
- AccessWindowHorizontal input_access(boxes, 0, 4u);
- AccessWindowHorizontal output_access(pred_boxes, 0, 4u);
-
- const bool window_changed = update_window_and_padding(window, input_access, output_access);
- output_access.set_valid_region(window, ValidRegion(Coordinates(), pred_boxes->tensor_shape()));
-
- Status err = (window_changed) ? ARM_COMPUTE_CREATE_ERROR(ErrorCode::RUNTIME_ERROR, "Insufficient Padding!") : Status{};
- return std::make_pair(err, window);
-}
-
} // namespace
NEBoundingBoxTransformKernel::NEBoundingBoxTransformKernel()
@@ -109,11 +85,11 @@ NEBoundingBoxTransformKernel::NEBoundingBoxTransformKernel()
void NEBoundingBoxTransformKernel::configure(const ITensor *boxes, ITensor *pred_boxes, const ITensor *deltas, const BoundingBoxTransformInfo &info)
{
+ ARM_COMPUTE_ERROR_ON_NULLPTR(boxes, pred_boxes, deltas);
ARM_COMPUTE_ERROR_THROW_ON(validate_arguments(boxes->info(), pred_boxes->info(), deltas->info(), info));
// Configure kernel window
- auto win_config = validate_and_configure_window(boxes->info(), pred_boxes->info(), deltas->info(), info);
- ARM_COMPUTE_ERROR_THROW_ON(win_config.first);
+ auto_init_if_empty(*pred_boxes->info(), deltas->info()->clone()->set_data_type(boxes->info()->data_type()).set_quantization_info(boxes->info()->quantization_info()));
// Set instance variables
_boxes = boxes;
@@ -121,7 +97,15 @@ void NEBoundingBoxTransformKernel::configure(const ITensor *boxes, ITensor *pred
_deltas = deltas;
_bbinfo = info;
- INEKernel::configure(win_config.second);
+ const unsigned int num_boxes = boxes->info()->dimension(1);
+ Window win = calculate_max_window(*pred_boxes->info(), Steps());
+ Coordinates coord;
+ coord.set_num_dimensions(pred_boxes->info()->num_dimensions());
+ pred_boxes->info()->set_valid_region(ValidRegion(coord, pred_boxes->info()->tensor_shape()));
+ win.set(Window::DimX, Window::Dimension(0, 1u));
+ win.set(Window::DimY, Window::Dimension(0, num_boxes));
+
+ INEKernel::configure(win);
}
Status NEBoundingBoxTransformKernel::validate(const ITensorInfo *boxes, const ITensorInfo *pred_boxes, const ITensorInfo *deltas, const BoundingBoxTransformInfo &info)