• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <map>
9 #include <armnn/Types.hpp>
10 #include <armnnQuantizer/INetworkQuantizer.hpp>
11 
12 namespace armnnQuantizer
13 {
14 
15 /// QuantizationInput for specific pass ID, can list a corresponding raw data file for each LayerBindingId.
16 class QuantizationInput
17 {
18 public:
19 
20     /// Constructor for QuantizationInput
21     QuantizationInput(const unsigned int passId,
22                       const armnn::LayerBindingId bindingId,
23                       const std::string fileName);
24 
25     QuantizationInput(const QuantizationInput& other);
26 
27     // Add binding ID to image tensor filepath entry
28     void AddEntry(const armnn::LayerBindingId bindingId, const std::string fileName);
29 
30     // Retrieve tensor data for entry with provided binding ID
31     std::vector<float> GetDataForEntry(const armnn::LayerBindingId bindingId) const;
32 
33     /// Retrieve Layer Binding IDs for this QuantizationInput.
34     std::vector<armnn::LayerBindingId> GetLayerBindingIds() const;
35 
36     /// Get number of inputs for this QuantizationInput.
37     unsigned long GetNumberOfInputs() const;
38 
39     /// Retrieve Pass ID for this QuantizationInput.
40     unsigned int GetPassId() const;
41 
42     /// Retrieve filename path for specified Layer Binding ID.
43     std::string GetFileName(const armnn::LayerBindingId bindingId) const;
44 
45     /// Destructor
46     ~QuantizationInput() noexcept;
47 
48 private:
49     unsigned int m_PassId;
50     std::map<armnn::LayerBindingId, std::string> m_LayerBindingIdToFileName;
51 
52 };
53 
54 }