aboutsummaryrefslogtreecommitdiff
path: root/include
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 /include
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 'include')
-rw-r--r--include/armnn/INetworkQuantizer.hpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/include/armnn/INetworkQuantizer.hpp b/include/armnn/INetworkQuantizer.hpp
index 5969fa4edf..54c1c889d3 100644
--- a/include/armnn/INetworkQuantizer.hpp
+++ b/include/armnn/INetworkQuantizer.hpp
@@ -6,19 +6,33 @@
#pragma once
#include <armnn/INetwork.hpp>
+#include <armnn/Types.hpp>
namespace armnn
{
+struct QuantizerOptions
+{
+ QuantizerOptions() : m_ActivationFormat(DataType::QuantisedAsymm8) {}
+ QuantizerOptions(DataType activationFormat) : m_ActivationFormat(activationFormat) {}
+
+ DataType m_ActivationFormat;
+};
+
using INetworkQuantizerPtr = std::unique_ptr<class INetworkQuantizer, void(*)(INetworkQuantizer* quantizer)>;
/// Quantizer class Quantizes a float32 InputNetwork
class INetworkQuantizer
{
public:
- static INetworkQuantizer* CreateRaw(INetwork* inputNetwork); ///< Create Quantizer object and return raw pointer
- static INetworkQuantizerPtr Create(INetwork* inputNetwork); ///< Create Quantizer object wrapped in unique_ptr
- static void Destroy(INetworkQuantizer* quantizer); ///< Destroy Quantizer object
+ /// Create Quantizer object and return raw pointer
+ static INetworkQuantizer* CreateRaw(INetwork* inputNetwork, const QuantizerOptions& options = QuantizerOptions());
+
+ /// Create Quantizer object wrapped in unique_ptr
+ static INetworkQuantizerPtr Create(INetwork* inputNetwork, const QuantizerOptions& options = QuantizerOptions());
+
+ /// Destroy Quantizer object
+ static void Destroy(INetworkQuantizer* quantizer);
/// Overrides the default quantization values for the input layer with the given id
virtual void OverrideInputRange(LayerBindingId layerId, float min, float max) = 0;