diff options
Diffstat (limited to 'src/backends/backendsCommon/test/DataLayoutUtils.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/DataLayoutUtils.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/DataLayoutUtils.hpp b/src/backends/backendsCommon/test/DataLayoutUtils.hpp index 9411212f4f..89b3900979 100644 --- a/src/backends/backendsCommon/test/DataLayoutUtils.hpp +++ b/src/backends/backendsCommon/test/DataLayoutUtils.hpp @@ -34,3 +34,27 @@ void PermuteTensorNhwcToNchw(armnn::TensorInfo& tensorInfo, std::vector<T>& tens tensorData = tmp; } + +template<typename T> +void PermuteTensorNdhwcToNcdhw(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData) +{ + const armnn::PermutationVector ndhwcToNcdhw = { 0, 2, 3, 4, 1 }; + + tensorInfo = armnnUtils::Permuted(tensorInfo, ndhwcToNcdhw); + + std::vector<T> tmp(tensorData.size()); + armnnUtils::Permute(tensorInfo.GetShape(), ndhwcToNcdhw, tensorData.data(), tmp.data(), sizeof(T)); + tensorData = tmp; +} + +template<typename T> +void PermuteTensorNcdhwToNdhwc(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData) +{ + const armnn::PermutationVector ncdhwToNdhwc = { 0, 4, 1, 2, 3 }; + + tensorInfo = armnnUtils::Permuted(tensorInfo, ncdhwToNdhwc); + + std::vector<T> tmp(tensorData.size()); + armnnUtils::Permute(tensorInfo.GetShape(), ncdhwToNdhwc, tensorData.data(), tmp.data(), sizeof(T)); + tensorData = tmp; +} |