<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: Member List</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>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classarmnn_onnx_parser_1_1_onnx_parser_impl.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">OnnxParserImpl Member List</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a>, including all inherited members.</p>
<table class="directory">
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a32a96909bc8a8ee9076bd4d5c1028301">CreateNetworkFromBinary</a>(const std::vector&lt; uint8_t &gt; &amp;binaryContent)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#afe2f6ff5cc92c32d24f5c2f3bf2c8ae8">CreateNetworkFromBinary</a>(const std::vector&lt; uint8_t &gt; &amp;binaryContent, const std::map&lt; std::string, armnn::TensorShape &gt; &amp;inputShapes)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#aed935c554e4f6a4e7b9dcde057d00877">CreateNetworkFromBinaryFile</a>(const char *graphFile)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a430131420f20d32b8ae2281c51dcb3ae">CreateNetworkFromBinaryFile</a>(const char *graphFile, const std::map&lt; std::string, armnn::TensorShape &gt; &amp;inputShapes)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a30c0c947bb15e86ee6d535ecd934c0a6">CreateNetworkFromString</a>(const std::string &amp;protoText)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a375b0e662129d894cd7627e90f1007cc">CreateNetworkFromString</a>(const std::string &amp;protoText, const std::map&lt; std::string, armnn::TensorShape &gt; &amp;inputShapes)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#aaf4ce461aa35597cf80954314a3cb0e1">CreateNetworkFromTextFile</a>(const char *graphFile)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a47020c5078f437e9e7a966fcdb42ea30">CreateNetworkFromTextFile</a>(const char *graphFile, const std::map&lt; std::string, armnn::TensorShape &gt; &amp;inputShapes)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a7cf8b801043e1eccd5e6db1325eaa4fe">GetInputs</a>(ModelPtr &amp;model)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a8b053a6c449d0814cc831c916c126668">GetNetworkInputBindingInfo</a>(const std::string &amp;name) const</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a4b1fdcb1985af12dd1848a9ffa5d3271">GetNetworkOutputBindingInfo</a>(const std::string &amp;name) const</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#ad116319e33228bc23ec505887d3eee4d">GetOutputs</a>(ModelPtr &amp;model)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#aa09a8bb02eed50715082d8b7fccd2f8d">GetVersion</a>()</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#ac81510b21cb2b5719cce34474ad01675">GraphPtr</a> typedef</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a8e30b9dff215c314959ca3145e939338">LoadModelFromBinary</a>(const std::vector&lt; uint8_t &gt; &amp;binaryContent)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#acf9c6119ceb99755bc1f86c5a325c796">LoadModelFromBinaryFile</a>(const char *fileName)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a181f87cf45fdc9f040a41c985ce7f8cd">LoadModelFromString</a>(const std::string &amp;inputString)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a975a79b9b35d51ea81c42c05d245e7c0">LoadModelFromTextFile</a>(const char *fileName)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#ad131103003f2f4c6e4e3a7406192ad30">OnnxParserImpl</a>()</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a74e612d0e7242695de575fb44e7f0762">ValidateInputs</a>(const onnx::NodeProto &amp;node, TypePair validInputs, const Location &amp;location)</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html#a02c6251df76d47f18f24a734a8a2e2e8">~OnnxParserImpl</a>()=default</td><td class="entry"><a class="el" href="classarmnn_onnx_parser_1_1_onnx_parser_impl.html">OnnxParserImpl</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu May 16 2024 09:32:00 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
