aboutsummaryrefslogtreecommitdiff
path: root/21.02/_tf_lite_parser_8hpp_source.xhtml
blob: ae8a66dc1ddce6e565483d710b66f2f45e95c4e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!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="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: src/armnnTfLiteParser/TfLiteParser.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>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.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;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">21.02</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('_tf_lite_parser_8hpp_source.xhtml','');});
</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">TfLiteParser.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_tf_lite_parser_8hpp.xhtml">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;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_network_8hpp.xhtml">armnn/INetwork.hpp</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_tf_lite_parser_8hpp.xhtml">armnnTfLiteParser/ITfLiteParser.hpp</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_types_8hpp.xhtml">armnn/Types.hpp</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;schema_generated.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn_tf_lite_parser.xhtml">armnnTfLiteParser</a></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</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"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">   19</a></span>&#160;<span class="keyword">class </span><a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">TfLiteParserImpl</a></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">// Shorthands for TfLite types</span></div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">   23</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> = std::unique_ptr&lt;tflite::ModelT&gt;;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a988cb5e216eb87d854414c6a0282eeb4">   24</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a988cb5e216eb87d854414c6a0282eeb4">SubgraphPtr</a> = std::unique_ptr&lt;tflite::SubGraphT&gt;;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aadad81a95152fe5aad839db352d4012c">   25</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aadad81a95152fe5aad839db352d4012c">OperatorPtr</a> = std::unique_ptr&lt;tflite::OperatorT&gt;;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab80edc19da7460a95a0ac05902f244b7">   26</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab80edc19da7460a95a0ac05902f244b7">OperatorCodePtr</a> = std::unique_ptr&lt;tflite::OperatorCodeT&gt;;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a4ab952e29d01028931f75f997ad7cbd4">   27</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a4ab952e29d01028931f75f997ad7cbd4">TensorPtr</a> = std::unique_ptr&lt;tflite::TensorT&gt;;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ac3486e6c1a291aa67efd8b280ffb83cc">   28</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ac3486e6c1a291aa67efd8b280ffb83cc">TensorRawPtr</a> = <span class="keyword">const</span> tflite::TensorT *;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abd8bee7fb9b86485a60bc7ee05114270">   29</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abd8bee7fb9b86485a60bc7ee05114270">TensorRawPtrVector</a> = std::vector&lt;TensorRawPtr&gt;;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a7553cea300edaeb5722990f99f042ef0">   30</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a7553cea300edaeb5722990f99f042ef0">TensorIdRawPtr</a> = std::pair&lt;size_t, TensorRawPtr&gt;;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a86428e0c674542488c7292dfbe2ce381">   31</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a86428e0c674542488c7292dfbe2ce381">TensorIdRawPtrVector</a> = std::vector&lt;TensorIdRawPtr&gt;;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab93d9fb8a272789623edfa0b214c40f9">   32</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab93d9fb8a272789623edfa0b214c40f9">BufferPtr</a> = std::unique_ptr&lt;tflite::BufferT&gt;;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaafbda6e6816876b3d7963cfe64dd2f8">   33</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaafbda6e6816876b3d7963cfe64dd2f8">BufferRawPtr</a> = <span class="keyword">const</span> tflite::BufferT *;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">    /// Create the network from a flatbuffers binary file on disk</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aed935c554e4f6a4e7b9dcde057d00877">CreateNetworkFromBinaryFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* graphFile);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment">    /// Create the network from a flatbuffers binary</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a32a96909bc8a8ee9076bd4d5c1028301">CreateNetworkFromBinary</a>(<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp; binaryContent);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">    /// Retrieve binding info (layer id and tensor info) for the network input identified by</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">    /// the given layer name and subgraph id</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn_tf_lite_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a913d452e7766210b59a69d3c658b2862">GetNetworkInputBindingInfo</a>(<span class="keywordtype">size_t</span> subgraphId,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                                                <span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">    /// Retrieve binding info (layer id and tensor info) for the network output identified by</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    /// the given layer name and subgraph id</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn_tf_lite_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a59139faede3a07a43c4c8f86bb03dc43">GetNetworkOutputBindingInfo</a>(<span class="keywordtype">size_t</span> subgraphId,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                                         <span class="keyword">const</span> std::string&amp; name) <span class="keyword">const</span>;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">    /// Return the number of subgraphs in the parsed model</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment"></span>    <span class="keywordtype">size_t</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a1b7aed8466cc5792966d271a65285d0e">GetSubgraphCount</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">    /// Return the input tensor names for a given subgraph</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment"></span>    std::vector&lt;std::string&gt; <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#afe1ea028d8fcb9942c204d4415ff3319">GetSubgraphInputTensorNames</a>(<span class="keywordtype">size_t</span> subgraphId) <span class="keyword">const</span>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">    /// Return the output tensor names for a given subgraph</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment"></span>    std::vector&lt;std::string&gt; <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a949070abe70fabe18cc1eb29d5853f47">GetSubgraphOutputTensorNames</a>(<span class="keywordtype">size_t</span> subgraphId) <span class="keyword">const</span>;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ad9199a42f5fae611db182fb4c31a11df">TfLiteParserImpl</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;ITfLiteParser::TfLiteParserOptions&gt;</a>&amp; options = <a class="code" href="structarmnn_1_1_empty_optional.xhtml">armnn::EmptyOptional</a>());</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaccd84a6cf2f9bdd77f833e4b65ffd42">~TfLiteParserImpl</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="comment">// testable helpers</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#af9590c2ae8d68b5da999d3d6ab21dd3b">LoadModelFromFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * fileName);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a7f3fc56b7306b444f06f45cdc4032bbf">LoadModelFromBinary</a>(<span class="keyword">const</span> uint8_t * binaryContent, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abd8bee7fb9b86485a60bc7ee05114270">TensorRawPtrVector</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a342a58ab95b91af13b24dd4bdc7e09bb">GetInputs</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> &amp; model, <span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abd8bee7fb9b86485a60bc7ee05114270">TensorRawPtrVector</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a279d0891900c191d5a0139e5c11fe488">GetOutputs</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> &amp; model, <span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a86428e0c674542488c7292dfbe2ce381">TensorIdRawPtrVector</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a20518e431cb501b172371b850e6c3ec7">GetSubgraphInputs</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> &amp; model, <span class="keywordtype">size_t</span> subgraphIndex);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a86428e0c674542488c7292dfbe2ce381">TensorIdRawPtrVector</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a1bd7b663eb19e2355b6aa5c36232d6fc">GetSubgraphOutputs</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a> &amp; model, <span class="keywordtype">size_t</span> subgraphIndex);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">static</span> std::vector&lt;int32_t&gt;&amp; <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a8b4b0b88a5e79a88b8b60db76398f575">GetInputTensorIds</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a>&amp; model, <span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">static</span> std::vector&lt;int32_t&gt;&amp; <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#afe6c475f92d02dd1eb12acd746e4736f">GetOutputTensorIds</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a>&amp; model, <span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaafbda6e6816876b3d7963cfe64dd2f8">BufferRawPtr</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a720f0206e377dd1808acc94b3b12c538">GetBuffer</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a>&amp; model, <span class="keywordtype">size_t</span> bufferIndex);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aa0a90d432c9c41f9846f41f11c9e54c9">OutputShapeOfSqueeze</a>(<span class="keyword">const</span> std::vector&lt;uint32_t&gt; &amp; squeezeDims,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                                  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp; inputTensorInfo);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">static</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaebfa9a01a0bb8a0935114ff0140cc45">OutputShapeOfReshape</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp; inputTensorInfo,</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                                                  <span class="keyword">const</span> std::vector&lt;int32_t&gt; &amp; targetDimsIn);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">    /// Retrieve version in X.Y.Z form</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"></span>    <span class="keyword">static</span> <span class="keyword">const</span> std::string <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aa09a8bb02eed50715082d8b7fccd2f8d">GetVersion</a>();</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">// No copying allowed until it is wanted and properly implemented</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ad9199a42f5fae611db182fb4c31a11df">TfLiteParserImpl</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">TfLiteParserImpl</a> &amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">TfLiteParserImpl</a> &amp; operator=(<span class="keyword">const</span> <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">TfLiteParserImpl</a> &amp;) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">    /// Create the network from an already loaded flatbuffers model</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a> CreateNetworkFromModel();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">// signature for the parser functions</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keyword">using</span> OperatorParsingFunction = void(<a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">TfLiteParserImpl</a>::*)(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordtype">void</span> ParseCustomOperator(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">void</span> ParseUnsupportedOperator(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">void</span> ParseActivation(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex, <a class="code" href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9ea">armnn::ActivationFunction</a> activationType);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordtype">void</span> ParseAdd(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">void</span> ParseAveragePool2D(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">void</span> ParseBatchToSpaceND(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">void</span> ParseConcatenation(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> ParseConv2D(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">void</span> ParseDepthToSpace(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">void</span> ParseDepthwiseConv2D(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> ParseDequantize(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span> ParseDetectionPostProcess(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span> ParseElu(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">void</span> ParseExp(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> ParseFullyConnected(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span> ParseGather(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span> ParseHardSwish(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span> ParseLeakyRelu(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">void</span> ParseLogistic(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span> ParseL2Normalization(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span> ParseMaxPool2D(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">void</span> ParseMaximum(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">void</span> ParseMean(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordtype">void</span> ParseMinimum(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordtype">void</span> ParseMul(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">void</span> ParseNeg(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span> ParsePack(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span> ParsePad(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">void</span> ParsePool(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex, <a class="code" href="namespacearmnn.xhtml#a961bbfe1db71a848eff5a1f0ab775718">armnn::PoolingAlgorithm</a> algorithm);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">void</span> ParseQuantize(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">void</span> ParseReduce(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex, <a class="code" href="namespacearmnn.xhtml#abc05539fc6e7907f32ef0fb242e3b3b0">armnn::ReduceOperation</a> reduceOperation);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span> ParseReduceMax(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">void</span> ParseReduceMin(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span> ParseRelu(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">void</span> ParseRelu6(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">void</span> ParseReshape(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">void</span> ParseResize(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex, <a class="code" href="namespacearmnn.xhtml#a9a2af2f8c4af4f9efa8e79417d505ac4">armnn::ResizeMethod</a> resizeMethod);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span> ParseResizeBilinear(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">void</span> ParseResizeNearestNeighbor(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">void</span> ParseSlice(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">void</span> ParseSoftmax(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span> ParseSpaceToBatchND(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">void</span> ParseSplit(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span> ParseSplitV(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> ParseSqueeze(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">void</span> ParseStridedSlice(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">void</span> ParseSub(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordtype">void</span> ParseSum(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">void</span> ParseDiv(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span> ParseTanH(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span> ParseTranspose(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">void</span> ParseTransposeConv(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordtype">void</span> ParseUnpack(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">void</span> ParseArgMax(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> operatorIndex);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span> RegisterProducerOfTensor(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> tensorIndex, <a class="code" href="classarmnn_1_1_i_output_slot.xhtml">armnn::IOutputSlot</a>* slot);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span> RegisterConsumerOfTensor(<span class="keywordtype">size_t</span> subgraphIndex, <span class="keywordtype">size_t</span> tensorIndex, <a class="code" href="classarmnn_1_1_i_input_slot.xhtml">armnn::IInputSlot</a>* slot);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">void</span> RegisterInputSlots(<span class="keywordtype">size_t</span> subgraphIndex,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                            <span class="keywordtype">size_t</span> operatorIndex,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                            <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* layer,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                            <span class="keyword">const</span> std::vector&lt;unsigned int&gt;&amp; tensorIndexes);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordtype">void</span> RegisterOutputSlots(<span class="keywordtype">size_t</span> subgraphIndex,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                             <span class="keywordtype">size_t</span> operatorIndex,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                             <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* layer,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                             <span class="keyword">const</span> std::vector&lt;unsigned int&gt;&amp; tensorIndexes);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">void</span> SetupInputLayers(<span class="keywordtype">size_t</span> subgraphIndex);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">void</span> SetupOutputLayers(<span class="keywordtype">size_t</span> subgraphIndex);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordtype">void</span> SetupConstantLayers(<span class="keywordtype">size_t</span> subgraphIndex);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> ResetParser();</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">void</span> AddBroadcastReshapeLayer(<span class="keywordtype">size_t</span> subgraphIndex,</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                                  <span class="keywordtype">size_t</span> operatorIndex,</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                                  <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* layer);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">    /// Attach an activation layer to the one passed as a parameter</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment"></span>    <a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* AddFusedActivationLayer(<a class="code" href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a>* layer,</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                                                      <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outputSlot,</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                                                      tflite::ActivationFunctionType activationType);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="comment">// SupportedDataStorage&#39;s purpose is to hold data till we pass over to the network.</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">// We don&#39;t care about the content, and we want a single datatype to simplify the code.</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keyword">struct </span>SupportedDataStorage</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="comment">// Convenience constructors</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        SupportedDataStorage(std::unique_ptr&lt;<span class="keywordtype">float</span>[]&gt;&amp;&amp;   data);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        SupportedDataStorage(std::unique_ptr&lt;uint8_t[]&gt;&amp;&amp; data);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        SupportedDataStorage(std::unique_ptr&lt;int8_t[]&gt;&amp;&amp;  data);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        SupportedDataStorage(std::unique_ptr&lt;int32_t[]&gt;&amp;&amp; data);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">// Pointers to the data buffers</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        std::unique_ptr&lt;float[]&gt;   m_FloatData;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        std::unique_ptr&lt;uint8_t[]&gt; m_Uint8Data;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        std::unique_ptr&lt;int8_t[]&gt;  m_Int8Data;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        std::unique_ptr&lt;int32_t[]&gt; m_Int32Data;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    };</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    std::pair&lt;armnn::ConstTensor, TfLiteParserImpl::SupportedDataStorage&gt;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    CreateConstTensorAndStoreData(<a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaafbda6e6816876b3d7963cfe64dd2f8">TfLiteParserImpl::BufferRawPtr</a> bufferPtr,</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                                  <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ac3486e6c1a291aa67efd8b280ffb83cc">TfLiteParserImpl::TensorRawPtr</a> tensorPtr,</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                                  <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&amp; tensorInfo,</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                                  <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;armnn::PermutationVector&amp;&gt;</a> permutationVector);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    std::pair&lt;armnn::ConstTensor, SupportedDataStorage&gt;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    CreateConstTensor(<a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ac3486e6c1a291aa67efd8b280ffb83cc">TensorRawPtr</a> tensorPtr,</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                      <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&amp; tensorInfo,</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                      <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;armnn::PermutationVector&amp;&gt;</a> permutationVector);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="comment">// Settings for configuring the TfLiteParser</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;ITfLiteParser::TfLiteParserOptions&gt;</a> m_Options;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">    /// The network we&#39;re building. Gets cleared after it is passed to the user</span></div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment"></span>    <a class="code" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>                    m_Network;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <a class="code" href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">ModelPtr</a>                              m_Model;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    std::vector&lt;OperatorParsingFunction&gt;                     m_ParserFunctions;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    std::unordered_map&lt;std::string, OperatorParsingFunction&gt; m_CustomParserFunctions;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">    /// A mapping of an output slot to each of the input slots it should be connected to</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">    /// The outputSlot is from the layer that creates this tensor as one of its ouputs</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">    /// The inputSlots are from the layers that use this tensor as one of their inputs</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment"></span>    <span class="keyword">struct </span>TensorSlots</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    {</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <a class="code" href="classarmnn_1_1_i_output_slot.xhtml">armnn::IOutputSlot</a>* outputSlot;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        std::vector&lt;armnn::IInputSlot*&gt; inputSlots;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        TensorSlots() : outputSlot(nullptr) { }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    };</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keyword">typedef</span> std::vector&lt;TensorSlots&gt; TensorConnections;<span class="comment"></span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment">    /// Connections for tensors in each subgraph</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment">    /// The first index is the subgraph ID, the second index is the tensor ID</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment"></span>    std::vector&lt;TensorConnections&gt; m_SubgraphConnections;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">    /// This is used in case that the model does not speciry the output.</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">    /// The shape can be calculated from the options.</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment"></span>    std::vector&lt;std::vector&lt;unsigned int&gt;&gt; m_OverridenOutputShapes;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;}</div><div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a4ab952e29d01028931f75f997ad7cbd4"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a4ab952e29d01028931f75f997ad7cbd4">armnnTfLiteParser::TfLiteParserImpl::TensorPtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::TensorT &gt; TensorPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00027">TfLiteParser.hpp:27</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_abfc86471394295357a23b3addd0b5b1c"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abfc86471394295357a23b3addd0b5b1c">armnnTfLiteParser::TfLiteParserImpl::ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::ModelT &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00023">TfLiteParser.hpp:23</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a1bd7b663eb19e2355b6aa5c36232d6fc"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a1bd7b663eb19e2355b6aa5c36232d6fc">armnnTfLiteParser::TfLiteParserImpl::GetSubgraphOutputs</a></div><div class="ttdeci">static TensorIdRawPtrVector GetSubgraphOutputs(const ModelPtr &amp;model, size_t subgraphIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03299">TfLiteParser.cpp:3299</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_connectable_layer_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.xhtml">armnn::IConnectableLayer</a></div><div class="ttdoc">Interface for a layer that is connectable to other layers via InputSlots and OutputSlots. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00062">INetwork.hpp:62</a></div></div>
<div class="ttc" id="classarmnn_1_1_optional_xhtml"><div class="ttname"><a href="classarmnn_1_1_optional.xhtml">armnn::Optional</a></div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00270">Optional.hpp:270</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_ac3486e6c1a291aa67efd8b280ffb83cc"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ac3486e6c1a291aa67efd8b280ffb83cc">armnnTfLiteParser::TfLiteParserImpl::TensorRawPtr</a></div><div class="ttdeci">const tflite::TensorT * TensorRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00028">TfLiteParser.hpp:28</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aaafbda6e6816876b3d7963cfe64dd2f8"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaafbda6e6816876b3d7963cfe64dd2f8">armnnTfLiteParser::TfLiteParserImpl::BufferRawPtr</a></div><div class="ttdeci">const tflite::BufferT * BufferRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00033">TfLiteParser.hpp:33</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00152">Tensor.hpp:152</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a59139faede3a07a43c4c8f86bb03dc43"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a59139faede3a07a43c4c8f86bb03dc43">armnnTfLiteParser::TfLiteParserImpl::GetNetworkOutputBindingInfo</a></div><div class="ttdeci">BindingPointInfo GetNetworkOutputBindingInfo(size_t subgraphId, const std::string &amp;name) const</div><div class="ttdoc">Retrieve binding info (layer id and tensor info) for the network output identified by the given layer...</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03560">TfLiteParser.cpp:3560</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a949070abe70fabe18cc1eb29d5853f47"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a949070abe70fabe18cc1eb29d5853f47">armnnTfLiteParser::TfLiteParserImpl::GetSubgraphOutputTensorNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; GetSubgraphOutputTensorNames(size_t subgraphId) const</div><div class="ttdoc">Return the output tensor names for a given subgraph. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03610">TfLiteParser.cpp:3610</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aaccd84a6cf2f9bdd77f833e4b65ffd42"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaccd84a6cf2f9bdd77f833e4b65ffd42">armnnTfLiteParser::TfLiteParserImpl::~TfLiteParserImpl</a></div><div class="ttdeci">~TfLiteParserImpl()=default</div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aadad81a95152fe5aad839db352d4012c"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aadad81a95152fe5aad839db352d4012c">armnnTfLiteParser::TfLiteParserImpl::OperatorPtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::OperatorT &gt; OperatorPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00025">TfLiteParser.hpp:25</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml">armnnTfLiteParser::TfLiteParserImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00019">TfLiteParser.hpp:19</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aaebfa9a01a0bb8a0935114ff0140cc45"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aaebfa9a01a0bb8a0935114ff0140cc45">armnnTfLiteParser::TfLiteParserImpl::OutputShapeOfReshape</a></div><div class="ttdeci">static armnn::TensorInfo OutputShapeOfReshape(const armnn::TensorInfo &amp;inputTensorInfo, const std::vector&lt; int32_t &gt; &amp;targetDimsIn)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l02112">TfLiteParser.cpp:2112</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a961bbfe1db71a848eff5a1f0ab775718"><div class="ttname"><a href="namespacearmnn.xhtml#a961bbfe1db71a848eff5a1f0ab775718">armnn::PoolingAlgorithm</a></div><div class="ttdeci">PoolingAlgorithm</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00104">Types.hpp:104</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_ad9199a42f5fae611db182fb4c31a11df"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ad9199a42f5fae611db182fb4c31a11df">armnnTfLiteParser::TfLiteParserImpl::TfLiteParserImpl</a></div><div class="ttdeci">TfLiteParserImpl(const armnn::Optional&lt; ITfLiteParser::TfLiteParserOptions &gt; &amp;options=armnn::EmptyOptional())</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l00600">TfLiteParser.cpp:600</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_ab93d9fb8a272789623edfa0b214c40f9"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab93d9fb8a272789623edfa0b214c40f9">armnnTfLiteParser::TfLiteParserImpl::BufferPtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::BufferT &gt; BufferPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00032">TfLiteParser.hpp:32</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a32a96909bc8a8ee9076bd4d5c1028301"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a32a96909bc8a8ee9076bd4d5c1028301">armnnTfLiteParser::TfLiteParserImpl::CreateNetworkFromBinary</a></div><div class="ttdeci">armnn::INetworkPtr CreateNetworkFromBinary(const std::vector&lt; uint8_t &gt; &amp;binaryContent)</div><div class="ttdoc">Create the network from a flatbuffers binary. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l00672">TfLiteParser.cpp:672</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a720f0206e377dd1808acc94b3b12c538"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a720f0206e377dd1808acc94b3b12c538">armnnTfLiteParser::TfLiteParserImpl::GetBuffer</a></div><div class="ttdeci">static BufferRawPtr GetBuffer(const ModelPtr &amp;model, size_t bufferIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03462">TfLiteParser.cpp:3462</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aed935c554e4f6a4e7b9dcde057d00877"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aed935c554e4f6a4e7b9dcde057d00877">armnnTfLiteParser::TfLiteParserImpl::CreateNetworkFromBinaryFile</a></div><div class="ttdeci">armnn::INetworkPtr CreateNetworkFromBinaryFile(const char *graphFile)</div><div class="ttdoc">Create the network from a flatbuffers binary file on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l00665">TfLiteParser.cpp:665</a></div></div>
<div class="ttc" id="_i_tf_lite_parser_8hpp_xhtml"><div class="ttname"><a href="_i_tf_lite_parser_8hpp.xhtml">ITfLiteParser.hpp</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_ab80edc19da7460a95a0ac05902f244b7"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#ab80edc19da7460a95a0ac05902f244b7">armnnTfLiteParser::TfLiteParserImpl::OperatorCodePtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::OperatorCodeT &gt; OperatorCodePtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00026">TfLiteParser.hpp:26</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_abc05539fc6e7907f32ef0fb242e3b3b0"><div class="ttname"><a href="namespacearmnn.xhtml#abc05539fc6e7907f32ef0fb242e3b3b0">armnn::ReduceOperation</a></div><div class="ttdeci">ReduceOperation</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00111">Types.hpp:111</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a913d452e7766210b59a69d3c658b2862"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a913d452e7766210b59a69d3c658b2862">armnnTfLiteParser::TfLiteParserImpl::GetNetworkInputBindingInfo</a></div><div class="ttdeci">BindingPointInfo GetNetworkInputBindingInfo(size_t subgraphId, const std::string &amp;name) const</div><div class="ttdoc">Retrieve binding info (layer id and tensor info) for the network input identified by the given layer ...</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03531">TfLiteParser.cpp:3531</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a7f3fc56b7306b444f06f45cdc4032bbf"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a7f3fc56b7306b444f06f45cdc4032bbf">armnnTfLiteParser::TfLiteParserImpl::LoadModelFromBinary</a></div><div class="ttdeci">static ModelPtr LoadModelFromBinary(const uint8_t *binaryContent, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03224">TfLiteParser.cpp:3224</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aa0a90d432c9c41f9846f41f11c9e54c9"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aa0a90d432c9c41f9846f41f11c9e54c9">armnnTfLiteParser::TfLiteParserImpl::OutputShapeOfSqueeze</a></div><div class="ttdeci">static armnn::TensorInfo OutputShapeOfSqueeze(const std::vector&lt; uint32_t &gt; &amp;squeezeDims, const armnn::TensorInfo &amp;inputTensorInfo)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l01598">TfLiteParser.cpp:1598</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a86428e0c674542488c7292dfbe2ce381"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a86428e0c674542488c7292dfbe2ce381">armnnTfLiteParser::TfLiteParserImpl::TensorIdRawPtrVector</a></div><div class="ttdeci">std::vector&lt; TensorIdRawPtr &gt; TensorIdRawPtrVector</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00031">TfLiteParser.hpp:31</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a8b4b0b88a5e79a88b8b60db76398f575"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a8b4b0b88a5e79a88b8b60db76398f575">armnnTfLiteParser::TfLiteParserImpl::GetInputTensorIds</a></div><div class="ttdeci">static std::vector&lt; int32_t &gt; &amp; GetInputTensorIds(const ModelPtr &amp;model, size_t subgraphIndex, size_t operatorIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03315">TfLiteParser.cpp:3315</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml">armnn::IOutputSlot</a></div><div class="ttdoc">An output connection slot for a layer. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00038">INetwork.hpp:38</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_aa09a8bb02eed50715082d8b7fccd2f8d"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#aa09a8bb02eed50715082d8b7fccd2f8d">armnnTfLiteParser::TfLiteParserImpl::GetVersion</a></div><div class="ttdeci">static const std::string GetVersion()</div><div class="ttdoc">Retrieve version in X.Y.Z form. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03623">TfLiteParser.cpp:3623</a></div></div>
<div class="ttc" id="_types_8hpp_xhtml"><div class="ttname"><a href="_types_8hpp.xhtml">Types.hpp</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_af9590c2ae8d68b5da999d3d6ab21dd3b"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#af9590c2ae8d68b5da999d3d6ab21dd3b">armnnTfLiteParser::TfLiteParserImpl::LoadModelFromFile</a></div><div class="ttdeci">static ModelPtr LoadModelFromFile(const char *fileName)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03200">TfLiteParser.cpp:3200</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_abd8bee7fb9b86485a60bc7ee05114270"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#abd8bee7fb9b86485a60bc7ee05114270">armnnTfLiteParser::TfLiteParserImpl::TensorRawPtrVector</a></div><div class="ttdeci">std::vector&lt; TensorRawPtr &gt; TensorRawPtrVector</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00029">TfLiteParser.hpp:29</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a1b7aed8466cc5792966d271a65285d0e"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a1b7aed8466cc5792966d271a65285d0e">armnnTfLiteParser::TfLiteParserImpl::GetSubgraphCount</a></div><div class="ttdeci">size_t GetSubgraphCount() const</div><div class="ttdoc">Return the number of subgraphs in the parsed model. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03592">TfLiteParser.cpp:3592</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a7553cea300edaeb5722990f99f042ef0"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a7553cea300edaeb5722990f99f042ef0">armnnTfLiteParser::TfLiteParserImpl::TensorIdRawPtr</a></div><div class="ttdeci">std::pair&lt; size_t, TensorRawPtr &gt; TensorIdRawPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00030">TfLiteParser.hpp:30</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a988cb5e216eb87d854414c6a0282eeb4"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a988cb5e216eb87d854414c6a0282eeb4">armnnTfLiteParser::TfLiteParserImpl::SubgraphPtr</a></div><div class="ttdeci">std::unique_ptr&lt; tflite::SubGraphT &gt; SubgraphPtr</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8hpp_source.xhtml#l00024">TfLiteParser.hpp:24</a></div></div>
<div class="ttc" id="_i_network_8hpp_xhtml"><div class="ttname"><a href="_i_network_8hpp.xhtml">INetwork.hpp</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a20518e431cb501b172371b850e6c3ec7"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a20518e431cb501b172371b850e6c3ec7">armnnTfLiteParser::TfLiteParserImpl::GetSubgraphInputs</a></div><div class="ttdeci">static TensorIdRawPtrVector GetSubgraphInputs(const ModelPtr &amp;model, size_t subgraphIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03282">TfLiteParser.cpp:3282</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a342a58ab95b91af13b24dd4bdc7e09bb"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a342a58ab95b91af13b24dd4bdc7e09bb">armnnTfLiteParser::TfLiteParserImpl::GetInputs</a></div><div class="ttdeci">static TensorRawPtrVector GetInputs(const ModelPtr &amp;model, size_t subgraphIndex, size_t operatorIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03243">TfLiteParser.cpp:3243</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_a279d0891900c191d5a0139e5c11fe488"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#a279d0891900c191d5a0139e5c11fe488">armnnTfLiteParser::TfLiteParserImpl::GetOutputs</a></div><div class="ttdeci">static TensorRawPtrVector GetOutputs(const ModelPtr &amp;model, size_t subgraphIndex, size_t operatorIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03262">TfLiteParser.cpp:3262</a></div></div>
<div class="ttc" id="structarmnn_1_1_empty_optional_xhtml"><div class="ttname"><a href="structarmnn_1_1_empty_optional.xhtml">armnn::EmptyOptional</a></div><div class="ttdoc">EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...</div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00032">Optional.hpp:32</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_afe6c475f92d02dd1eb12acd746e4736f"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#afe6c475f92d02dd1eb12acd746e4736f">armnnTfLiteParser::TfLiteParserImpl::GetOutputTensorIds</a></div><div class="ttdeci">static std::vector&lt; int32_t &gt; &amp; GetOutputTensorIds(const ModelPtr &amp;model, size_t subgraphIndex, size_t operatorIndex)</div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03325">TfLiteParser.cpp:3325</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a9a2af2f8c4af4f9efa8e79417d505ac4"><div class="ttname"><a href="namespacearmnn.xhtml#a9a2af2f8c4af4f9efa8e79417d505ac4">armnn::ResizeMethod</a></div><div class="ttdeci">ResizeMethod</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00119">Types.hpp:119</a></div></div>
<div class="ttc" id="namespacearmnn_tf_lite_parser_xhtml_a9084adbf804022c874039ad40d1939e9"><div class="ttname"><a href="namespacearmnn_tf_lite_parser.xhtml#a9084adbf804022c874039ad40d1939e9">armnnTfLiteParser::BindingPointInfo</a></div><div class="ttdeci">armnn::BindingPointInfo BindingPointInfo</div><div class="ttdef"><b>Definition:</b> <a href="_i_tf_lite_parser_8hpp_source.xhtml#l00020">ITfLiteParser.hpp:20</a></div></div>
<div class="ttc" id="namespacearmnn_tf_lite_parser_xhtml"><div class="ttname"><a href="namespacearmnn_tf_lite_parser.xhtml">armnnTfLiteParser</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_tf_lite_parser_8hpp_source.xhtml#l00017">ITfLiteParser.hpp:17</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_ace74f6f9feb95a964a49d79458232703"><div class="ttname"><a href="namespacearmnn.xhtml#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.xhtml#l00173">INetwork.hpp:173</a></div></div>
<div class="ttc" id="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl_xhtml_afe1ea028d8fcb9942c204d4415ff3319"><div class="ttname"><a href="classarmnn_tf_lite_parser_1_1_tf_lite_parser_impl.xhtml#afe1ea028d8fcb9942c204d4415ff3319">armnnTfLiteParser::TfLiteParserImpl::GetSubgraphInputTensorNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; GetSubgraphInputTensorNames(size_t subgraphId) const</div><div class="ttdoc">Return the input tensor names for a given subgraph. </div><div class="ttdef"><b>Definition:</b> <a href="_tf_lite_parser_8cpp_source.xhtml#l03597">TfLiteParser.cpp:3597</a></div></div>
<div class="ttc" id="classarmnn_1_1_i_input_slot_xhtml"><div class="ttname"><a href="classarmnn_1_1_i_input_slot.xhtml">armnn::IInputSlot</a></div><div class="ttdoc">An input connection slot for a layer. </div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.xhtml#l00025">INetwork.hpp:25</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a56297e0f7b215eea46c818cb7528d9ea"><div class="ttname"><a href="namespacearmnn.xhtml#a56297e0f7b215eea46c818cb7528d9ea">armnn::ActivationFunction</a></div><div class="ttdeci">ActivationFunction</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00056">Types.hpp:56</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.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_510324e450b9df55f9aac2d01fae83d8.xhtml">armnnTfLiteParser</a></li><li class="navelem"><a class="el" href="_tf_lite_parser_8hpp.xhtml">TfLiteParser.hpp</a></li>
    <li class="footer">Generated on Fri Mar 19 2021 15:26:00 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>