blob: cdece1d0475073c5a9084ce5d05ed84646059a25 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!-- Copyright (c) 2020 ARM Limited. -->
2<!-- -->
3<!-- SPDX-License-Identifier: MIT -->
4<!-- -->
5<!-- HTML header for doxygen 1.8.13-->
6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7<html xmlns="http://www.w3.org/1999/xhtml">
8<head>
9<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
10<meta http-equiv="X-UA-Compatible" content="IE=9"/>
11<meta name="generator" content="Doxygen 1.8.13"/>
12<meta name="robots" content="NOINDEX, NOFOLLOW" />
13<meta name="viewport" content="width=device-width, initial-scale=1"/>
14<title>ArmNN: OnnxParser Class Reference</title>
15<link href="tabs.css" rel="stylesheet" type="text/css"/>
16<script type="text/javascript" src="jquery.js"></script>
17<script type="text/javascript" src="dynsections.js"></script>
18<link href="navtree.css" rel="stylesheet" type="text/css"/>
19<script type="text/javascript" src="resize.js"></script>
20<script type="text/javascript" src="navtreedata.js"></script>
21<script type="text/javascript" src="navtree.js"></script>
22<script type="text/javascript">
23 $(document).ready(initResizable);
24</script>
25<link href="search/search.css" rel="stylesheet" type="text/css"/>
26<script type="text/javascript" src="search/searchdata.js"></script>
27<script type="text/javascript" src="search/search.js"></script>
28<script type="text/x-mathjax-config">
29 MathJax.Hub.Config({
30 extensions: ["tex2jax.js"],
31 jax: ["input/TeX","output/HTML-CSS"],
32});
33</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
34<link href="doxygen.css" rel="stylesheet" type="text/css" />
35<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
36</head>
37<body>
38<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
39<div id="titlearea">
40<table cellspacing="0" cellpadding="0">
41 <tbody>
42 <tr style="height: 56px;">
43 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
44 <td style="padding-left: 0.5em;">
45 <div id="projectname">
46 &#160;<span id="projectnumber">20.02</span>
47 </div>
48 </td>
49 </tr>
50 </tbody>
51</table>
52</div>
53<!-- end header part -->
54<!-- Generated by Doxygen 1.8.13 -->
55<script type="text/javascript">
56var searchBox = new SearchBox("searchBox", "search",false,'Search');
57</script>
58<script type="text/javascript" src="menudata.js"></script>
59<script type="text/javascript" src="menu.js"></script>
60<script type="text/javascript">
61$(function() {
62 initMenu('',true,false,'search.php','Search');
63 $(document).ready(function() { init_search(); });
64});
65</script>
66<div id="main-nav"></div>
67</div><!-- top -->
68<div id="side-nav" class="ui-resizable side-nav-resizable">
69 <div id="nav-tree">
70 <div id="nav-tree-contents">
71 <div id="nav-sync" class="sync"></div>
72 </div>
73 </div>
74 <div id="splitbar" style="-moz-user-select:none;"
75 class="ui-resizable-handle">
76 </div>
77</div>
78<script type="text/javascript">
79$(document).ready(function(){initNavTree('classarmnn_onnx_parser_1_1_onnx_parser.xhtml','');});
80</script>
81<div id="doc-content">
82<!-- window showing the filter options -->
83<div id="MSearchSelectWindow"
84 onmouseover="return searchBox.OnSearchSelectShow()"
85 onmouseout="return searchBox.OnSearchSelectHide()"
86 onkeydown="return searchBox.OnSearchSelectKey(event)">
87</div>
88
89<!-- iframe showing the search results (closed by default) -->
90<div id="MSearchResultsWindow">
91<iframe src="javascript:void(0)" frameborder="0"
92 name="MSearchResults" id="MSearchResults">
93</iframe>
94</div>
95
96<div class="header">
97 <div class="summary">
98<a href="#nested-classes">Classes</a> &#124;
99<a href="#pub-types">Public Types</a> &#124;
100<a href="#pub-methods">Public Member Functions</a> &#124;
101<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
102<a href="classarmnn_onnx_parser_1_1_onnx_parser-members.xhtml">List of all members</a> </div>
103 <div class="headertitle">
104<div class="title">OnnxParser Class Reference</div> </div>
105</div><!--header-->
106<div class="contents">
107
108<p><code>#include &lt;<a class="el" href="_onnx_parser_8hpp_source.xhtml">OnnxParser.hpp</a>&gt;</code></p>
109<div class="dynheader">
110Inheritance diagram for OnnxParser:</div>
111<div class="dyncontent">
112 <div class="center">
113 <img src="classarmnn_onnx_parser_1_1_onnx_parser.png" usemap="#OnnxParser_map" alt=""/>
114 <map id="OnnxParser_map" name="OnnxParser_map">
115<area href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml" alt="IOnnxParser" shape="rect" coords="0,0,83,24"/>
116</map>
117 </div></div>
118<table class="memberdecls">
119<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
120Public Types</h2></td></tr>
121<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.xhtml#ac81510b21cb2b5719cce34474ad01675">GraphPtr</a> = std::unique_ptr&lt; onnx::GraphProto &gt;</td></tr>
122<tr class="separator:ac81510b21cb2b5719cce34474ad01675"><td class="memSeparator" colspan="2">&#160;</td></tr>
123</table><table class="memberdecls">
124<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
125Public Member Functions</h2></td></tr>
126<tr class="memitem:a012b24cafd443425314d4f9e06cec6c1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#a012b24cafd443425314d4f9e06cec6c1">CreateNetworkFromBinaryFile</a> (const char *graphFile) override</td></tr>
127<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>
128<tr class="separator:a012b24cafd443425314d4f9e06cec6c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a08bac41eb476686564b15063edf1fc04"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#a08bac41eb476686564b15063edf1fc04">CreateNetworkFromTextFile</a> (const char *graphFile) override</td></tr>
130<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>
131<tr class="separator:a08bac41eb476686564b15063edf1fc04"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<tr class="memitem:a4cb67bfbe630abf10787ac613d1a31c5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">armnn::INetworkPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#a4cb67bfbe630abf10787ac613d1a31c5">CreateNetworkFromString</a> (const std::string &amp;protoText) override</td></tr>
133<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>
134<tr class="separator:a4cb67bfbe630abf10787ac613d1a31c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_onnx_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#aba39201ebaeb0738f15a14b3c8da1f5a">GetNetworkInputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
136<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>
137<tr class="separator:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
138<tr class="memitem:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_onnx_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#aee8c8fa7de3c87392791d9f8dd90655f">GetNetworkOutputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
139<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>
140<tr class="separator:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<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.xhtml#a1623e04cb9035d7b589eee3611f623fe">OnnxParser</a> ()</td></tr>
142<tr class="separator:a1623e04cb9035d7b589eee3611f623fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:a74e612d0e7242695de575fb44e7f0762"><td class="memTemplParams" colspan="2">template&lt;typename TypePair , typename Location &gt; </td></tr>
144<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.xhtml#a74e612d0e7242695de575fb44e7f0762">ValidateInputs</a> (const onnx::NodeProto &amp;node, TypePair validInputs, const Location &amp;location)</td></tr>
145<tr class="separator:a74e612d0e7242695de575fb44e7f0762"><td class="memSeparator" colspan="2">&#160;</td></tr>
146</table><table class="memberdecls">
147<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
148Static Public Member Functions</h2></td></tr>
149<tr class="memitem:acf9c6119ceb99755bc1f86c5a325c796"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#acf9c6119ceb99755bc1f86c5a325c796">LoadModelFromBinaryFile</a> (const char *fileName)</td></tr>
150<tr class="separator:acf9c6119ceb99755bc1f86c5a325c796"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:a975a79b9b35d51ea81c42c05d245e7c0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#a975a79b9b35d51ea81c42c05d245e7c0">LoadModelFromTextFile</a> (const char *fileName)</td></tr>
152<tr class="separator:a975a79b9b35d51ea81c42c05d245e7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:a181f87cf45fdc9f040a41c985ce7f8cd"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#a181f87cf45fdc9f040a41c985ce7f8cd">LoadModelFromString</a> (const std::string &amp;inputString)</td></tr>
154<tr class="separator:a181f87cf45fdc9f040a41c985ce7f8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<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.xhtml#a7cf8b801043e1eccd5e6db1325eaa4fe">GetInputs</a> (<a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;model)</td></tr>
156<tr class="memdesc:a7cf8b801043e1eccd5e6db1325eaa4fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve inputs names. <a href="#a7cf8b801043e1eccd5e6db1325eaa4fe">More...</a><br /></td></tr>
157<tr class="separator:a7cf8b801043e1eccd5e6db1325eaa4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
158<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.xhtml#ad116319e33228bc23ec505887d3eee4d">GetOutputs</a> (<a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;model)</td></tr>
159<tr class="memdesc:ad116319e33228bc23ec505887d3eee4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve outputs names. <a href="#ad116319e33228bc23ec505887d3eee4d">More...</a><br /></td></tr>
160<tr class="separator:ad116319e33228bc23ec505887d3eee4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<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.xhtml">IOnnxParser</a></td></tr>
162<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.xhtml">IOnnxParser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#a1ae1d4dfe89d26b84d371439d6815bfb">CreateRaw</a> ()</td></tr>
163<tr class="separator:a1ae1d4dfe89d26b84d371439d6815bfb inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<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.xhtml#ac7dfccab29feeb5f33f1ec0183c1e123">IOnnxParserPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#af9b9254fb8a084f0db4f7deff0498b20">Create</a> ()</td></tr>
165<tr class="separator:af9b9254fb8a084f0db4f7deff0498b20 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<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.xhtml#a793da4fa60bf13f128c20d8def32c291">Destroy</a> (<a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml">IOnnxParser</a> *parser)</td></tr>
167<tr class="separator:a793da4fa60bf13f128c20d8def32c291 inherit pub_static_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
168</table><table class="memberdecls">
169<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
170Additional Inherited Members</h2></td></tr>
171<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.xhtml">IOnnxParser</a></td></tr>
172<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.xhtml#a722949b1ae5d20dce7e8c5004c9a248b">~IOnnxParser</a> ()</td></tr>
173<tr class="separator:a722949b1ae5d20dce7e8c5004c9a248b inherit pro_methods_classarmnn_onnx_parser_1_1_i_onnx_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
174</table>
175<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
176<div class="textblock">
177<p class="definition">Definition at line <a class="el" href="_onnx_parser_8hpp_source.xhtml#l00025">25</a> of file <a class="el" href="_onnx_parser_8hpp_source.xhtml">OnnxParser.hpp</a>.</p>
178</div><h2 class="groupheader">Member Typedef Documentation</h2>
179<a id="ac81510b21cb2b5719cce34474ad01675"></a>
180<h2 class="memtitle"><span class="permalink"><a href="#ac81510b21cb2b5719cce34474ad01675">&#9670;&nbsp;</a></span>GraphPtr</h2>
181
182<div class="memitem">
183<div class="memproto">
184 <table class="memname">
185 <tr>
186 <td class="memname">using <a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#ac81510b21cb2b5719cce34474ad01675">GraphPtr</a> = std::unique_ptr&lt;onnx::GraphProto&gt;</td>
187 </tr>
188 </table>
189</div><div class="memdoc">
190
191<p class="definition">Definition at line <a class="el" href="_onnx_parser_8hpp_source.xhtml#l00032">32</a> of file <a class="el" href="_onnx_parser_8hpp_source.xhtml">OnnxParser.hpp</a>.</p>
192
193</div>
194</div>
195<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
196<a id="a1623e04cb9035d7b589eee3611f623fe"></a>
197<h2 class="memtitle"><span class="permalink"><a href="#a1623e04cb9035d7b589eee3611f623fe">&#9670;&nbsp;</a></span>OnnxParser()</h2>
198
199<div class="memitem">
200<div class="memproto">
201 <table class="memname">
202 <tr>
203 <td class="memname"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml">OnnxParser</a> </td>
204 <td>(</td>
205 <td class="paramname"></td><td>)</td>
206 <td></td>
207 </tr>
208 </table>
209</div><div class="memdoc">
210
211<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00434">434</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
212
213<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_tensor_8cpp_source.xhtml#l00213">TensorInfo::GetNumBytes()</a>, and <a class="el" href="_tensor_8hpp_source.xhtml#l00093">TensorInfo::GetNumElements()</a>.</p>
214<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 -->
215</div>
216</div>
217<h2 class="groupheader">Member Function Documentation</h2>
218<a id="a012b24cafd443425314d4f9e06cec6c1"></a>
219<h2 class="memtitle"><span class="permalink"><a href="#a012b24cafd443425314d4f9e06cec6c1">&#9670;&nbsp;</a></span>CreateNetworkFromBinaryFile()</h2>
220
221<div class="memitem">
222<div class="memproto">
223<table class="mlabels">
224 <tr>
225 <td class="mlabels-left">
226 <table class="memname">
227 <tr>
228 <td class="memname"><a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromBinaryFile </td>
229 <td>(</td>
230 <td class="paramtype">const char *&#160;</td>
231 <td class="paramname"><em>graphFile</em></td><td>)</td>
232 <td></td>
233 </tr>
234 </table>
235 </td>
236 <td class="mlabels-right">
237<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
238 </tr>
239</table>
240</div><div class="memdoc">
241
242<p>Create the network from a protobuf binary file on disk. </p>
243
244<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#ad92bc619ba8c78c9a4200d6635fde326">IOnnxParser</a>.</p>
245
246<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00557">557</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
247
248<p class="reference">References <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00527">OnnxParser::LoadModelFromBinaryFile()</a>.</p>
249<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.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
250<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_xhtml_acf9c6119ceb99755bc1f86c5a325c796"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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.xhtml#l00527">OnnxParser.cpp:527</a></div></div>
251</div><!-- fragment -->
252</div>
253</div>
254<a id="a4cb67bfbe630abf10787ac613d1a31c5"></a>
255<h2 class="memtitle"><span class="permalink"><a href="#a4cb67bfbe630abf10787ac613d1a31c5">&#9670;&nbsp;</a></span>CreateNetworkFromString()</h2>
256
257<div class="memitem">
258<div class="memproto">
259<table class="mlabels">
260 <tr>
261 <td class="mlabels-left">
262 <table class="memname">
263 <tr>
264 <td class="memname"><a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromString </td>
265 <td>(</td>
266 <td class="paramtype">const std::string &amp;&#160;</td>
267 <td class="paramname"><em>protoText</em></td><td>)</td>
268 <td></td>
269 </tr>
270 </table>
271 </td>
272 <td class="mlabels-right">
273<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
274 </tr>
275</table>
276</div><div class="memdoc">
277
278<p>Create the network directly from protobuf text in a string. Useful for debugging/testing. </p>
279
280<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#a02561e57c710ca5c616279c928125f1c">IOnnxParser</a>.</p>
281
282<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00584">584</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
283
284<p class="reference">References <a class="el" href="_tf_parser_8cpp_source.xhtml#l00421">armnnTfParser::CalcPadding()</a>, <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00048">CHECK_VALID_DATATYPE</a>, <a class="el" href="_verification_helpers_8hpp_source.xhtml#l00032">CHECK_VALID_SIZE</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer::GetInputSlot()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer::GetNumInputSlots()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#ac2dac3b61c94de52093616be4ab17f8d">IConnectableLayer::GetNumOutputSlots()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer::GetOutputSlot()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00564">OnnxParser::LoadModelFromString()</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00386">FullyConnectedDescriptor::m_BiasEnabled</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00438">Convolution2dDescriptor::m_BiasEnabled</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00623">BatchNormalizationDescriptor::m_Eps</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00035">ActivationDescriptor::m_Function</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00365">Pooling2dDescriptor::m_OutputShapeRounding</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00355">Pooling2dDescriptor::m_PadBottom</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00428">Convolution2dDescriptor::m_PadBottom</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00367">Pooling2dDescriptor::m_PaddingMethod</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00349">Pooling2dDescriptor::m_PadLeft</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00422">Convolution2dDescriptor::m_PadLeft</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00351">Pooling2dDescriptor::m_PadRight</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00424">Convolution2dDescriptor::m_PadRight</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00353">Pooling2dDescriptor::m_PadTop</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00426">Convolution2dDescriptor::m_PadTop</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00359">Pooling2dDescriptor::m_PoolHeight</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00347">Pooling2dDescriptor::m_PoolType</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00357">Pooling2dDescriptor::m_PoolWidth</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00361">Pooling2dDescriptor::m_StrideX</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00430">Convolution2dDescriptor::m_StrideX</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00363">Pooling2dDescriptor::m_StrideY</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00432">Convolution2dDescriptor::m_StrideY</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l00774">ReshapeDescriptor::m_TargetShape</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00090">TensorInfo::SetShape()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.xhtml#a5ee4a6c9a2481245487b1b1a70d20fd0">IOutputSlot::SetTensorInfo()</a>, <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00052">STR_LIST</a>, <a class="el" href="_deserializer_8cpp_source.xhtml#l00501">armnnDeserializer::ToTensorInfo()</a>, and <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00382">VALID_INPUTS</a>.</p>
285<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.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
286<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_xhtml_a181f87cf45fdc9f040a41c985ce7f8cd"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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.xhtml#l00564">OnnxParser.cpp:564</a></div></div>
287</div><!-- fragment -->
288</div>
289</div>
290<a id="a08bac41eb476686564b15063edf1fc04"></a>
291<h2 class="memtitle"><span class="permalink"><a href="#a08bac41eb476686564b15063edf1fc04">&#9670;&nbsp;</a></span>CreateNetworkFromTextFile()</h2>
292
293<div class="memitem">
294<div class="memproto">
295<table class="mlabels">
296 <tr>
297 <td class="mlabels-left">
298 <table class="memname">
299 <tr>
300 <td class="memname"><a class="el" href="namespacearmnn.xhtml#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromTextFile </td>
301 <td>(</td>
302 <td class="paramtype">const char *&#160;</td>
303 <td class="paramname"><em>graphFile</em></td><td>)</td>
304 <td></td>
305 </tr>
306 </table>
307 </td>
308 <td class="mlabels-right">
309<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
310 </tr>
311</table>
312</div><div class="memdoc">
313
314<p>Create the network from a protobuf text file on disk. </p>
315
316<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#a9f8e06d1391080a1f34e49997c16f878">IOnnxParser</a>.</p>
317
318<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00519">519</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
319
320<p class="reference">References <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00492">OnnxParser::LoadModelFromTextFile()</a>.</p>
321<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.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> modelProto = <a class="code" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
322<div class="ttc" id="classarmnn_onnx_parser_1_1_onnx_parser_xhtml_a975a79b9b35d51ea81c42c05d245e7c0"><div class="ttname"><a href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml#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.xhtml#l00492">OnnxParser.cpp:492</a></div></div>
323</div><!-- fragment -->
324</div>
325</div>
326<a id="a7cf8b801043e1eccd5e6db1325eaa4fe"></a>
327<h2 class="memtitle"><span class="permalink"><a href="#a7cf8b801043e1eccd5e6db1325eaa4fe">&#9670;&nbsp;</a></span>GetInputs()</h2>
328
329<div class="memitem">
330<div class="memproto">
331<table class="mlabels">
332 <tr>
333 <td class="mlabels-left">
334 <table class="memname">
335 <tr>
336 <td class="memname">std::vector&lt; std::string &gt; GetInputs </td>
337 <td>(</td>
338 <td class="paramtype"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;&#160;</td>
339 <td class="paramname"><em>model</em></td><td>)</td>
340 <td></td>
341 </tr>
342 </table>
343 </td>
344 <td class="mlabels-right">
345<span class="mlabels"><span class="mlabel">static</span></span> </td>
346 </tr>
347</table>
348</div><div class="memdoc">
349
350<p>Retrieve inputs names. </p>
351
352<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l01708">1708</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
353
354<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>.</p>
355
356<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.xhtml#l00069">BOOST_FIXTURE_TEST_CASE()</a>.</p>
357<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.xhtml">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.xhtml#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="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
358<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
359</div><!-- fragment -->
360</div>
361</div>
362<a id="aba39201ebaeb0738f15a14b3c8da1f5a"></a>
363<h2 class="memtitle"><span class="permalink"><a href="#aba39201ebaeb0738f15a14b3c8da1f5a">&#9670;&nbsp;</a></span>GetNetworkInputBindingInfo()</h2>
364
365<div class="memitem">
366<div class="memproto">
367<table class="mlabels">
368 <tr>
369 <td class="mlabels-left">
370 <table class="memname">
371 <tr>
372 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkInputBindingInfo </td>
373 <td>(</td>
374 <td class="paramtype">const std::string &amp;&#160;</td>
375 <td class="paramname"><em>name</em></td><td>)</td>
376 <td> const</td>
377 </tr>
378 </table>
379 </td>
380 <td class="mlabels-right">
381<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
382 </tr>
383</table>
384</div><div class="memdoc">
385
386<p>Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name. </p>
387
388<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#adbba18b867f84bfcd3c88d06f275eac9">IOnnxParser</a>.</p>
389
390<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l01680">1680</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
391
392<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, and <a class="el" href="_deserializer_8cpp_source.xhtml#l00501">armnnDeserializer::ToTensorInfo()</a>.</p>
393<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.xhtml#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.xhtml">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.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;}</div><div class="ttc" id="namespacearmnn_deserializer_xhtml_aa28868b7dc87dc4d957db6c775a591c1"><div class="ttname"><a href="namespacearmnn_deserializer.xhtml#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.xhtml#l00501">Deserializer.cpp:501</a></div></div>
394<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
395<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
396</div><!-- fragment -->
397</div>
398</div>
399<a id="aee8c8fa7de3c87392791d9f8dd90655f"></a>
400<h2 class="memtitle"><span class="permalink"><a href="#aee8c8fa7de3c87392791d9f8dd90655f">&#9670;&nbsp;</a></span>GetNetworkOutputBindingInfo()</h2>
401
402<div class="memitem">
403<div class="memproto">
404<table class="mlabels">
405 <tr>
406 <td class="mlabels-left">
407 <table class="memname">
408 <tr>
409 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkOutputBindingInfo </td>
410 <td>(</td>
411 <td class="paramtype">const std::string &amp;&#160;</td>
412 <td class="paramname"><em>name</em></td><td>)</td>
413 <td> const</td>
414 </tr>
415 </table>
416 </td>
417 <td class="mlabels-right">
418<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
419 </tr>
420</table>
421</div><div class="memdoc">
422
423<p>Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name. </p>
424
425<p>Implements <a class="el" href="classarmnn_onnx_parser_1_1_i_onnx_parser.xhtml#a99d33c004ce680f49893c9254d9bff5a">IOnnxParser</a>.</p>
426
427<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l01694">1694</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
428
429<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, and <a class="el" href="_deserializer_8cpp_source.xhtml#l00501">armnnDeserializer::ToTensorInfo()</a>.</p>
430<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.xhtml#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.xhtml">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.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;}</div><div class="ttc" id="namespacearmnn_deserializer_xhtml_aa28868b7dc87dc4d957db6c775a591c1"><div class="ttname"><a href="namespacearmnn_deserializer.xhtml#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.xhtml#l00501">Deserializer.cpp:501</a></div></div>
431<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
432<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
433</div><!-- fragment -->
434</div>
435</div>
436<a id="ad116319e33228bc23ec505887d3eee4d"></a>
437<h2 class="memtitle"><span class="permalink"><a href="#ad116319e33228bc23ec505887d3eee4d">&#9670;&nbsp;</a></span>GetOutputs()</h2>
438
439<div class="memitem">
440<div class="memproto">
441<table class="mlabels">
442 <tr>
443 <td class="mlabels-left">
444 <table class="memname">
445 <tr>
446 <td class="memname">std::vector&lt; std::string &gt; GetOutputs </td>
447 <td>(</td>
448 <td class="paramtype"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> &amp;&#160;</td>
449 <td class="paramname"><em>model</em></td><td>)</td>
450 <td></td>
451 </tr>
452 </table>
453 </td>
454 <td class="mlabels-right">
455<span class="mlabels"><span class="mlabel">static</span></span> </td>
456 </tr>
457</table>
458</div><div class="memdoc">
459
460<p>Retrieve outputs names. </p>
461
462<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l01733">1733</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
463
464<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>.</p>
465
466<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.xhtml#l00078">BOOST_FIXTURE_TEST_CASE()</a>.</p>
467<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.xhtml">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.xhtml#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="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
468<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
469</div><!-- fragment -->
470</div>
471</div>
472<a id="acf9c6119ceb99755bc1f86c5a325c796"></a>
473<h2 class="memtitle"><span class="permalink"><a href="#acf9c6119ceb99755bc1f86c5a325c796">&#9670;&nbsp;</a></span>LoadModelFromBinaryFile()</h2>
474
475<div class="memitem">
476<div class="memproto">
477<table class="mlabels">
478 <tr>
479 <td class="mlabels-left">
480 <table class="memname">
481 <tr>
482 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromBinaryFile </td>
483 <td>(</td>
484 <td class="paramtype">const char *&#160;</td>
485 <td class="paramname"><em>fileName</em></td><td>)</td>
486 <td></td>
487 </tr>
488 </table>
489 </td>
490 <td class="mlabels-right">
491<span class="mlabels"><span class="mlabel">static</span></span> </td>
492 </tr>
493</table>
494</div><div class="memdoc">
495
496<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00527">527</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
497
498<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
499
500<p class="reference">Referenced by <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00557">OnnxParser::CreateNetworkFromBinaryFile()</a>.</p>
501<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.xhtml">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.xhtml#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.xhtml#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.xhtml#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.xhtml">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.xhtml#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="classarmnn_1_1_file_not_found_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_file_not_found_exception.xhtml">armnn::FileNotFoundException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00086">Exceptions.hpp:86</a></div></div>
502<div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
503<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
504<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
505<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
506</div><!-- fragment -->
507</div>
508</div>
509<a id="a181f87cf45fdc9f040a41c985ce7f8cd"></a>
510<h2 class="memtitle"><span class="permalink"><a href="#a181f87cf45fdc9f040a41c985ce7f8cd">&#9670;&nbsp;</a></span>LoadModelFromString()</h2>
511
512<div class="memitem">
513<div class="memproto">
514<table class="mlabels">
515 <tr>
516 <td class="mlabels-left">
517 <table class="memname">
518 <tr>
519 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromString </td>
520 <td>(</td>
521 <td class="paramtype">const std::string &amp;&#160;</td>
522 <td class="paramname"><em>inputString</em></td><td>)</td>
523 <td></td>
524 </tr>
525 </table>
526 </td>
527 <td class="mlabels-right">
528<span class="mlabels"><span class="mlabel">static</span></span> </td>
529 </tr>
530</table>
531</div><div class="memdoc">
532
533<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00564">564</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
534
535<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
536
537<p class="reference">Referenced by <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.xhtml#l00147">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_source.xhtml#l00069">BOOST_FIXTURE_TEST_CASE()</a>, and <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00584">OnnxParser::CreateNetworkFromString()</a>.</p>
538<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.xhtml">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.xhtml#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.xhtml#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.xhtml#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.xhtml">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.xhtml#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_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
539<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
540<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
541<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
542<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
543</div><!-- fragment -->
544</div>
545</div>
546<a id="a975a79b9b35d51ea81c42c05d245e7c0"></a>
547<h2 class="memtitle"><span class="permalink"><a href="#a975a79b9b35d51ea81c42c05d245e7c0">&#9670;&nbsp;</a></span>LoadModelFromTextFile()</h2>
548
549<div class="memitem">
550<div class="memproto">
551<table class="mlabels">
552 <tr>
553 <td class="mlabels-left">
554 <table class="memname">
555 <tr>
556 <td class="memname"><a class="el" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">ModelPtr</a> LoadModelFromTextFile </td>
557 <td>(</td>
558 <td class="paramtype">const char *&#160;</td>
559 <td class="paramname"><em>fileName</em></td><td>)</td>
560 <td></td>
561 </tr>
562 </table>
563 </td>
564 <td class="mlabels-right">
565<span class="mlabels"><span class="mlabel">static</span></span> </td>
566 </tr>
567</table>
568</div><div class="memdoc">
569
570<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00492">492</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
571
572<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, and <a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::error</a>.</p>
573
574<p class="reference">Referenced by <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00519">OnnxParser::CreateNetworkFromTextFile()</a>.</p>
575<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.xhtml">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.xhtml#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.xhtml#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.xhtml#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.xhtml">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.xhtml#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="classarmnn_1_1_file_not_found_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_file_not_found_exception.xhtml">armnn::FileNotFoundException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00086">Exceptions.hpp:86</a></div></div>
576<div class="ttc" id="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="armnn_onnx_parser_2test_2_get_inputs_outputs_8cpp.xhtml#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.xhtml#l00012">GetInputsOutputs.cpp:12</a></div></div>
577<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
578<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
579<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
580</div><!-- fragment -->
581</div>
582</div>
583<a id="a74e612d0e7242695de575fb44e7f0762"></a>
584<h2 class="memtitle"><span class="permalink"><a href="#a74e612d0e7242695de575fb44e7f0762">&#9670;&nbsp;</a></span>ValidateInputs()</h2>
585
586<div class="memitem">
587<div class="memproto">
588 <table class="memname">
589 <tr>
590 <td class="memname">void ValidateInputs </td>
591 <td>(</td>
592 <td class="paramtype">const onnx::NodeProto &amp;&#160;</td>
593 <td class="paramname"><em>node</em>, </td>
594 </tr>
595 <tr>
596 <td class="paramkey"></td>
597 <td></td>
598 <td class="paramtype">TypePair&#160;</td>
599 <td class="paramname"><em>validInputs</em>, </td>
600 </tr>
601 <tr>
602 <td class="paramkey"></td>
603 <td></td>
604 <td class="paramtype">const Location &amp;&#160;</td>
605 <td class="paramname"><em>location</em>&#160;</td>
606 </tr>
607 <tr>
608 <td></td>
609 <td>)</td>
610 <td></td><td></td>
611 </tr>
612 </table>
613</div><div class="memdoc">
614
615<p class="definition">Definition at line <a class="el" href="_onnx_parser_8cpp_source.xhtml#l00367">367</a> of file <a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a>.</p>
616<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 -->
617</div>
618</div>
619<hr/>The documentation for this class was generated from the following files:<ul>
620<li>src/armnnOnnxParser/<a class="el" href="_onnx_parser_8hpp_source.xhtml">OnnxParser.hpp</a></li>
621<li>src/armnnOnnxParser/<a class="el" href="_onnx_parser_8cpp_source.xhtml">OnnxParser.cpp</a></li>
622</ul>
623</div><!-- contents -->
624</div><!-- doc-content -->
625<!-- start footer part -->
626<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
627 <ul>
628 <li class="navelem"><a class="el" href="namespacearmnn_onnx_parser.xhtml">armnnOnnxParser</a></li><li class="navelem"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser.xhtml">OnnxParser</a></li>
629 <li class="footer">Generated on Fri Mar 13 2020 16:09:21 for ArmNN by
630 <a href="http://www.doxygen.org/index.html">
631 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
632 </ul>
633</div>
634</body>
635</html>