diff options
Diffstat (limited to 'src/armnnUtils')
-rw-r--r-- | src/armnnUtils/ParserPrototxtFixture.hpp | 2 | ||||
-rw-r--r-- | src/armnnUtils/QuantizeHelper.hpp | 132 | ||||
-rw-r--r-- | src/armnnUtils/test/QuantizeHelperTest.cpp | 2 |
3 files changed, 2 insertions, 134 deletions
diff --git a/src/armnnUtils/ParserPrototxtFixture.hpp b/src/armnnUtils/ParserPrototxtFixture.hpp index 31ee8293a2..ccb99be594 100644 --- a/src/armnnUtils/ParserPrototxtFixture.hpp +++ b/src/armnnUtils/ParserPrototxtFixture.hpp @@ -6,7 +6,7 @@ #pragma once #include <armnn/IRuntime.hpp> -#include <TensorHelpers.hpp> +#include <armnnTestUtils/TensorHelpers.hpp> #include <Network.hpp> #include <VerificationHelpers.hpp> diff --git a/src/armnnUtils/QuantizeHelper.hpp b/src/armnnUtils/QuantizeHelper.hpp deleted file mode 100644 index 231b8411cb..0000000000 --- a/src/armnnUtils/QuantizeHelper.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include <armnn/utility/IgnoreUnused.hpp> -#include <armnn/utility/NumericCast.hpp> -#include <armnn/TypesUtils.hpp> - -#include <BFloat16.hpp> -#include <Half.hpp> - -#include <initializer_list> -#include <iterator> -#include <vector> - -namespace armnnUtils -{ - -template<typename T, bool DoQuantize=true> -struct SelectiveQuantizer -{ - static T Quantize(float value, float scale, int32_t offset) - { - return armnn::Quantize<T>(value, scale, offset); - } - - static float Dequantize(T value, float scale, int32_t offset) - { - return armnn::Dequantize(value, scale, offset); - } -}; - -template<typename T> -struct SelectiveQuantizer<T, false> -{ - static T Quantize(float value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return value; - } - - static float Dequantize(T value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return value; - } -}; - -template<> -struct SelectiveQuantizer<armnn::Half, false> -{ - static armnn::Half Quantize(float value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return armnn::Half(value); - } - - static float Dequantize(armnn::Half value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return value; - } -}; - -template<> -struct SelectiveQuantizer<armnn::BFloat16, false> -{ - static armnn::BFloat16 Quantize(float value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return armnn::BFloat16(value); - } - - static float Dequantize(armnn::BFloat16 value, float scale, int32_t offset) - { - armnn::IgnoreUnused(scale, offset); - return value; - } -}; - -template<typename T> -T SelectiveQuantize(float value, float scale, int32_t offset) -{ - return SelectiveQuantizer<T, armnn::IsQuantizedType<T>()>::Quantize(value, scale, offset); -}; - -template<typename T> -float SelectiveDequantize(T value, float scale, int32_t offset) -{ - return SelectiveQuantizer<T, armnn::IsQuantizedType<T>()>::Dequantize(value, scale, offset); -}; - -template<typename ItType> -struct IsFloatingPointIterator -{ - static constexpr bool value=std::is_floating_point<typename std::iterator_traits<ItType>::value_type>::value; -}; - -template <typename T, typename FloatIt, -typename std::enable_if<IsFloatingPointIterator<FloatIt>::value, int>::type=0 // Makes sure fp iterator is valid. -> -std::vector<T> QuantizedVector(FloatIt first, FloatIt last, float qScale, int32_t qOffset) -{ - std::vector<T> quantized; - quantized.reserve(armnn::numeric_cast<size_t>(std::distance(first, last))); - - for (auto it = first; it != last; ++it) - { - auto f = *it; - T q = SelectiveQuantize<T>(f, qScale, qOffset); - quantized.push_back(q); - } - - return quantized; -} - -template<typename T> -std::vector<T> QuantizedVector(const std::vector<float>& array, float qScale = 1.f, int32_t qOffset = 0) -{ - return QuantizedVector<T>(array.begin(), array.end(), qScale, qOffset); -} - -template<typename T> -std::vector<T> QuantizedVector(std::initializer_list<float> array, float qScale = 1.f, int32_t qOffset = 0) -{ - return QuantizedVector<T>(array.begin(), array.end(), qScale, qOffset); -} - -} // namespace armnnUtils diff --git a/src/armnnUtils/test/QuantizeHelperTest.cpp b/src/armnnUtils/test/QuantizeHelperTest.cpp index 6df6d808cb..e71415b6fa 100644 --- a/src/armnnUtils/test/QuantizeHelperTest.cpp +++ b/src/armnnUtils/test/QuantizeHelperTest.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include <QuantizeHelper.hpp> +#include <armnnUtils/QuantizeHelper.hpp> #include <armnn/utility/IgnoreUnused.hpp> #include <doctest/doctest.h> |