aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/NetworkQuantizerUtils.hpp
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2019-03-20 11:51:14 +0000
committernattapat.chaimanowong <nattapat.chaimanowong@arm.com>2019-03-20 14:49:03 +0000
commit7ac07f355f4cb75a54ec423670b7078bd0ecb44d (patch)
tree5f28c73decbfe0221c2ecedc204f48a7c00884f0 /src/armnn/NetworkQuantizerUtils.hpp
parent2a434a8a23d75fb62ac0cb3ecb83ba7aab89b8c6 (diff)
downloadarmnn-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.hpp10
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);