blob: fbfb8f4e1e4477dcd3b995926b0252048caa9cc6 [file] [log] [blame]
Nina Drozdd41b2592018-11-19 13:03:36 +00001//
Matteo Martincighe011d202019-11-28 11:35:47 +00002// Copyright © 2019 Arm Ltd. All rights reserved.
Nina Drozdd41b2592018-11-19 13:03:36 +00003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/TypesUtils.hpp>
9
Keith Davis5236e1d2019-11-04 08:58:33 +000010#include <boost/assert.hpp>
11
Nina Drozdd41b2592018-11-19 13:03:36 +000012namespace armnnUtils
13{
14armnn::TensorShape GetTensorShape(unsigned int numberOfBatches,
15 unsigned int numberOfChannels,
16 unsigned int height,
17 unsigned int width,
18 const armnn::DataLayout dataLayout);
19
Nina Drozdd41b2592018-11-19 13:03:36 +000020armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches,
21 unsigned int numberOfChannels,
22 unsigned int height,
23 unsigned int width,
Nattapat Chaimanowong649dd952019-01-22 16:10:44 +000024 const armnn::DataLayout dataLayout,
25 const armnn::DataType dataType);
26
Jim Flynnf92dfce2019-05-02 11:33:25 +010027std::pair<float, float> FindMinMax(armnn::ITensorHandle* tensorHandle);
28
Narumol Prangnawarat02807852019-09-11 16:43:09 +010029armnn::TensorShape ExpandDims(const armnn::TensorShape& tensorShape, int axis);
30
Narumol Prangnawarat4dc64a62019-09-16 17:00:22 +010031unsigned int GetNumElementsBetween(const armnn::TensorShape& shape,
32 unsigned int firstAxisInclusive,
33 unsigned int lastAxisExclusive);
34
35unsigned int GetUnsignedAxis(const unsigned int inputDimension, const int axis);
36
Aron Virginas-Tarb67f9572019-11-04 15:00:19 +000037unsigned int GetNumElementsAfter(const armnn::TensorShape& shape, unsigned int axis);
Keith Davis5236e1d2019-11-04 08:58:33 +000038
Aron Virginas-Tarb67f9572019-11-04 15:00:19 +000039std::pair<unsigned int, std::vector<float>> GetPerAxisParams(const armnn::TensorInfo& info);
Keith Davis5236e1d2019-11-04 08:58:33 +000040
Nattapat Chaimanowong649dd952019-01-22 16:10:44 +000041} // namespace armnnUtils