diff options
author | Nina Drozd <nina.drozd@arm.com> | 2018-11-19 13:03:36 +0000 |
---|---|---|
committer | Aron Virginas-Tar <aron.virginas-tar@arm.com> | 2018-11-20 13:04:34 +0000 |
commit | d41b25938323455ea6b6d5348cab8861971b5fba (patch) | |
tree | 393d8cb22b32b0b72f23a110d56aa8e3ee830cd8 /src/armnnUtils | |
parent | 63b08829cbb0a36f4ed1f71717626ff38ff909ba (diff) | |
download | armnn-d41b25938323455ea6b6d5348cab8861971b5fba.tar.gz |
IVGCVSW-2144: Adding TensorUtils class
* helper methods for creating TensorShape and TensorInfo objects
Change-Id: I371fc7aea08ca6bbb9c205a143ce36e8353a1c48
Diffstat (limited to 'src/armnnUtils')
-rw-r--r-- | src/armnnUtils/TensorUtils.cpp | 31 | ||||
-rw-r--r-- | src/armnnUtils/TensorUtils.hpp | 37 |
2 files changed, 68 insertions, 0 deletions
diff --git a/src/armnnUtils/TensorUtils.cpp b/src/armnnUtils/TensorUtils.cpp new file mode 100644 index 0000000000..2c25eec163 --- /dev/null +++ b/src/armnnUtils/TensorUtils.cpp @@ -0,0 +1,31 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "TensorUtils.hpp" + +namespace armnnUtils +{ + +armnn::TensorShape GetTensorShape(unsigned int numberOfBatches, + unsigned int numberOfChannels, + unsigned int height, + unsigned int width, + const armnn::DataLayout dataLayout) +{ + switch (dataLayout) + { + case armnn::DataLayout::NCHW: + return armnn::TensorShape({numberOfBatches, numberOfChannels, height, width}); + case armnn::DataLayout::NHWC: + return armnn::TensorShape({numberOfBatches, height, width, numberOfChannels}); + default: + throw armnn::InvalidArgumentException("Unknown data layout [" + + std::to_string(static_cast<int>(dataLayout)) + + "]", CHECK_LOCATION()); + } +} + +} + diff --git a/src/armnnUtils/TensorUtils.hpp b/src/armnnUtils/TensorUtils.hpp new file mode 100644 index 0000000000..6461b37f75 --- /dev/null +++ b/src/armnnUtils/TensorUtils.hpp @@ -0,0 +1,37 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <armnn/TypesUtils.hpp> + +namespace armnnUtils +{ +armnn::TensorShape GetTensorShape(unsigned int numberOfBatches, + unsigned int numberOfChannels, + unsigned int height, + unsigned int width, + const armnn::DataLayout dataLayout); + +template<typename T> +armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches, + unsigned int numberOfChannels, + unsigned int height, + unsigned int width, + const armnn::DataLayout dataLayout) +{ + switch (dataLayout) + { + case armnn::DataLayout::NCHW: + return armnn::TensorInfo({numberOfBatches, numberOfChannels, height, width}, armnn::GetDataType<T>()); + case armnn::DataLayout::NHWC: + return armnn::TensorInfo({numberOfBatches, height, width, numberOfChannels}, armnn::GetDataType<T>()); + default: + throw armnn::InvalidArgumentException("Unknown data layout [" + + std::to_string(static_cast<int>(dataLayout)) + + "]", CHECK_LOCATION()); + } +} +} // namespace armnnUtils
\ No newline at end of file |