blob: 4f6359f36d193bf94b0457976ddfcaa31145ad9f [file] [log] [blame]
//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//
#pragma once
#include <armnn/INetwork.hpp>
#include <armnn/INetworkQuantizer.hpp>
#include <armnn/Types.hpp>
#include "RangeTracker.hpp"
namespace armnn
{
class NetworkQuantizer : public INetworkQuantizer
{
public:
NetworkQuantizer(INetwork* inputNetwork, const QuantizerOptions& options)
: m_InputNetwork(inputNetwork), m_Options(options) {}
void OverrideInputRange(LayerBindingId layerId, float min, float max) override;
void Refine(const InputTensors& inputTensors) override;
INetworkPtr ExportNetwork() override;
private:
/// Original input network to quantize
INetwork* m_InputNetwork;
/// Mapping from Guid to an array of ranges for outputs
RangeTracker m_Ranges;
/// Options for the NetworkQuantizer
QuantizerOptions m_Options;
};
} //namespace armnn