blob: fc002774bd9a5b2190e36279fcf015a661b550fc [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: TfParser Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ArmNN
&#160;<span id="projectnumber">NotReleased</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarmnn_tf_parser_1_1_tf_parser.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classarmnn_tf_parser_1_1_tf_parser-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">TfParser Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TfParser:</div>
<div class="dyncontent">
<div class="center">
<img src="classarmnn_tf_parser_1_1_tf_parser.png" usemap="#TfParser_map" alt=""/>
<map id="TfParser_map" name="TfParser_map">
<area href="classarmnn_tf_parser_1_1_i_tf_parser.html" title="Parses a directed acyclic graph from a tensorflow protobuf file. " alt="ITfParser" shape="rect" coords="0,0,64,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae2d544957c50461d305b2517581c86d0"><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_tf_parser_1_1_tf_parser.html#ae2d544957c50461d305b2517581c86d0">CreateNetworkFromTextFile</a> (const char *graphFile, const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;inputShapes, const std::vector&lt; std::string &gt; &amp;requestedOutputs) override</td></tr>
<tr class="memdesc:ae2d544957c50461d305b2517581c86d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the network from a protobuf text file on the disk. <a href="#ae2d544957c50461d305b2517581c86d0">More...</a><br /></td></tr>
<tr class="separator:ae2d544957c50461d305b2517581c86d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb0edadd00c78430efbdc02844ef379a"><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_tf_parser_1_1_tf_parser.html#afb0edadd00c78430efbdc02844ef379a">CreateNetworkFromBinaryFile</a> (const char *graphFile, const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;inputShapes, const std::vector&lt; std::string &gt; &amp;requestedOutputs) override</td></tr>
<tr class="memdesc:afb0edadd00c78430efbdc02844ef379a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the network from a protobuf binary file on the disk. <a href="#afb0edadd00c78430efbdc02844ef379a">More...</a><br /></td></tr>
<tr class="separator:afb0edadd00c78430efbdc02844ef379a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd82aa5171feb1c852506964f3c5254b"><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_tf_parser_1_1_tf_parser.html#acd82aa5171feb1c852506964f3c5254b">CreateNetworkFromString</a> (const char *protoText, const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;inputShapes, const std::vector&lt; std::string &gt; &amp;requestedOutputs) override</td></tr>
<tr class="memdesc:acd82aa5171feb1c852506964f3c5254b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the network directly from protobuf text in a string. Useful for debugging/testing. <a href="#acd82aa5171feb1c852506964f3c5254b">More...</a><br /></td></tr>
<tr class="separator:acd82aa5171feb1c852506964f3c5254b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_tf_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#aba39201ebaeb0738f15a14b3c8da1f5a">GetNetworkInputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
<tr class="memdesc:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves 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>
<tr class="separator:aba39201ebaeb0738f15a14b3c8da1f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearmnn_tf_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#aee8c8fa7de3c87392791d9f8dd90655f">GetNetworkOutputBindingInfo</a> (const std::string &amp;name) const override</td></tr>
<tr class="memdesc:aee8c8fa7de3c87392791d9f8dd90655f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves 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>
<tr class="separator:aee8c8fa7de3c87392791d9f8dd90655f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52c2ae3fa88f24fcf37a08672d217100"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#a52c2ae3fa88f24fcf37a08672d217100">TfParser</a> ()</td></tr>
<tr class="separator:a52c2ae3fa88f24fcf37a08672d217100"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ad3c8cd69190956793af7af503dc495cd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad3c8cd69190956793af7af503dc495cd"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#ad3c8cd69190956793af7af503dc495cd">ParsedConstTfOperation</a></td></tr>
<tr class="separator:ad3c8cd69190956793af7af503dc495cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97caa75ebdb49fc10250742b33d29ae7"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#a97caa75ebdb49fc10250742b33d29ae7">ParsedMatMulTfOperation</a></td></tr>
<tr class="separator:a97caa75ebdb49fc10250742b33d29ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac28271f7220cd595de55dbb7f99f4a63"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html#ac28271f7220cd595de55dbb7f99f4a63">ParsedMulTfOperation</a></td></tr>
<tr class="separator:ac28271f7220cd595de55dbb7f99f4a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html">ITfParser</a></td></tr>
<tr class="memitem:acef5ea7cde55834460c7d8c79d646242 inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html">ITfParser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#acef5ea7cde55834460c7d8c79d646242">CreateRaw</a> ()</td></tr>
<tr class="separator:acef5ea7cde55834460c7d8c79d646242 inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6abaf60481f0791c686ed3b97818bd0c inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacearmnn_tf_parser.html#af7cec8b9a69e02f18a5de38502675d94">ITfParserPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a6abaf60481f0791c686ed3b97818bd0c">Create</a> ()</td></tr>
<tr class="separator:a6abaf60481f0791c686ed3b97818bd0c inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af462572a18d8158847b326970d42c246 inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#af462572a18d8158847b326970d42c246">Destroy</a> (<a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html">ITfParser</a> *parser)</td></tr>
<tr class="separator:af462572a18d8158847b326970d42c246 inherit pub_static_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_tf_parser_1_1_i_tf_parser')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html">ITfParser</a></td></tr>
<tr class="memitem:a7b445ea802d4a7cba92614c5adafb615 inherit pro_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a7b445ea802d4a7cba92614c5adafb615">~ITfParser</a> ()</td></tr>
<tr class="separator:a7b445ea802d4a7cba92614c5adafb615 inherit pro_methods_classarmnn_tf_parser_1_1_i_tf_parser"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="_tf_parser_8hpp_source.html#l00064">64</a> of file <a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a52c2ae3fa88f24fcf37a08672d217100"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52c2ae3fa88f24fcf37a08672d217100">&#9670;&nbsp;</a></span>TfParser()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html">TfParser</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l00513">513</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<p class="reference">References <a class="el" href="classarmnn_1_1_i_network.html#a4812e0137ee610310d23059efed2cb84">INetwork::AddAdditionLayer()</a>, <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="classarmnn_1_1_i_output_slot.html#ac1835f8756a9f03c02fcf9664e3a0fce">IOutputSlot::Connect()</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="_tensor_8hpp_source.html#l00092">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.html#l00093">TensorInfo::GetNumElements()</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="classarmnn_1_1_i_output_slot.html#a9943775a364fc4ab53b85ac88f311886">IOutputSlot::GetTensorInfo()</a>, <a class="el" href="_tf_parser_8hpp_source.html#l00049">WithOutputTensorIndex&lt; T &gt;::m_Index</a>, <a class="el" href="_tf_parser_8hpp_source.html#l00048">WithOutputTensorIndex&lt; T &gt;::m_IndexedValue</a>, <a class="el" href="_tf_parser_8hpp_source.html#l00096">TfParser::ParsedConstTfOperation</a>, <a class="el" href="_tensor_8hpp_source.html#l00090">TensorInfo::SetShape()</a>, and <a class="el" href="classarmnn_1_1_i_output_slot.html#a5ee4a6c9a2481245487b1b1a70d20fd0">IOutputSlot::SetTensorInfo()</a>.</p>
<div class="fragment"><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; : m_Network(<span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>)</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;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="afb0edadd00c78430efbdc02844ef379a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb0edadd00c78430efbdc02844ef379a">&#9670;&nbsp;</a></span>CreateNetworkFromBinaryFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromBinaryFile </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>graphFile</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>inputShapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>requestedOutputs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the network from a protobuf binary file on the disk. </p>
<p>Implements <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a55a1948e089db582acefcb0bb8921ad3">ITfParser</a>.</p>
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l03566">3566</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>.</p>
<div class="fragment"><div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;{</div><div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160; FILE* fd = fopen(graphFile, <span class="stringliteral">&quot;rb&quot;</span>);</div><div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;</div><div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160; <span class="keywordflow">if</span> (fd == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160; {</div><div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_file_not_found_exception.html">FileNotFoundException</a>(</div><div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160; boost::str(</div><div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160; boost::format(</div><div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160; <span class="stringliteral">&quot;Graph file %1% failed to open %2%&quot;</span>)</div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160; % graphFile</div><div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160; }</div><div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;</div><div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160; <span class="comment">// Parses the file into a message.</span></div><div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160; tensorflow::GraphDef graphDef;</div><div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;</div><div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160; google::protobuf::io::FileInputStream inStream(fileno(fd));</div><div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160; google::protobuf::io::CodedInputStream codedStream(&amp;inStream);</div><div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160; codedStream.SetTotalBytesLimit(INT_MAX, INT_MAX);</div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160; <span class="keywordtype">bool</span> success = graphDef.ParseFromCodedStream(&amp;codedStream);</div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160; fclose(fd);</div><div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160;</div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160; {</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(</div><div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160; boost::str(</div><div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160; boost::format(</div><div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160; <span class="stringliteral">&quot;Failed to parse protobuf file %1% %2%&quot;</span>)</div><div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160; % graphFile</div><div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160; }</div><div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;</div><div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromGraphDef(graphDef, inputShapes, requestedOutputs);</div><div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;}</div><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>
<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>
<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>
</div><!-- fragment -->
</div>
</div>
<a id="acd82aa5171feb1c852506964f3c5254b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd82aa5171feb1c852506964f3c5254b">&#9670;&nbsp;</a></span>CreateNetworkFromString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromString </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>protoText</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>inputShapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>requestedOutputs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the network directly from protobuf text in a string. Useful for debugging/testing. </p>
<p>Implements <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a985d357617c1627bbf35b3d9841ffe8c">ITfParser</a>.</p>
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l03546">3546</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>.</p>
<div class="fragment"><div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160;{</div><div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160; <span class="comment">// Parses the string into a message.</span></div><div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160; tensorflow::GraphDef graphDef;</div><div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160; <span class="keywordtype">bool</span> success = google::protobuf::TextFormat::ParseFromString(protoText, &amp;graphDef);</div><div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;</div><div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160; {</div><div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(</div><div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160; boost::str(</div><div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160; boost::format(</div><div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160; <span class="stringliteral">&quot;Failed to parse graph file %1%&quot;</span>)</div><div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160; }</div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;</div><div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromGraphDef(graphDef, inputShapes, requestedOutputs);</div><div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160;}</div><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>
<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>
</div><!-- fragment -->
</div>
</div>
<a id="ae2d544957c50461d305b2517581c86d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2d544957c50461d305b2517581c86d0">&#9670;&nbsp;</a></span>CreateNetworkFromTextFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacearmnn.html#ace74f6f9feb95a964a49d79458232703">INetworkPtr</a> CreateNetworkFromTextFile </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>graphFile</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::map&lt; std::string, <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>inputShapes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::string &gt; &amp;&#160;</td>
<td class="paramname"><em>requestedOutputs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the network from a protobuf text file on the disk. </p>
<p>Implements <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a2006ec5e8da2ebf087eedbd75652619e">ITfParser</a>.</p>
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l03511">3511</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>.</p>
<div class="fragment"><div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;{</div><div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160; FILE* fd = fopen(graphFile, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;</div><div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160; <span class="keywordflow">if</span> (fd == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160; {</div><div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_file_not_found_exception.html">FileNotFoundException</a>(</div><div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160; boost::str(</div><div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160; boost::format(</div><div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160; <span class="stringliteral">&quot;Graph file %1% failed to open %2%&quot;</span>)</div><div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160; % graphFile</div><div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160; }</div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;</div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160; <span class="comment">// Parses the file into a message.</span></div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160; tensorflow::GraphDef graphDef;</div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160; <span class="keyword">auto</span> input = <span class="keyword">new</span> google::protobuf::io::FileInputStream(fileno(fd));</div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160; <span class="keywordtype">bool</span> success = google::protobuf::TextFormat::Parse(input, &amp;graphDef);</div><div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160; <span class="keyword">delete</span> input;</div><div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160; fclose(fd);</div><div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;</div><div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160; <span class="keywordflow">if</span> (!success)</div><div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160; {</div><div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.html">ParseException</a>(</div><div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160; boost::str(</div><div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160; boost::format(</div><div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160; <span class="stringliteral">&quot;Failed to parse graph file %1%&quot;</span>)</div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160; % <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160; }</div><div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;</div><div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160; <span class="keywordflow">return</span> CreateNetworkFromGraphDef(graphDef, inputShapes, requestedOutputs);</div><div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;}</div><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>
<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>
<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>
</div><!-- fragment -->
</div>
</div>
<a id="aba39201ebaeb0738f15a14b3c8da1f5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba39201ebaeb0738f15a14b3c8da1f5a">&#9670;&nbsp;</a></span>GetNetworkInputBindingInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacearmnn_tf_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkInputBindingInfo </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves binding info (layer id and tensor info) for the network input identified by the given layer name. </p>
<p>Implements <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#adbba18b867f84bfcd3c88d06f275eac9">ITfParser</a>.</p>
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l03645">3645</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;{</div><div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160; <span class="keywordflow">return</span> GetBindingInfo(name, <span class="stringliteral">&quot;input&quot;</span>, m_NetworkInputsBindingInfo);</div><div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="aee8c8fa7de3c87392791d9f8dd90655f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee8c8fa7de3c87392791d9f8dd90655f">&#9670;&nbsp;</a></span>GetNetworkOutputBindingInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacearmnn_tf_parser.html#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> GetNetworkOutputBindingInfo </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves binding info (layer id and tensor info) for the network output identified by the given layer name. </p>
<p>Implements <a class="el" href="classarmnn_tf_parser_1_1_i_tf_parser.html#a99d33c004ce680f49893c9254d9bff5a">ITfParser</a>.</p>
<p class="definition">Definition at line <a class="el" href="_tf_parser_8cpp_source.html#l03650">3650</a> of file <a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a>.</p>
<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="classarmnn_1_1_i_connectable_layer.html#afcc1c3a20bd2860e0ddd21674389246f">IConnectableLayer::GetName()</a>.</p>
<div class="fragment"><div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160;{</div><div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160; <span class="keywordflow">return</span> GetBindingInfo(name, <span class="stringliteral">&quot;output&quot;</span>, m_NetworkOutputsBindingInfo);</div><div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="ad3c8cd69190956793af7af503dc495cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3c8cd69190956793af7af503dc495cd">&#9670;&nbsp;</a></span>ParsedConstTfOperation</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class ParsedConstTfOperation</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_tf_parser_8hpp_source.html#l00096">96</a> of file <a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.html#l00513">TfParser::TfParser()</a>.</p>
</div>
</div>
<a id="a97caa75ebdb49fc10250742b33d29ae7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97caa75ebdb49fc10250742b33d29ae7">&#9670;&nbsp;</a></span>ParsedMatMulTfOperation</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class ParsedMatMulTfOperation</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_tf_parser_8hpp_source.html#l00097">97</a> of file <a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.html#l02414">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
</div>
</div>
<a id="ac28271f7220cd595de55dbb7f99f4a63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac28271f7220cd595de55dbb7f99f4a63">&#9670;&nbsp;</a></span>ParsedMulTfOperation</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class ParsedMulTfOperation</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_tf_parser_8hpp_source.html#l00098">98</a> of file <a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.html#l02414">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/armnnTfParser/<a class="el" href="_tf_parser_8hpp_source.html">TfParser.hpp</a></li>
<li>src/armnnTfParser/<a class="el" href="_tf_parser_8cpp_source.html">TfParser.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacearmnn_tf_parser.html">armnnTfParser</a></li><li class="navelem"><a class="el" href="classarmnn_tf_parser_1_1_tf_parser.html">TfParser</a></li>
<li class="footer">Generated on Fri Mar 13 2020 16:07:06 for ArmNN by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>