<!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: src/armnnCaffeParser/CaffeParser.cpp File 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('_caffe_parser_8cpp.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="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">CaffeParser.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_caffe_parser_8hpp_source.html">CaffeParser.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_record_by_record_caffe_parser_8hpp_source.html">RecordByRecordCaffeParser.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_descriptors_8hpp_source.html">armnn/Descriptors.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_i_network_8hpp_source.html">armnn/INetwork.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_utils_8hpp_source.html">armnn/Utils.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_exceptions_8hpp_source.html">armnn/Exceptions.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_graph_topological_sort_8hpp_source.html">GraphTopologicalSort.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_verification_helpers_8hpp_source.html">VerificationHelpers.hpp</a>&quot;</code><br />
<code>#include &lt;boost/numeric/conversion/cast.hpp&gt;</code><br />
<code>#include &lt;boost/assert.hpp&gt;</code><br />
<code>#include &lt;boost/format.hpp&gt;</code><br />
<code>#include &quot;caffe/proto/caffe.pb.h&quot;</code><br />
<code>#include &lt;google/protobuf/io/coded_stream.h&gt;</code><br />
<code>#include &lt;google/protobuf/io/zero_copy_stream.h&gt;</code><br />
<code>#include &lt;google/protobuf/io/zero_copy_stream_impl.h&gt;</code><br />
<code>#include &lt;google/protobuf/text_format.h&gt;</code><br />
<code>#include &lt;google/protobuf/stubs/common.h&gt;</code><br />
<code>#include &lt;google/protobuf/stubs/once.h&gt;</code><br />
<code>#include &lt;google/protobuf/descriptor.h&gt;</code><br />
<code>#include &lt;google/protobuf/generated_message_reflection.h&gt;</code><br />
<code>#include &lt;google/protobuf/reflection_ops.h&gt;</code><br />
<code>#include &lt;google/protobuf/wire_format.h&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;queue&gt;</code><br />
<code>#include &lt;fcntl.h&gt;</code><br />
</div>
<p><a href="_caffe_parser_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacearmnn_caffe_parser"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_caffe_parser.html">armnnCaffeParser</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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7553d91772274ed9b103824bbf7f75a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_caffe_parser_8cpp.html#a7553d91772274ed9b103824bbf7f75a5">GET_OPTIONAL_WITH_VECTOR_FALLBACK</a>(PARAM,  PARAM_TYPE,  OPTIONAL_VALUE,  FALLBACK_VECTOR,  VALUE_TYPE,  DEFAULT_VALUE)</td></tr>
<tr class="separator:a7553d91772274ed9b103824bbf7f75a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69f4a692d0095f6b19b0cd99cd75e465"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_caffe_parser_8cpp.html#a69f4a692d0095f6b19b0cd99cd75e465">GET_OPTIONAL_WITH_FALLBACK</a>(PARAM,  PARAM_TYPE,  OPTIONAL_VALUE,  FALLBACK_VALUE,  VALUE_TYPE,  DEFAULT_VALUE)</td></tr>
<tr class="separator:a69f4a692d0095f6b19b0cd99cd75e465"><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.html#af3fde7630e7c9df35cae9ed2b435dbed">TensorDescToBlobShape</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;desc)</td></tr>
<tr class="separator:af3fde7630e7c9df35cae9ed2b435dbed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a69f4a692d0095f6b19b0cd99cd75e465"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69f4a692d0095f6b19b0cd99cd75e465">&#9670;&nbsp;</a></span>GET_OPTIONAL_WITH_FALLBACK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_OPTIONAL_WITH_FALLBACK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PARAM, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PARAM_TYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">OPTIONAL_VALUE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">FALLBACK_VALUE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VALUE_TYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DEFAULT_VALUE&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">GetOptionalWithFallback( \</div><div class="line">        PARAM, \</div><div class="line">        [](<span class="keyword">const</span> PARAM_TYPE &amp; param, VALUE_TYPE defaultValue) \</div><div class="line">        { \</div><div class="line">            if (param.has_##OPTIONAL_VALUE ()) \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">true</span>, param.OPTIONAL_VALUE ()); \</div><div class="line">            } \</div><div class="line">            else \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">false</span>, defaultValue); \</div><div class="line">            } \</div><div class="line">        }, \</div><div class="line">        [](<span class="keyword">const</span> PARAM_TYPE &amp; param, VALUE_TYPE defaultValue) \</div><div class="line">        { \</div><div class="line">            if (param.has_##FALLBACK_VALUE ()) \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">true</span>, param.FALLBACK_VALUE ()); \</div><div class="line">            } \</div><div class="line">            else \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">false</span>, defaultValue); \</div><div class="line">            } \</div><div class="line">        }, \</div><div class="line">        DEFAULT_VALUE)</div></div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="_caffe_parser_8cpp_source.html#l00208">208</a> of file <a class="el" href="_caffe_parser_8cpp_source.html">CaffeParser.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_caffe_parser_8cpp_source.html#l00883">CaffeParserBase::ParsePoolingLayer()</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_OPTIONAL_WITH_VECTOR_FALLBACK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PARAM, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">PARAM_TYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">OPTIONAL_VALUE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">FALLBACK_VECTOR, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VALUE_TYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DEFAULT_VALUE&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">GetOptionalWithFallback( \</div><div class="line">        PARAM, \</div><div class="line">        [](<span class="keyword">const</span> PARAM_TYPE &amp; param, VALUE_TYPE defaultValue) \</div><div class="line">        { \</div><div class="line">            if (param.has_##OPTIONAL_VALUE ()) \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">true</span>, param.OPTIONAL_VALUE ()); \</div><div class="line">            } \</div><div class="line">            else \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">false</span>, defaultValue); \</div><div class="line">            } \</div><div class="line">        }, \</div><div class="line">        [](<span class="keyword">const</span> PARAM_TYPE &amp; param, VALUE_TYPE defaultValue) \</div><div class="line">        { \</div><div class="line">            if (param.FALLBACK_VECTOR##_size() &gt; 0) \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">true</span>, (param.FALLBACK_VECTOR ()).Get(0)); \</div><div class="line">            } \</div><div class="line">            else \</div><div class="line">            { \</div><div class="line">                return std::make_pair(<span class="keyword">false</span>, defaultValue); \</div><div class="line">            } \</div><div class="line">        }, \</div><div class="line">        DEFAULT_VALUE)</div></div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="_caffe_parser_8cpp_source.html#l00176">176</a> of file <a class="el" href="_caffe_parser_8cpp_source.html">CaffeParser.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_caffe_parser_8cpp_source.html#l00701">CaffeParserBase::ParseConvLayer()</a>.</p>

</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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_04760fd1fb320650b591e359d321263b.html">armnnCaffeParser</a></li><li class="navelem"><a class="el" href="_caffe_parser_8cpp.html">CaffeParser.cpp</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:06:59 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>
