<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: armnnCaffeParser Namespace 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>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespacearmnn_caffe_parser.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

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

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">armnnCaffeParser Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Caffe networks are loaded from protobuf files (binary or text) using the protobuf library and the generated code from caffe.pb.h.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_caffe_parser_1_1_caffe_parser.xhtml">CaffeParser</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_caffe_parser_1_1_caffe_parser_base.xhtml">CaffeParserBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_caffe_parser_1_1_i_caffe_parser.xhtml">ICaffeParser</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_caffe_parser_1_1_record_by_record_caffe_parser.xhtml">RecordByRecordCaffeParser</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a9084adbf804022c874039ad40d1939e9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_caffe_parser.xhtml#a9084adbf804022c874039ad40d1939e9">BindingPointInfo</a> = <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a></td></tr>
<tr class="separator:a9084adbf804022c874039ad40d1939e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33c76910f1980ffaa41c22e0151cce2a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_caffe_parser.xhtml#a33c76910f1980ffaa41c22e0151cce2a">ICaffeParserPtr</a> = std::unique_ptr&lt; <a class="el" href="classarmnn_caffe_parser_1_1_i_caffe_parser.xhtml">ICaffeParser</a>, void(*)(<a class="el" href="classarmnn_caffe_parser_1_1_i_caffe_parser.xhtml">ICaffeParser</a> *parser)&gt;</td></tr>
<tr class="separator:a33c76910f1980ffaa41c22e0151cce2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af3fde7630e7c9df35cae9ed2b435dbed"><td class="memItemLeft" align="right" valign="top">BlobShape&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_caffe_parser.xhtml#af3fde7630e7c9df35cae9ed2b435dbed">TensorDescToBlobShape</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> &amp;desc)</td></tr>
<tr class="separator:af3fde7630e7c9df35cae9ed2b435dbed"><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>Caffe networks are loaded from protobuf files (binary or text) using the protobuf library and the generated code from caffe.pb.h. </p>
<p>This gives us a caffe::NetParameter which is an in-memory version of the file. This contains a flat list of Caffe 'layers' (e.g. convolution, pooling etc.). Each layer has inputs (called "bottoms") and outputs (called "tops"). Data flows from bottom to top. The bottoms of a layer refer to the tops of other layers, not their names. The names of layers seem to be arbitrary (you could rename a layer and the network wouldn't need any other changes).</p>
<p>Some layers (e.g. Relu) can be configured so that their top and bottom are both the same. This is called an "in-place" layer and is a Caffe runtime feature used to reduce memory usage by modifying tensors in-place. This isn't relevant to the parser and so we preprocess these layers to convert them to regular layers, to result in a consistent graph structure. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a9084adbf804022c874039ad40d1939e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9084adbf804022c874039ad40d1939e9">&#9670;&nbsp;</a></span>BindingPointInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">BindingPointInfo</a> =  <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_i_caffe_parser_8hpp_source.xhtml#l00019">19</a> of file <a class="el" href="_i_caffe_parser_8hpp_source.xhtml">ICaffeParser.hpp</a>.</p>

</div>
</div>
<a id="a33c76910f1980ffaa41c22e0151cce2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33c76910f1980ffaa41c22e0151cce2a">&#9670;&nbsp;</a></span>ICaffeParserPtr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="namespacearmnn_caffe_parser.xhtml#a33c76910f1980ffaa41c22e0151cce2a">ICaffeParserPtr</a> =  std::unique_ptr&lt;<a class="el" href="classarmnn_caffe_parser_1_1_i_caffe_parser.xhtml">ICaffeParser</a>, void(*)(<a class="el" href="classarmnn_caffe_parser_1_1_i_caffe_parser.xhtml">ICaffeParser</a>* parser)&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_i_caffe_parser_8hpp_source.xhtml#l00022">22</a> of file <a class="el" href="_i_caffe_parser_8hpp_source.xhtml">ICaffeParser.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="af3fde7630e7c9df35cae9ed2b435dbed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3fde7630e7c9df35cae9ed2b435dbed">&#9670;&nbsp;</a></span>TensorDescToBlobShape()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BlobShape armnnCaffeParser::TensorDescToBlobShape </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>desc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00325">325</a> of file <a class="el" href="_caffe_parser_8cpp_source.xhtml">CaffeParser.cpp</a>.</p>

<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00092">TensorInfo::GetNumDimensions()</a>, and <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>.</p>

<p class="reference">Referenced by <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00611">CaffeParserBase::AddConvLayerWithDepthwiseConv()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00419">CaffeParserBase::AddConvLayerWithSplits()</a>, and <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00701">CaffeParserBase::ParseConvLayer()</a>.</p>
<div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;{</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    BlobShape ret;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; desc.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(); ++i)</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        ret.add_dim(i);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        ret.set_dim(boost::numeric_cast&lt;int&gt;(i), desc.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i]);</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    }</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00092">Tensor.hpp:92</a></div></div>
</div><!-- fragment -->
</div>
</div>
</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_caffe_parser.xhtml">armnnCaffeParser</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:09:21 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>
