diff options
Diffstat (limited to 'arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h')
-rw-r--r-- | arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h b/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h index 1b465a4866..21cded0417 100644 --- a/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h +++ b/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h @@ -21,10 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#ifndef __ARM_COMPUTE_CLARGMINMAXLAYER_H__ -#define __ARM_COMPUTE_CLARGMINMAXLAYER_H__ +#ifndef ARM_COMPUTE_CLARGMINMAXLAYER_H +#define ARM_COMPUTE_CLARGMINMAXLAYER_H +#include "arm_compute/core/CL/kernels/CLArgMinMaxLayerKernel.h" +#include "arm_compute/core/CL/kernels/CLReshapeLayerKernel.h" #include "arm_compute/core/Types.h" +#include "arm_compute/runtime/CL/CLTensor.h" #include "arm_compute/runtime/IFunction.h" #include "arm_compute/runtime/IMemoryManager.h" #include "arm_compute/runtime/MemoryGroup.h" @@ -33,7 +36,6 @@ namespace arm_compute { class ITensorInfo; class ICLTensor; -class CLReductionOperation; /** Function to calculate the index of the minimum or maximum values in a * tensor based on an axis. @@ -53,19 +55,18 @@ public: CLArgMinMaxLayer(std::shared_ptr<IMemoryManager> memory_manager = nullptr); /** Set the input and output tensors. * - * @param[in] input Input source tensor, this could be written if @ref CLReductionOperation - * manipulates its border for better performance. Data types supported: F16/F32. + * @param[in] input Input source tensor. Data types supported: F16/F32. * @param[in] axis Axis to find max/min index. * @param[out] output Output source tensor. Data types supported: U32/S32. - * @param[in] op Operation to perform: min or max + * @param[in] op Reduction operation to perform. Operations supported: ARG_IDX_MAX, ARG_IDX_MIN */ - void configure(ICLTensor *input, int axis, ICLTensor *output, const ReductionOperation &op); + void configure(const ICLTensor *input, int axis, ICLTensor *output, const ReductionOperation &op); /** Static function to check if given info will lead to a valid configuration of @ref CLArgMinMaxLayer * * @param[in] input Input source tensor info. Data types supported: F16/F32. * @param[in] axis Axis to find max/min index. * @param[in] output Output source tensor info. Data types supported: U32/S32. - * @param[in] op Operation to perform: min or max + * @param[in] op Reduction operation to perform. Operations supported: ARG_IDX_MAX, ARG_IDX_MIN * * @return a status */ @@ -75,7 +76,13 @@ public: void run() override; private: - std::unique_ptr<CLReductionOperation> _reduction_function; + MemoryGroup _memory_group; + std::vector<CLTensor> _results_vector; + CLTensor _not_reshaped_output; + std::vector<CLArgMinMaxLayerKernel> _reduction_kernels_vector; + CLReshapeLayerKernel _reshape_kernel; + unsigned int _num_of_stages; + unsigned int _reduction_axis; }; } // namespace arm_compute -#endif /* __ARM_COMPUTE_CLARGMINMAXLAYER_H__ */ +#endif /* ARM_COMPUTE_CLARGMINMAXLAYER_H */ |