diff options
author | Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> | 2019-03-20 11:51:14 +0000 |
---|---|---|
committer | nattapat.chaimanowong <nattapat.chaimanowong@arm.com> | 2019-03-20 14:49:03 +0000 |
commit | 7ac07f355f4cb75a54ec423670b7078bd0ecb44d (patch) | |
tree | 5f28c73decbfe0221c2ecedc204f48a7c00884f0 /src/armnn/NetworkQuantizerUtils.hpp | |
parent | 2a434a8a23d75fb62ac0cb3ecb83ba7aab89b8c6 (diff) | |
download | armnn-7ac07f355f4cb75a54ec423670b7078bd0ecb44d.tar.gz |
IVGCVSW-2858 Add support for QSymm16 quantization
Change-Id: Ia7c305c30c39ec0e9db447a461479be17fde250c
Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
Diffstat (limited to 'src/armnn/NetworkQuantizerUtils.hpp')
-rw-r--r-- | src/armnn/NetworkQuantizerUtils.hpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/armnn/NetworkQuantizerUtils.hpp b/src/armnn/NetworkQuantizerUtils.hpp index c23517e385..26f67f95b2 100644 --- a/src/armnn/NetworkQuantizerUtils.hpp +++ b/src/armnn/NetworkQuantizerUtils.hpp @@ -5,6 +5,8 @@ #pragma once +#include "NetworkQuantizationScheme.hpp" + #include <armnn/Tensor.hpp> #include <armnn/TypesUtils.hpp> #include <armnn/ILayerVisitor.hpp> @@ -17,10 +19,8 @@ namespace armnn { -std::pair<float, int> ComputeQAsymmParams(int numBits, double min, double max); - template<typename srcType> -void Quantize(const srcType* src, uint8_t* dst, size_t numElements, float& scale, int& offset) +void QuantizeConstant(const srcType* src, uint8_t* dst, size_t numElements, float& scale, int& offset) { BOOST_ASSERT(src); BOOST_ASSERT(dst); @@ -33,9 +33,11 @@ void Quantize(const srcType* src, uint8_t* dst, size_t numElements, float& scale max = std::max(max, src[i]); } - auto qParams = ComputeQAsymmParams(8, min, max); + QAsymm8QuantizationScheme quantizationScheme; + OffsetScalePair qParams = quantizationScheme.ComputeScheme(min, max); scale = qParams.first; offset = qParams.second; + for (size_t i = 0; i < numElements; ++i) { dst[i] = armnn::Quantize<uint8_t>(src[i], scale, offset); |