blob: 1f7184738489eef0b1e2387ab3649e92a24a21f3 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: OnnxParser Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('classarmnn_onnx_parser_1_1_onnx_parser.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#nested-classes">Classes</a> &#124;
85<a href="#pub-types">Public Types</a> &#124;
86<a href="#pub-methods">Public Member Functions</a> &#124;
87<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
88<a href="classarmnn_onnx_parser_1_1_onnx_parser-members.html">List of all members</a> </div>
89 <div class="headertitle">
90<div class="title">OnnxParser Class Reference</div> </div>
91</div><!--header-->
92<div class="contents">
93
94<p><code>#include &lt;<a class="el" href="_onnx_parser_8hpp_source.html">OnnxParser.hpp</a>&gt;</code></p>
95<div class="dynheader">
96Inheritance diagram for OnnxParser:</div>
97<div class="dyncontent">
98 <div class="center">
99 <img src="classarmnn_onnx_parser_1_1_onnx_parser.png" usemap="#OnnxParser_map" alt=""/>
100 <map id="OnnxParser_map" name="OnnxParser_map">
101<area href="classarmnn_onnx_parser_1_1_i_onnx_parser.html" alt="IOnnxParser" shape="rect" coords="0,0,83,24"/>
102</map>
103 </div></div>
104<table class="memberdecls">
105<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
106Public Types</h2></td></tr>
107<tr class="memitem:ac81510b21cb2b5719cce34474ad01675"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#ac81510b21cb2b5719cce34474ad01675">GraphPtr</a> = std::unique_ptr&lt; onnx::GraphProto &gt;</td></tr>
108<tr class="separator:ac81510b21cb2b5719cce34474ad01675"><td class="memSeparator" colspan="2">&#160;</td></tr>
109</table><table class="memberdecls">
110<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
111Public Member Functions</h2></td></tr>
112<tr class="memitem:a012b24cafd443425314d4f9e06cec6c1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a012b24cafd443425314d4f9e06cec6c1">CreateNetworkFromBinaryFile</a> (const char *graphFile) override</td></tr>
113<tr class="memdesc:a012b24cafd443425314d4f9e06cec6c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the network from a protobuf binary file on disk. <a href="#a012b24cafd443425314d4f9e06cec6c1">More...</a><br /></td></tr>
114<tr class="separator:a012b24cafd443425314d4f9e06cec6c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:a08bac41eb476686564b15063edf1fc04"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a08bac41eb476686564b15063edf1fc04">CreateNetworkFromTextFile</a> (const char *graphFile) override</td></tr>
116<tr class="memdesc:a08bac41eb476686564b15063edf1fc04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the network from a protobuf text file on disk. <a href="#a08bac41eb476686564b15063edf1fc04">More...</a><br /></td></tr>
117<tr class="separator:a08bac41eb476686564b15063edf1fc04"><td class="memSeparator" colspan="2">&#160;</td></tr>
118<tr class="memitem:a4cb67bfbe630abf10787ac613d1a31c5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a4cb67bfbe630abf10787ac613d1a31c5">CreateNetworkFromString</a> (const std::string &amp;protoText) override</td></tr>
119<tr class="memdesc:a4cb67bfbe630abf10787ac613d1a31c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the network directly from protobuf text in a string. Useful for debugging/testing. <a href="#a4cb67bfbe630abf10787ac613d1a31c5">More...</a><br /></td></tr>
120<tr class="separator:a4cb67bfbe630abf10787ac613d1a31c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_onnx_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#aba39201ebaeb0738f15a14b3c8da1f5a">GetNetworkInputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
122<tr class="memdesc:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name. <a href="#aba39201ebaeb0738f15a14b3c8da1f5a">More...</a><br /></td></tr>
123<tr class="separator:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
124<tr class="memitem:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_onnx_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#aee8c8fa7de3c87392791d9f8dd90655f">GetNetworkOutputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
125<tr class="memdesc:aee8c8fa7de3c87392791d9f8dd90655f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name. <a href="#aee8c8fa7de3c87392791d9f8dd90655f">More...</a><br /></td></tr>
126<tr class="separator:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:a1623e04cb9035d7b589eee3611f623fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a1623e04cb9035d7b589eee3611f623fe">OnnxParser</a> ()</td></tr>
128<tr class="separator:a1623e04cb9035d7b589eee3611f623fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a74e612d0e7242695de575fb44e7f0762"><td class="memTemplParams" colspan="2">template&lt;typename TypePair , typename Location &gt; </td></tr>
130<tr class="memitem:a74e612d0e7242695de575fb44e7f0762"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a74e612d0e7242695de575fb44e7f0762">ValidateInputs</a> (const onnx::NodeProto &amp;node, TypePair validInputs, const Location &amp;location)</td></tr>
131<tr class="separator:a74e612d0e7242695de575fb44e7f0762"><td class="memSeparator" colspan="2">&#160;</td></tr>
132</table><table class="memberdecls">
133<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
134Static Public Member Functions</h2></td></tr>
135<tr class="memitem:acf9c6119ceb99755bc1f86c5a325c796"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#acf9c6119ceb99755bc1f86c5a325c796">LoadModelFromBinaryFile</a> (const char *fileName)</td></tr>
136<tr class="separator:acf9c6119ceb99755bc1f86c5a325c796"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:a975a79b9b35d51ea81c42c05d245e7c0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a975a79b9b35d51ea81c42c05d245e7c0">LoadModelFromTextFile</a> (const char *fileName)</td></tr>
138<tr class="separator:a975a79b9b35d51ea81c42c05d245e7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:a181f87cf45fdc9f040a41c985ce7f8cd"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a181f87cf45fdc9f040a41c985ce7f8cd">LoadModelFromString</a> (const std::string &amp;inputString)</td></tr>
140<tr class="separator:a181f87cf45fdc9f040a41c985ce7f8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:a7cf8b801043e1eccd5e6db1325eaa4fe"><td class="memItemLeft" align="right" valign="top">static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a7cf8b801043e1eccd5e6db1325eaa4fe">GetInputs</a> (<a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;model)</td></tr>
142<tr class="memdesc:a7cf8b801043e1eccd5e6db1325eaa4fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve inputs names. <a href="#a7cf8b801043e1eccd5e6db1325eaa4fe">More...</a><br /></td></tr>
143<tr class="separator:a7cf8b801043e1eccd5e6db1325eaa4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
144<tr class="memitem:ad116319e33228bc23ec505887d3eee4d"><td class="memItemLeft" align="right" valign="top">static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#ad116319e33228bc23ec505887d3eee4d">GetOutputs</a> (<a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;model)</td></tr>
145<tr class="memdesc:ad116319e33228bc23ec505887d3eee4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve outputs names. <a href="#ad116319e33228bc23ec505887d3eee4d">More...</a><br /></td></tr>
146<tr class="separator:ad116319e33228bc23ec505887d3eee4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="inherit_header pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html">IOnnxParser</a></td></tr>
148<tr class="memitem:a1ae1d4dfe89d26b84d371439d6815bfb inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html">IOnnxParser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a1ae1d4dfe89d26b84d371439d6815bfb">CreateRaw</a> ()</td></tr>
149<tr class="separator:a1ae1d4dfe89d26b84d371439d6815bfb inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
150<tr class="memitem:af9b9254fb8a084f0db4f7deff0498b20 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.html#ac7dfccab29feeb5f33f1ec0183c1e123">IOnnxParserPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#af9b9254fb8a084f0db4f7deff0498b20">Create</a> ()</td></tr>
151<tr class="separator:af9b9254fb8a084f0db4f7deff0498b20 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
152<tr class="memitem:a793da4fa60bf13f128c20d8def32c291 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a793da4fa60bf13f128c20d8def32c291">Destroy</a> (<a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html">IOnnxParser</a> *parser)</td></tr>
153<tr class="separator:a793da4fa60bf13f128c20d8def32c291 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
154</table><table class="memberdecls">
155<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
156Additional Inherited Members</h2></td></tr>
157<tr class="inherit_header pro_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_onnx_parser_1_1_i_onnx_parser')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html">IOnnxParser</a></td></tr>
158<tr class="memitem:a722949b1ae5d20dce7e8c5004c9a248b inherit pro_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a722949b1ae5d20dce7e8c5004c9a248b">~IOnnxParser</a> ()</td></tr>
159<tr class="separator:a722949b1ae5d20dce7e8c5004c9a248b inherit pro_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
160</table>
161<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
162<div class="textblock">
163<p class="definition">Definition at line <a class="el" href="_onnx_parser_8hpp_source.html#l00025">25</a> of file <a class="el" href="_onnx_parser_8hpp_source.html">OnnxParser.hpp</a>.</p>
164</div><h2 class="groupheader">Member Typedef Documentation</h2>
165<a id="ac81510b21cb2b5719cce34474ad01675"></a>
166<h2 class="memtitle"><span class="permalink"><a href="#ac81510b21cb2b5719cce34474ad01675">&#9670;&nbsp;</a></span>GraphPtr</h2>
167
168<div class="memitem">
169<div class="memproto">
170 <table class="memname">
171 <tr>
172 <td class="memname">using <a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html#ac81510b21cb2b5719cce34474ad01675">GraphPtr</a> = std::unique_ptr&lt;onnx::GraphProto&gt;</td>
173 </tr>
174 </table>
175</div><div class="memdoc">
176
177<p class="definition">Definition at line <a class="el" href="_onnx_parser_8hpp_source.html#l00032">32</a> of file <a class="el" href="_onnx_parser_8hpp_source.html">OnnxParser.hpp</a>.</p>
178
179</div>
180</div>
181<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
182<a id="a1623e04cb9035d7b589eee3611f623fe"></a>
183<h2 class="memtitle"><span class="permalink"><a href="#a1623e04cb9035d7b589eee3611f623fe">&#9670;&nbsp;</a></span>OnnxParser()</h2>
184
185<div class="memitem">
186<div class="memproto">
187 <table class="memname">
188 <tr>
189 <td class="memname"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html">OnnxParser</a> </td>
190 <td>(</td>
191 <td class="paramname"></td><td>)</td>
192 <td></td>
193 </tr>
194 </table>
195</div><div class="memdoc">
196
197<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00434">434</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
198
199<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="_tensor_8cpp_source.html#l00213">TensorInfo::GetNumBytes()</a>, and <a class="el" href="_tensor_8hpp_source.html#l00093">TensorInfo::GetNumElements()</a>.</p>
200<div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; : m_Network(<span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;}</div></div><!-- fragment -->
201</div>
202</div>
203<h2 class="groupheader">Member Function Documentation</h2>
204<a id="a012b24cafd443425314d4f9e06cec6c1"></a>
205<h2 class="memtitle"><span class="permalink"><a href="#a012b24cafd443425314d4f9e06cec6c1">&#9670;&nbsp;</a></span>CreateNetworkFromBinaryFile()</h2>
206
207<div class="memitem">
208<div class="memproto">
209<table class="mlabels">
210 <tr>
211 <td class="mlabels-left">
212 <table class="memname">
213 <tr>
214 <td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromBinaryFile </td>
215 <td>(</td>
216 <td class="paramtype">const char *&#160;</td>
217 <td class="paramname"><em>graphFile</em></td><td>)</td>
218 <td></td>
219 </tr>
220 </table>
221 </td>
222 <td class="mlabels-right">
223<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
224 </tr>
225</table>
226</div><div class="memdoc">
227
228<p>Create the network from a protobuf binary file on disk. </p>
229
230<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#ad92bc619ba8c78c9a4200d6635fde326">IOnnxParser</a>.</p>
231
232<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00557">557</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
233
234<p class="reference">References <a class="el" href="_onnx_parser_8cpp_source.html#l00527">OnnxParser::LoadModelFromBinaryFile()</a>.</p>
235<div class="fragment"><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;{</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; ResetParser();</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.html#acf9c6119ceb99755bc1f86c5a325c796">LoadModelFromBinaryFile</a>(graphFile);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromModel(*modelProto);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
236<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_html_acf9c6119ceb99755bc1f86c5a325c796"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.html#acf9c6119ceb99755bc1f86c5a325c796">armnnOnnxParser::OnnxParser::LoadModelFromBinaryFile</a></div><div class="ttdeci">static ModelPtr LoadModelFromBinaryFile(const char *fileName)</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8cpp_source.html#l00527">OnnxParser.cpp:527</a></div></div>
237</div><!-- fragment -->
238</div>
239</div>
240<a id="a4cb67bfbe630abf10787ac613d1a31c5"></a>
241<h2 class="memtitle"><span class="permalink"><a href="#a4cb67bfbe630abf10787ac613d1a31c5">&#9670;&nbsp;</a></span>CreateNetworkFromString()</h2>
242
243<div class="memitem">
244<div class="memproto">
245<table class="mlabels">
246 <tr>
247 <td class="mlabels-left">
248 <table class="memname">
249 <tr>
250 <td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromString </td>
251 <td>(</td>
252 <td class="paramtype">const std::string &amp;&#160;</td>
253 <td class="paramname"><em>protoText</em></td><td>)</td>
254 <td></td>
255 </tr>
256 </table>
257 </td>
258 <td class="mlabels-right">
259<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
260 </tr>
261</table>
262</div><div class="memdoc">
263
264<p>Create the network directly from protobuf text in a string. Useful for debugging/testing. </p>
265
266<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a02561e57c710ca5c616279c928125f1c">IOnnxParser</a>.</p>
267
268<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00584">584</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
269
270<p class="reference">References <a class="el" href="_tf_parser_8cpp_source.html#l00419">armnnTfParser::CalcPadding()</a>, <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="_onnx_parser_8cpp_source.html#l00048">CHECK_VALID_DATATYPE</a>, <a class="el" href="_verification_helpers_8hpp_source.html#l00032">CHECK_VALID_SIZE</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer::GetInputSlot()</a>, <a class="el" href="_tensor_8hpp_source.html#l00043">TensorShape::GetNumDimensions()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer::GetNumInputSlots()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#ac2dac3b61c94de52093616be4ab17f8d">IConnectableLayer::GetNumOutputSlots()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer::GetOutputSlot()</a>, <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_onnx_parser_8cpp_source.html#l00564">OnnxParser::LoadModelFromString()</a>, <a class="el" href="_descriptors_8hpp_source.html#l00386">FullyConnectedDescriptor::m_BiasEnabled</a>, <a class="el" href="_descriptors_8hpp_source.html#l00438">Convolution2dDescriptor::m_BiasEnabled</a>, <a class="el" href="_descriptors_8hpp_source.html#l00623">BatchNormalizationDescriptor::m_Eps</a>, <a class="el" href="_descriptors_8hpp_source.html#l00035">ActivationDescriptor::m_Function</a>, <a class="el" href="_descriptors_8hpp_source.html#l00365">Pooling2dDescriptor::m_OutputShapeRounding</a>, <a class="el" href="_descriptors_8hpp_source.html#l00355">Pooling2dDescriptor::m_PadBottom</a>, <a class="el" href="_descriptors_8hpp_source.html#l00428">Convolution2dDescriptor::m_PadBottom</a>, <a class="el" href="_descriptors_8hpp_source.html#l00367">Pooling2dDescriptor::m_PaddingMethod</a>, <a class="el" href="_descriptors_8hpp_source.html#l00349">Pooling2dDescriptor::m_PadLeft</a>, <a class="el" href="_descriptors_8hpp_source.html#l00422">Convolution2dDescriptor::m_PadLeft</a>, <a class="el" href="_descriptors_8hpp_source.html#l00351">Pooling2dDescriptor::m_PadRight</a>, <a class="el" href="_descriptors_8hpp_source.html#l00424">Convolution2dDescriptor::m_PadRight</a>, <a class="el" href="_descriptors_8hpp_source.html#l00353">Pooling2dDescriptor::m_PadTop</a>, <a class="el" href="_descriptors_8hpp_source.html#l00426">Convolution2dDescriptor::m_PadTop</a>, <a class="el" href="_descriptors_8hpp_source.html#l00359">Pooling2dDescriptor::m_PoolHeight</a>, <a class="el" href="_descriptors_8hpp_source.html#l00347">Pooling2dDescriptor::m_PoolType</a>, <a class="el" href="_descriptors_8hpp_source.html#l00357">Pooling2dDescriptor::m_PoolWidth</a>, <a class="el" href="_descriptors_8hpp_source.html#l00361">Pooling2dDescriptor::m_StrideX</a>, <a class="el" href="_descriptors_8hpp_source.html#l00430">Convolution2dDescriptor::m_StrideX</a>, <a class="el" href="_descriptors_8hpp_source.html#l00363">Pooling2dDescriptor::m_StrideY</a>, <a class="el" href="_descriptors_8hpp_source.html#l00432">Convolution2dDescriptor::m_StrideY</a>, <a class="el" href="_descriptors_8hpp_source.html#l00774">ReshapeDescriptor::m_TargetShape</a>, <a class="el" href="_tensor_8hpp_source.html#l00090">TensorInfo::SetShape()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.html#a5ee4a6c9a2481245487b1b1a70d20fd0">IOutputSlot::SetTensorInfo()</a>, <a class="el" href="_onnx_parser_8cpp_source.html#l00052">STR_LIST</a>, <a class="el" href="_deserializer_8cpp_source.html#l00493">armnnDeserializer::ToTensorInfo()</a>, and <a class="el" href="_onnx_parser_8cpp_source.html#l00382">VALID_INPUTS</a>.</p>
271<div class="fragment"><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;{</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; ResetParser();</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a181f87cf45fdc9f040a41c985ce7f8cd">LoadModelFromString</a>(protoText);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromModel(*modelProto);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
272<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_html_a181f87cf45fdc9f040a41c985ce7f8cd"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.html#a181f87cf45fdc9f040a41c985ce7f8cd">armnnOnnxParser::OnnxParser::LoadModelFromString</a></div><div class="ttdeci">static ModelPtr LoadModelFromString(const std::string &amp;inputString)</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8cpp_source.html#l00564">OnnxParser.cpp:564</a></div></div>
273</div><!-- fragment -->
274</div>
275</div>
276<a id="a08bac41eb476686564b15063edf1fc04"></a>
277<h2 class="memtitle"><span class="permalink"><a href="#a08bac41eb476686564b15063edf1fc04">&#9670;&nbsp;</a></span>CreateNetworkFromTextFile()</h2>
278
279<div class="memitem">
280<div class="memproto">
281<table class="mlabels">
282 <tr>
283 <td class="mlabels-left">
284 <table class="memname">
285 <tr>
286 <td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromTextFile </td>
287 <td>(</td>
288 <td class="paramtype">const char *&#160;</td>
289 <td class="paramname"><em>graphFile</em></td><td>)</td>
290 <td></td>
291 </tr>
292 </table>
293 </td>
294 <td class="mlabels-right">
295<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
296 </tr>
297</table>
298</div><div class="memdoc">
299
300<p>Create the network from a protobuf text file on disk. </p>
301
302<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a9f8e06d1391080a1f34e49997c16f878">IOnnxParser</a>.</p>
303
304<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00519">519</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
305
306<p class="reference">References <a class="el" href="_onnx_parser_8cpp_source.html#l00492">OnnxParser::LoadModelFromTextFile()</a>.</p>
307<div class="fragment"><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;{</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; ResetParser();</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.html#a975a79b9b35d51ea81c42c05d245e7c0">LoadModelFromTextFile</a>(graphFile);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromModel(*modelProto);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
308<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_html_a975a79b9b35d51ea81c42c05d245e7c0"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.html#a975a79b9b35d51ea81c42c05d245e7c0">armnnOnnxParser::OnnxParser::LoadModelFromTextFile</a></div><div class="ttdeci">static ModelPtr LoadModelFromTextFile(const char *fileName)</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8cpp_source.html#l00492">OnnxParser.cpp:492</a></div></div>
309</div><!-- fragment -->
310</div>
311</div>
312<a id="a7cf8b801043e1eccd5e6db1325eaa4fe"></a>
313<h2 class="memtitle"><span class="permalink"><a href="#a7cf8b801043e1eccd5e6db1325eaa4fe">&#9670;&nbsp;</a></span>GetInputs()</h2>
314
315<div class="memitem">
316<div class="memproto">
317<table class="mlabels">
318 <tr>
319 <td class="mlabels-left">
320 <table class="memname">
321 <tr>
322 <td class="memname">std::vector&lt; std::string &gt; GetInputs </td>
323 <td>(</td>
324 <td class="paramtype"><a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;&#160;</td>
325 <td class="paramname"><em>model</em></td><td>)</td>
326 <td></td>
327 </tr>
328 </table>
329 </td>
330 <td class="mlabels-right">
331<span class="mlabels"><span class="mlabel">static</span></span> </td>
332 </tr>
333</table>
334</div><div class="memdoc">
335
336<p>Retrieve inputs names. </p>
337
338<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l01708">1708</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
339
340<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>.</p>
341
342<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00069">BOOST_FIXTURE_TEST_CASE()</a>.</p>
343<div class="fragment"><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;{</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="keywordflow">if</span>(model == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(boost::str(</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; boost::format(<span class="stringliteral">&quot;The given model cannot be null %1%&quot;</span>)</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; }</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; std::vector&lt;std::string&gt; inputNames;</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; std::map&lt;std::string, bool&gt; isConstant;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> tensor : model-&gt;graph().initializer())</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; {</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; isConstant[tensor.name()] = <span class="keyword">true</span>;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; }</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> input : model-&gt;graph().input())</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; {</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; <span class="keyword">auto</span> it = isConstant.find(input.name());</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; <span class="keywordflow">if</span>(it == isConstant.end())</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; {</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; inputNames.push_back(input.name());</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; }</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; }</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; <span class="keywordflow">return</span> inputNames;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;}</div><div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
344<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
345</div><!-- fragment -->
346</div>
347</div>
348<a id="aba39201ebaeb0738f15a14b3c8da1f5a"></a>
349<h2 class="memtitle"><span class="permalink"><a href="#aba39201ebaeb0738f15a14b3c8da1f5a">&#9670;&nbsp;</a></span>GetNetworkInputBindingInfo()</h2>
350
351<div class="memitem">
352<div class="memproto">
353<table class="mlabels">
354 <tr>
355 <td class="mlabels-left">
356 <table class="memname">
357 <tr>
358 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkInputBindingInfo </td>
359 <td>(</td>
360 <td class="paramtype">const std::string &amp;&#160;</td>
361 <td class="paramname"><em>name</em></td><td>)</td>
362 <td> const</td>
363 </tr>
364 </table>
365 </td>
366 <td class="mlabels-right">
367<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
368 </tr>
369</table>
370</div><div class="memdoc">
371
372<p>Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name. </p>
373
374<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#adbba18b867f84bfcd3c88d06f275eac9">IOnnxParser</a>.</p>
375
376<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l01680">1680</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
377
378<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="_deserializer_8cpp_source.html#l00493">armnnDeserializer::ToTensorInfo()</a>.</p>
379<div class="fragment"><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;{</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_Graph-&gt;input_size(); ++i)</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; {</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="keyword">auto</span> input = m_Graph-&gt;input(i);</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordflow">if</span>(input.name() == name)</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; {</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keywordflow">return</span> std::make_pair(static_cast&lt;armnn::LayerBindingId&gt;(i), <a class="code" href="namespacearmnn_deserializer.html#aa28868b7dc87dc4d957db6c775a591c1">ToTensorInfo</a>(input));</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; }</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; }</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(boost::str(boost::format(<span class="stringliteral">&quot;The input layer &#39;%1%&#39; does not exist %2%&quot;</span>)</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; % name % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;}</div><div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
380<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
381<div class="ttc" id="namespacearmnn_deserializer_html_aa28868b7dc87dc4d957db6c775a591c1"><div class="ttname"><a href="namespacearmnn_deserializer.html#aa28868b7dc87dc4d957db6c775a591c1">armnnDeserializer::ToTensorInfo</a></div><div class="ttdeci">armnn::TensorInfo ToTensorInfo(Deserializer::TensorRawPtr tensorPtr)</div><div class="ttdef"><b>Definition:</b> <a href="_deserializer_8cpp_source.html#l00493">Deserializer.cpp:493</a></div></div>
382</div><!-- fragment -->
383</div>
384</div>
385<a id="aee8c8fa7de3c87392791d9f8dd90655f"></a>
386<h2 class="memtitle"><span class="permalink"><a href="#aee8c8fa7de3c87392791d9f8dd90655f">&#9670;&nbsp;</a></span>GetNetworkOutputBindingInfo()</h2>
387
388<div class="memitem">
389<div class="memproto">
390<table class="mlabels">
391 <tr>
392 <td class="mlabels-left">
393 <table class="memname">
394 <tr>
395 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkOutputBindingInfo </td>
396 <td>(</td>
397 <td class="paramtype">const std::string &amp;&#160;</td>
398 <td class="paramname"><em>name</em></td><td>)</td>
399 <td> const</td>
400 </tr>
401 </table>
402 </td>
403 <td class="mlabels-right">
404<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
405 </tr>
406</table>
407</div><div class="memdoc">
408
409<p>Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name. </p>
410
411<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.html#a99d33c004ce680f49893c9254d9bff5a">IOnnxParser</a>.</p>
412
413<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l01694">1694</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
414
415<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="_deserializer_8cpp_source.html#l00493">armnnDeserializer::ToTensorInfo()</a>.</p>
416<div class="fragment"><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;{</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_Graph-&gt;output_size(); ++i)</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; {</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; <span class="keyword">auto</span> output = m_Graph-&gt;output(i);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keywordflow">if</span>(output.name() == name)</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; {</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <span class="keywordflow">return</span> std::make_pair(static_cast&lt;armnn::LayerBindingId&gt;(i), <a class="code" href="namespacearmnn_deserializer.html#aa28868b7dc87dc4d957db6c775a591c1">ToTensorInfo</a>(output));</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; }</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; }</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(boost::str(boost::format(<span class="stringliteral">&quot;The output layer &#39;%1%&#39; does not exist %2%&quot;</span>)</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; % name % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;}</div><div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
417<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
418<div class="ttc" id="namespacearmnn_deserializer_html_aa28868b7dc87dc4d957db6c775a591c1"><div class="ttname"><a href="namespacearmnn_deserializer.html#aa28868b7dc87dc4d957db6c775a591c1">armnnDeserializer::ToTensorInfo</a></div><div class="ttdeci">armnn::TensorInfo ToTensorInfo(Deserializer::TensorRawPtr tensorPtr)</div><div class="ttdef"><b>Definition:</b> <a href="_deserializer_8cpp_source.html#l00493">Deserializer.cpp:493</a></div></div>
419</div><!-- fragment -->
420</div>
421</div>
422<a id="ad116319e33228bc23ec505887d3eee4d"></a>
423<h2 class="memtitle"><span class="permalink"><a href="#ad116319e33228bc23ec505887d3eee4d">&#9670;&nbsp;</a></span>GetOutputs()</h2>
424
425<div class="memitem">
426<div class="memproto">
427<table class="mlabels">
428 <tr>
429 <td class="mlabels-left">
430 <table class="memname">
431 <tr>
432 <td class="memname">std::vector&lt; std::string &gt; GetOutputs </td>
433 <td>(</td>
434 <td class="paramtype"><a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;&#160;</td>
435 <td class="paramname"><em>model</em></td><td>)</td>
436 <td></td>
437 </tr>
438 </table>
439 </td>
440 <td class="mlabels-right">
441<span class="mlabels"><span class="mlabel">static</span></span> </td>
442 </tr>
443</table>
444</div><div class="memdoc">
445
446<p>Retrieve outputs names. </p>
447
448<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l01733">1733</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
449
450<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>.</p>
451
452<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00078">BOOST_FIXTURE_TEST_CASE()</a>.</p>
453<div class="fragment"><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;{</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keywordflow">if</span>(model == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(boost::str(</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; boost::format(<span class="stringliteral">&quot;The given model cannot be null %1%&quot;</span>)</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; }</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; std::vector&lt;std::string&gt; outputNames;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> output : model-&gt;graph().output())</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; {</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; outputNames.push_back(output.name());</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; }</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; <span class="keywordflow">return</span> outputNames;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;}</div><div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
454<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
455</div><!-- fragment -->
456</div>
457</div>
458<a id="acf9c6119ceb99755bc1f86c5a325c796"></a>
459<h2 class="memtitle"><span class="permalink"><a href="#acf9c6119ceb99755bc1f86c5a325c796">&#9670;&nbsp;</a></span>LoadModelFromBinaryFile()</h2>
460
461<div class="memitem">
462<div class="memproto">
463<table class="mlabels">
464 <tr>
465 <td class="mlabels-left">
466 <table class="memname">
467 <tr>
468 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromBinaryFile </td>
469 <td>(</td>
470 <td class="paramtype">const char *&#160;</td>
471 <td class="paramname"><em>fileName</em></td><td>)</td>
472 <td></td>
473 </tr>
474 </table>
475 </td>
476 <td class="mlabels-right">
477<span class="mlabels"><span class="mlabel">static</span></span> </td>
478 </tr>
479</table>
480</div><div class="memdoc">
481
482<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00527">527</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
483
484<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
485
486<p class="reference">Referenced by <a class="el" href="_onnx_parser_8cpp_source.html#l00557">OnnxParser::CreateNetworkFromBinaryFile()</a>.</p>
487<div class="fragment"><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; FILE* fd = fopen(graphFile, <span class="stringliteral">&quot;rb&quot;</span>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span> (fd == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_file_not_found_exception.html">FileNotFoundException</a>(boost::str(</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; boost::format(<span class="stringliteral">&quot;Invalid (null) filename %1%&quot;</span>) % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Parse the file into a message</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = std::make_unique&lt;onnx::ModelProto&gt;();</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; google::protobuf::io::FileInputStream inStream(fileno(fd));</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; google::protobuf::io::CodedInputStream codedStream(&amp;inStream);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; codedStream.SetTotalBytesLimit(INT_MAX, INT_MAX);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordtype">bool</span> success = modelProto.get()-&gt;ParseFromCodedStream(&amp;codedStream);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; fclose(fd);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; std::stringstream <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; error &lt;&lt; <span class="stringliteral">&quot;Failed to parse graph file&quot;</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(boost::str(</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; boost::format(<span class="stringliteral">&quot;%1% %2%&quot;</span>) % error.str() % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">return</span> modelProto;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
488<div class="ttc" id="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
489<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
490<div class="ttc" id="namespacearmnn_html_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
491<div class="ttc" id="classarmnn_1_1_file_not_found_exception_html"><div class="ttname"><a href="classarmnn_1_1_file_not_found_exception.html">armnn::FileNotFoundException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00086">Exceptions.hpp:86</a></div></div>
492</div><!-- fragment -->
493</div>
494</div>
495<a id="a181f87cf45fdc9f040a41c985ce7f8cd"></a>
496<h2 class="memtitle"><span class="permalink"><a href="#a181f87cf45fdc9f040a41c985ce7f8cd">&#9670;&nbsp;</a></span>LoadModelFromString()</h2>
497
498<div class="memitem">
499<div class="memproto">
500<table class="mlabels">
501 <tr>
502 <td class="mlabels-left">
503 <table class="memname">
504 <tr>
505 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromString </td>
506 <td>(</td>
507 <td class="paramtype">const std::string &amp;&#160;</td>
508 <td class="paramname"><em>inputString</em></td><td>)</td>
509 <td></td>
510 </tr>
511 </table>
512 </td>
513 <td class="mlabels-right">
514<span class="mlabels"><span class="mlabel">static</span></span> </td>
515 </tr>
516</table>
517</div><div class="memdoc">
518
519<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00564">564</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
520
521<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
522
523<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00147">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00069">BOOST_FIXTURE_TEST_CASE()</a>, and <a class="el" href="_onnx_parser_8cpp_source.html#l00584">OnnxParser::CreateNetworkFromString()</a>.</p>
524<div class="fragment"><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;{</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span> (protoText == <span class="stringliteral">&quot;&quot;</span>)</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(boost::str(</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; boost::format(<span class="stringliteral">&quot;Invalid (empty) string for model parameter %1%&quot;</span>) % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="comment">// Parse the string into a message</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = std::make_unique&lt;onnx::ModelProto&gt;();</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordtype">bool</span> success = google::protobuf::TextFormat::ParseFromString(protoText, modelProto.get());</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; std::stringstream <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; error &lt;&lt; <span class="stringliteral">&quot;Failed to parse graph file&quot;</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(boost::str(</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; boost::format(<span class="stringliteral">&quot;%1% %2%&quot;</span>) % error.str() % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> modelProto;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
525<div class="ttc" id="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
526<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
527<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
528<div class="ttc" id="namespacearmnn_html_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
529</div><!-- fragment -->
530</div>
531</div>
532<a id="a975a79b9b35d51ea81c42c05d245e7c0"></a>
533<h2 class="memtitle"><span class="permalink"><a href="#a975a79b9b35d51ea81c42c05d245e7c0">&#9670;&nbsp;</a></span>LoadModelFromTextFile()</h2>
534
535<div class="memitem">
536<div class="memproto">
537<table class="mlabels">
538 <tr>
539 <td class="mlabels-left">
540 <table class="memname">
541 <tr>
542 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromTextFile </td>
543 <td>(</td>
544 <td class="paramtype">const char *&#160;</td>
545 <td class="paramname"><em>fileName</em></td><td>)</td>
546 <td></td>
547 </tr>
548 </table>
549 </td>
550 <td class="mlabels-right">
551<span class="mlabels"><span class="mlabel">static</span></span> </td>
552 </tr>
553</table>
554</div><div class="memdoc">
555
556<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00492">492</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
557
558<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
559
560<p class="reference">Referenced by <a class="el" href="_onnx_parser_8cpp_source.html#l00519">OnnxParser::CreateNetworkFromTextFile()</a>.</p>
561<div class="fragment"><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; FILE* fd = fopen(graphFile, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span> (fd == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_file_not_found_exception.html">FileNotFoundException</a>(boost::str(</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; boost::format(<span class="stringliteral">&quot;Invalid (null) filename %1%&quot;</span>) % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// Parse the file into a message</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = std::make_unique&lt;onnx::ModelProto&gt;();</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">using</span> google::protobuf::io::FileInputStream;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; std::unique_ptr&lt;FileInputStream&gt; input = std::make_unique&lt;FileInputStream&gt;(fileno(fd));</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordtype">bool</span> success = google::protobuf::TextFormat::Parse(input.get(), modelProto.get());</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; fclose(fd);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; std::stringstream <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; error &lt;&lt; <span class="stringliteral">&quot;Failed to parse graph file&quot;</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(boost::str(</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; boost::format(<span class="stringliteral">&quot;%1% %2%&quot;</span>) % error.str() % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> modelProto;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;}</div><div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_html_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.html#a503ae4f55dae1486e53978657083b35d">ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.html#l00012">GetInputsOutputs.cpp:12</a></div></div>
562<div class="ttc" id="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
563<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
564<div class="ttc" id="namespacearmnn_html_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
565<div class="ttc" id="classarmnn_1_1_file_not_found_exception_html"><div class="ttname"><a href="classarmnn_1_1_file_not_found_exception.html">armnn::FileNotFoundException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00086">Exceptions.hpp:86</a></div></div>
566</div><!-- fragment -->
567</div>
568</div>
569<a id="a74e612d0e7242695de575fb44e7f0762"></a>
570<h2 class="memtitle"><span class="permalink"><a href="#a74e612d0e7242695de575fb44e7f0762">&#9670;&nbsp;</a></span>ValidateInputs()</h2>
571
572<div class="memitem">
573<div class="memproto">
574 <table class="memname">
575 <tr>
576 <td class="memname">void ValidateInputs </td>
577 <td>(</td>
578 <td class="paramtype">const onnx::NodeProto &amp;&#160;</td>
579 <td class="paramname"><em>node</em>, </td>
580 </tr>
581 <tr>
582 <td class="paramkey"></td>
583 <td></td>
584 <td class="paramtype">TypePair&#160;</td>
585 <td class="paramname"><em>validInputs</em>, </td>
586 </tr>
587 <tr>
588 <td class="paramkey"></td>
589 <td></td>
590 <td class="paramtype">const Location &amp;&#160;</td>
591 <td class="paramname"><em>location</em>&#160;</td>
592 </tr>
593 <tr>
594 <td></td>
595 <td>)</td>
596 <td></td><td></td>
597 </tr>
598 </table>
599</div><div class="memdoc">
600
601<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.html#l00367">367</a> of file <a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a>.</p>
602<div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> input : node.input())</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; CheckValidDataType(validInputs.second,</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; m_TensorsInfo[input].m_dtype,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; validInputs.first,</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; node.name(),</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; input,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; location);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div></div><!-- fragment -->
603</div>
604</div>
605<hr/>The documentation for this class was generated from the following files:<ul>
606<li>src/armnnOnnxParser/<a class="el" href="_onnx_parser_8hpp_source.html">OnnxParser.hpp</a></li>
607<li>src/armnnOnnxParser/<a class="el" href="_onnx_parser_8cpp_source.html">OnnxParser.cpp</a></li>
608</ul>
609</div><!-- contents -->
610</div><!-- doc-content -->
611<!-- start footer part -->
612<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
613 <ul>
614 <li class="navelem"><a class="el" href="namespacearmnn_onnx_parser.html">armnnOnnxParser</a></li><li class="navelem"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.html">OnnxParser</a></li>
615 <li class="footer">Generated on Fri Mar 13 2020 16:07:06 for ArmNN by
616 <a href="http://www.doxygen.org/index.html">
617 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
618 </ul>
619</div>
620</body>
621</html>