ArmNN
 21.02
INetworkQuantizer.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnn/INetwork.hpp>
9 #include <armnn/Types.hpp>
10 #include <armnn/Tensor.hpp>
11 
12 namespace armnn
13 {
14 
16 {
18 
19  QuantizerOptions(DataType activationFormat) : QuantizerOptions(activationFormat, false) {}
20 
21  QuantizerOptions(DataType activationFormat, bool preserveType)
22  : m_ActivationFormat(activationFormat)
23  , m_PreserveType(preserveType) {}
24 
27 };
28 
29 using INetworkQuantizerPtr = std::unique_ptr<class INetworkQuantizer, void(*)(INetworkQuantizer* quantizer)>;
30 
31 /// Quantizer class Quantizes a float32 InputNetwork
33 {
34 public:
35  /// Create Quantizer object and return raw pointer
36  static INetworkQuantizer* CreateRaw(INetwork* inputNetwork, const QuantizerOptions& options = QuantizerOptions());
37 
38  /// Create Quantizer object wrapped in unique_ptr
39  static INetworkQuantizerPtr Create(INetwork* inputNetwork, const QuantizerOptions& options = QuantizerOptions());
40 
41  /// Destroy Quantizer object
42  static void Destroy(INetworkQuantizer* quantizer);
43 
44  /// Overrides the default quantization values for the input layer with the given id
45  virtual void OverrideInputRange(LayerBindingId layerId, float min, float max) = 0;
46 
47  /// Refine input network with a set of refinement data for specified LayerBindingId
48  virtual void Refine(const InputTensors& inputTensors) = 0;
49 
50  /// Extract final quantized network
51  virtual INetworkPtr ExportNetwork() = 0;
52 
53 protected:
54  virtual ~INetworkQuantizer() {}
55 };
56 
57 } //namespace armnn
DataLayout::NCHW false
std::unique_ptr< class INetworkQuantizer, void(*)(INetworkQuantizer *quantizer)> INetworkQuantizerPtr
Main network class which provides the interface for building up a neural network. ...
Definition: INetwork.hpp:178
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
Definition: Tensor.hpp:340
QuantizerOptions(DataType activationFormat)
Copyright (c) 2021 ARM Limited and Contributors.
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:210
QuantizerOptions(DataType activationFormat, bool preserveType)
DataType
Definition: Types.hpp:32
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:173
Quantizer class Quantizes a float32 InputNetwork.