diff options
author | morgolock <pablo.tello@arm.com> | 2020-03-24 09:26:48 +0000 |
---|---|---|
committer | Pablo Marquez <pablo.tello@arm.com> | 2020-04-01 12:45:47 +0000 |
commit | cc1f6c94f1fc3b5d5ccbd5aa43e2a08487664f50 (patch) | |
tree | edf8c87c5ac37b291a9b615b9eeb65df08f79095 /src/runtime/GLES_COMPUTE | |
parent | 9428a182911802cf6e6df6eb751a7c7eb43602f9 (diff) | |
download | ComputeLibrary-cc1f6c94f1fc3b5d5ccbd5aa43e2a08487664f50.tar.gz |
MLCE-166: Add support for extracting indices in NEPoolingLayer 2x2 NCHW
* Added initial support for pooling indices
* Only supported for NCHW Poolsize 2
Change-Id: I92ce767e64fcc01aae89411064b4cb2be272a1e9
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2927
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/GLES_COMPUTE')
-rw-r--r-- | src/runtime/GLES_COMPUTE/functions/GCPoolingLayer.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/runtime/GLES_COMPUTE/functions/GCPoolingLayer.cpp b/src/runtime/GLES_COMPUTE/functions/GCPoolingLayer.cpp index 328c5e9762..accf60e204 100644 --- a/src/runtime/GLES_COMPUTE/functions/GCPoolingLayer.cpp +++ b/src/runtime/GLES_COMPUTE/functions/GCPoolingLayer.cpp @@ -29,18 +29,18 @@ #include "support/MemorySupport.h" -using namespace arm_compute; - +namespace arm_compute +{ GCPoolingLayer::GCPoolingLayer() : _kernel(nullptr), _border_handler(), _shift_handler() { } -void GCPoolingLayer::configure(IGCTensor *input, IGCTensor *output, const PoolingLayerInfo &pool_info) +void GCPoolingLayer::configure(IGCTensor *input, IGCTensor *output, const PoolingLayerInfo &pool_info, IGCTensor *indices) { // Configure pooling kernel auto k = arm_compute::support::cpp14::make_unique<GCPoolingLayerKernel>(); - k->configure(input, output, pool_info); + k->configure(input, output, pool_info, indices); _kernel = std::move(k); // Configure border depending on operation required @@ -50,9 +50,9 @@ void GCPoolingLayer::configure(IGCTensor *input, IGCTensor *output, const Poolin _shift_handler.configure(input); } -Status GCPoolingLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const PoolingLayerInfo &pool_info) +Status GCPoolingLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const PoolingLayerInfo &pool_info, const ITensorInfo *indices) { - return GCPoolingLayerKernel::validate(input, output, pool_info); + return GCPoolingLayerKernel::validate(input, output, pool_info, indices); } void GCPoolingLayer::run() @@ -63,3 +63,4 @@ void GCPoolingLayer::run() GCScheduler::get().memory_barrier(); GCScheduler::get().dispatch(*_kernel); } +} // namespace arm_compute |