blob: 103d972122b5ce57dc24949c73bb6e79a4797668 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: src/armnn/NetworkQuantizer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ArmNN
&#160;<span id="projectnumber">NotReleased</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_network_quantizer_8hpp_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">NetworkQuantizer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_network_quantizer_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Copyright © 2017 Arm Ltd. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_i_network_8hpp.html">armnn/INetwork.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_i_network_quantizer_8hpp.html">armnnQuantizer/INetworkQuantizer.hpp</a>&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_i_runtime_8hpp.html">armnn/IRuntime.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_types_8hpp.html">armnn/Types.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_optional_8hpp.html">armnn/Optional.hpp</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dynamic_quantization_visitor_8hpp.html">DynamicQuantizationVisitor.hpp</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_range_tracker_8hpp.html">RangeTracker.hpp</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.html">armnn</a></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classarmnn_1_1_network_quantizer.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="classarmnn_1_1_network_quantizer.html">NetworkQuantizer</a> : <span class="keyword">public</span> <a class="code" href="classarmnn_1_1_i_network_quantizer.html">INetworkQuantizer</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classarmnn_1_1_network_quantizer.html#ad1d6bb17a39fec4850c40eadf5f537a4"> 23</a></span>&#160; <a class="code" href="classarmnn_1_1_network_quantizer.html#ad1d6bb17a39fec4850c40eadf5f537a4">NetworkQuantizer</a>(<a class="code" href="classarmnn_1_1_i_network.html">INetwork</a>* inputNetwork, <span class="keyword">const</span> <a class="code" href="structarmnn_1_1_quantizer_options.html">QuantizerOptions</a>&amp; <a class="code" href="_file_only_profiling_decorator_tests_8cpp.html#a6560146509197f3e197d8d36f76c1347">options</a>)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : m_InputNetwork(inputNetwork),</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_NetworkId(0),</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_Runtime(nullptr, &amp;<a class="code" href="classarmnn_1_1_i_runtime.html">IRuntime</a>::<a class="code" href="classarmnn_1_1_i_network_quantizer.html#ad1ad5b83dc4d8bed64c29adf21c8958a">Destroy</a>),</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_RefineCount(0),</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_Options(options) {}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_network_quantizer.html#a0de9803a30020e30ec8c9c0ba8592dc6">OverrideInputRange</a>(<a class="code" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a> layerId, <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) <span class="keyword">override</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classarmnn_1_1_network_quantizer.html#acff529f0d8ffed99123e3a729942be12">Refine</a>(<span class="keyword">const</span> <a class="code" href="namespacearmnn.html#aa01bce88f89975a5a031db4cc8861527">InputTensors</a>&amp; inputTensors) <span class="keyword">override</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// Required for testing? Need some way to get min/max in RangeTracker (m_Ranges)</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classarmnn_1_1_network_quantizer.html#a3618dd686c52c451000bea3e20931ac8"> 34</a></span>&#160; std::pair&lt;float, float&gt; <a class="code" href="classarmnn_1_1_network_quantizer.html#a3618dd686c52c451000bea3e20931ac8">GetMinMaxRange</a>(<a class="code" href="classarmnn_1_1profiling_1_1_profiling_guid.html">LayerGuid</a> guid, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> idx) { <span class="keywordflow">return</span> m_Ranges.<a class="code" href="classarmnn_1_1_range_tracker.html#a507bae23f59e94b4161886ebe663cdf4">GetRange</a>(guid, idx); }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> <a class="code" href="classarmnn_1_1_network_quantizer.html#a8768a9dd173e985bfc0c72338662d631">ExportNetwork</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classarmnn_1_1_i_network.html">INetwork</a>* m_InputNetwork;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespacearmnn.html#a83015160d8c67d5d77735eb0d4033d9a">NetworkId</a> m_NetworkId;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// if we are run in dynamic mode this unique pointer will hold</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// the runtime between invocations of the Refine method.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="namespacearmnn.html#a150468a02bd7b2d2d061c4aaaee939f0">IRuntimePtr</a> m_Runtime;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classarmnn_1_1_optional.html">Optional&lt;DynamicQuantizationVisitor&gt;</a> m_DynamicQuantizationVisitor;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// counts the number of times refine is called</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_RefineCount;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classarmnn_1_1_range_tracker.html">RangeTracker</a> m_Ranges;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="structarmnn_1_1_quantizer_options.html">QuantizerOptions</a> m_Options;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::pair&lt;float, float&gt; FindMinMax(<a class="code" href="classarmnn_1_1_i_tensor_handle.html">ITensorHandle</a>* tensorHandle);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <span class="comment">//namespace armnn</span></div><div class="ttc" id="classarmnn_1_1_network_quantizer_html_ad1d6bb17a39fec4850c40eadf5f537a4"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html#ad1d6bb17a39fec4850c40eadf5f537a4">armnn::NetworkQuantizer::NetworkQuantizer</a></div><div class="ttdeci">NetworkQuantizer(INetwork *inputNetwork, const QuantizerOptions &amp;options)</div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8hpp_source.html#l00023">NetworkQuantizer.hpp:23</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_network_quantizer_html_ad1ad5b83dc4d8bed64c29adf21c8958a"><div class="ttname"><a href="classarmnn_1_1_i_network_quantizer.html#ad1ad5b83dc4d8bed64c29adf21c8958a">armnn::INetworkQuantizer::Destroy</a></div><div class="ttdeci">static void Destroy(INetworkQuantizer *quantizer)</div><div class="ttdoc">Destroy Quantizer object. </div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8cpp_source.html#l00045">NetworkQuantizer.cpp:45</a></div></div>
<div class="ttc" id="classarmnn_1_1_optional_html"><div class="ttname"><a href="classarmnn_1_1_optional.html">armnn::Optional</a></div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.html#l00270">Optional.hpp:270</a></div></div>
<div class="ttc" id="_i_runtime_8hpp_html"><div class="ttname"><a href="_i_runtime_8hpp.html">IRuntime.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_network_quantizer_html_acff529f0d8ffed99123e3a729942be12"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html#acff529f0d8ffed99123e3a729942be12">armnn::NetworkQuantizer::Refine</a></div><div class="ttdeci">void Refine(const InputTensors &amp;inputTensors) override</div><div class="ttdoc">Refine input network with a set of refinement data for specified LayerBindingId. </div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8cpp_source.html#l00060">NetworkQuantizer.cpp:60</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_tensor_handle_html"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.html">armnn::ITensorHandle</a></div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_tensor_handle_8hpp_source.html#l00016">ITensorHandle.hpp:16</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_runtime_html"><div class="ttname"><a href="classarmnn_1_1_i_runtime.html">armnn::IRuntime</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.html#l00038">IRuntime.hpp:38</a></div></div>
<div class="ttc" id="_range_tracker_8hpp_html"><div class="ttname"><a href="_range_tracker_8hpp.html">RangeTracker.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_network_html"><div class="ttname"><a href="classarmnn_1_1_i_network.html">armnn::INetwork</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.html#l00089">INetwork.hpp:89</a></div></div>
<div class="ttc" id="namespacearmnn_html_aa01bce88f89975a5a031db4cc8861527"><div class="ttname"><a href="namespacearmnn.html#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; LayerBindingId, class ConstTensor &gt; &gt; InputTensors</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00225">Tensor.hpp:225</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_network_quantizer_html"><div class="ttname"><a href="classarmnn_1_1_i_network_quantizer.html">armnn::INetworkQuantizer</a></div><div class="ttdoc">Quantizer class Quantizes a float32 InputNetwork. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_quantizer_8hpp_source.html#l00032">INetworkQuantizer.hpp:32</a></div></div>
<div class="ttc" id="classarmnn_1_1_network_quantizer_html_a8768a9dd173e985bfc0c72338662d631"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html#a8768a9dd173e985bfc0c72338662d631">armnn::NetworkQuantizer::ExportNetwork</a></div><div class="ttdeci">INetworkPtr ExportNetwork() override</div><div class="ttdoc">Extract final quantized network. </div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8cpp_source.html#l00136">NetworkQuantizer.cpp:136</a></div></div>
<div class="ttc" id="namespacearmnn_html"><div class="ttname"><a href="namespacearmnn.html">armnn</a></div><div class="ttdef"><b>Definition:</b> <a href="_backend_helper_8hpp_source.html#l00011">BackendHelper.hpp:11</a></div></div>
<div class="ttc" id="_types_8hpp_html"><div class="ttname"><a href="_types_8hpp.html">Types.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_html_ace74f6f9feb95a964a49d79458232703"><div class="ttname"><a href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a></div><div class="ttdeci">std::unique_ptr&lt; INetwork, void(*)(INetwork *network)&gt; INetworkPtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.html#l00085">INetwork.hpp:85</a></div></div>
<div class="ttc" id="_i_network_quantizer_8hpp_html"><div class="ttname"><a href="_i_network_quantizer_8hpp.html">INetworkQuantizer.hpp</a></div></div>
<div class="ttc" id="_optional_8hpp_html"><div class="ttname"><a href="_optional_8hpp.html">Optional.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_range_tracker_html_a507bae23f59e94b4161886ebe663cdf4"><div class="ttname"><a href="classarmnn_1_1_range_tracker.html#a507bae23f59e94b4161886ebe663cdf4">armnn::RangeTracker::GetRange</a></div><div class="ttdeci">MinMaxRange GetRange(LayerGuid guid, unsigned int idx) const</div><div class="ttdoc">Retrieve the Range for a particular output slot on a particular layer. </div><div class="ttdef"><b>Definition:</b> <a href="_range_tracker_8cpp_source.html#l00029">RangeTracker.cpp:29</a></div></div>
<div class="ttc" id="classarmnn_1_1_range_tracker_html"><div class="ttname"><a href="classarmnn_1_1_range_tracker.html">armnn::RangeTracker</a></div><div class="ttdef"><b>Definition:</b> <a href="_range_tracker_8hpp_source.html#l00017">RangeTracker.hpp:17</a></div></div>
<div class="ttc" id="classarmnn_1_1_network_quantizer_html"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html">armnn::NetworkQuantizer</a></div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8hpp_source.html#l00020">NetworkQuantizer.hpp:20</a></div></div>
<div class="ttc" id="_dynamic_quantization_visitor_8hpp_html"><div class="ttname"><a href="_dynamic_quantization_visitor_8hpp.html">DynamicQuantizationVisitor.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_network_quantizer_html_a0de9803a30020e30ec8c9c0ba8592dc6"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html#a0de9803a30020e30ec8c9c0ba8592dc6">armnn::NetworkQuantizer::OverrideInputRange</a></div><div class="ttdeci">void OverrideInputRange(LayerBindingId layerId, float min, float max) override</div><div class="ttdoc">Overrides the default quantization values for the input layer with the given id. </div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8cpp_source.html#l00050">NetworkQuantizer.cpp:50</a></div></div>
<div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_html_a6560146509197f3e197d8d36f76c1347"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.html#a6560146509197f3e197d8d36f76c1347">options</a></div><div class="ttdeci">armnn::Runtime::CreationOptions::ExternalProfilingOptions options</div><div class="ttdef"><b>Definition:</b> <a href="_file_only_profiling_decorator_tests_8cpp_source.html#l00045">FileOnlyProfilingDecoratorTests.cpp:45</a></div></div>
<div class="ttc" id="namespacearmnn_html_a83015160d8c67d5d77735eb0d4033d9a"><div class="ttname"><a href="namespacearmnn.html#a83015160d8c67d5d77735eb0d4033d9a">armnn::NetworkId</a></div><div class="ttdeci">int NetworkId</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.html#l00019">IRuntime.hpp:19</a></div></div>
<div class="ttc" id="namespacearmnn_html_a150468a02bd7b2d2d061c4aaaee939f0"><div class="ttname"><a href="namespacearmnn.html#a150468a02bd7b2d2d061c4aaaee939f0">armnn::IRuntimePtr</a></div><div class="ttdeci">std::unique_ptr&lt; IRuntime, void(*)(IRuntime *runtime)&gt; IRuntimePtr</div><div class="ttdef"><b>Definition:</b> <a href="_i_runtime_8hpp_source.html#l00024">IRuntime.hpp:24</a></div></div>
<div class="ttc" id="namespacearmnn_html_ab8cf8f9fb6792e654c2d8d8382f6f01b"><div class="ttname"><a href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a></div><div class="ttdeci">int LayerBindingId</div><div class="ttdoc">Type of identifiers for bindable layers (inputs, outputs). </div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00168">Types.hpp:168</a></div></div>
<div class="ttc" id="classarmnn_1_1_network_quantizer_html_a3618dd686c52c451000bea3e20931ac8"><div class="ttname"><a href="classarmnn_1_1_network_quantizer.html#a3618dd686c52c451000bea3e20931ac8">armnn::NetworkQuantizer::GetMinMaxRange</a></div><div class="ttdeci">std::pair&lt; float, float &gt; GetMinMaxRange(LayerGuid guid, unsigned int idx)</div><div class="ttdef"><b>Definition:</b> <a href="_network_quantizer_8hpp_source.html#l00034">NetworkQuantizer.hpp:34</a></div></div>
<div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_guid_html"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_guid.html">armnn::profiling::ProfilingGuid</a></div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00249">Types.hpp:249</a></div></div>
<div class="ttc" id="_i_network_8hpp_html"><div class="ttname"><a href="_i_network_8hpp.html">INetwork.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_quantizer_options_html"><div class="ttname"><a href="structarmnn_1_1_quantizer_options.html">armnn::QuantizerOptions</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_network_quantizer_8hpp_source.html#l00015">INetworkQuantizer.hpp:15</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e0a84d05c80a2ef4231141dcbbeac5c8.html">armnn</a></li><li class="navelem"><a class="el" href="_network_quantizer_8hpp.html">NetworkQuantizer.hpp</a></li>
<li class="footer">Generated on Fri Mar 13 2020 16:06:54 for ArmNN by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>