arm_compute v18.01
Change-Id: I9bfa178c2e38bfd5fc812e62aab6760d87748e05
diff --git a/documentation/graph__googlenet_8cpp.xhtml b/documentation/graph__googlenet_8cpp.xhtml
index 295e488..4fc10d9 100644
--- a/documentation/graph__googlenet_8cpp.xhtml
+++ b/documentation/graph__googlenet_8cpp.xhtml
@@ -40,7 +40,7 @@
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Compute Library
-  <span id="projectnumber">17.12</span>
+  <span id="projectnumber">18.01</span>
</div>
</td>
</tr>
@@ -132,15 +132,12 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:af705498cb98cd0e38e84b36e0b0fdd4e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="graph__googlenet_8cpp.xhtml#af705498cb98cd0e38e84b36e0b0fdd4e">main_graph_googlenet</a> (int argc, const char **argv)</td></tr>
-<tr class="memdesc:af705498cb98cd0e38e84b36e0b0fdd4e"><td class="mdescLeft"> </td><td class="mdescRight">Example demonstrating how to implement Googlenet's network using the Compute Library's graph API. <a href="#af705498cb98cd0e38e84b36e0b0fdd4e">More...</a><br /></td></tr>
-<tr class="separator:af705498cb98cd0e38e84b36e0b0fdd4e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a217dbf8b442f20279ea00b898af96f52"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="graph__googlenet_8cpp.xhtml#a217dbf8b442f20279ea00b898af96f52">main</a> (int argc, const char **argv)</td></tr>
-<tr class="memdesc:a217dbf8b442f20279ea00b898af96f52"><td class="mdescLeft"> </td><td class="mdescRight">Main program for Googlenet. <a href="#a217dbf8b442f20279ea00b898af96f52">More...</a><br /></td></tr>
-<tr class="separator:a217dbf8b442f20279ea00b898af96f52"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="graph__googlenet_8cpp.xhtml#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
+<tr class="memdesc:a3c04138a5bfe5d72780bb7e82a18e627"><td class="mdescLeft"> </td><td class="mdescRight">Main program for Googlenet. <a href="#a3c04138a5bfe5d72780bb7e82a18e627">More...</a><br /></td></tr>
+<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a217dbf8b442f20279ea00b898af96f52"></a>
+<a class="anchor" id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -153,7 +150,7 @@
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const char ** </td>
+ <td class="paramtype">char ** </td>
<td class="paramname"><em>argv</em> </td>
</tr>
<tr>
@@ -173,74 +170,8 @@
</dd>
</dl>
-<p>Definition at line <a class="el" href="graph__googlenet_8cpp_source.xhtml#l00201">201</a> of file <a class="el" href="graph__googlenet_8cpp_source.xhtml">graph_googlenet.cpp</a>.</p>
-
-<p>References <a class="el" href="graph__googlenet_8cpp_source.xhtml#l00100">main_graph_googlenet()</a>, and <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00069">arm_compute::utils::run_example()</a>.</p>
-<div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1utils.xhtml#a4c9395db2c8b8d0c336656a7b58fca3e">arm_compute::utils::run_example</a>(argc, argv, <a class="code" href="graph__googlenet_8cpp.xhtml#af705498cb98cd0e38e84b36e0b0fdd4e">main_graph_googlenet</a>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div><div class="ttc" id="namespacearm__compute_1_1utils_xhtml_a4c9395db2c8b8d0c336656a7b58fca3e"><div class="ttname"><a href="namespacearm__compute_1_1utils.xhtml#a4c9395db2c8b8d0c336656a7b58fca3e">arm_compute::utils::run_example</a></div><div class="ttdeci">int run_example(int argc, const char **argv, example &func)</div><div class="ttdoc">Run an example and handle the potential exceptions it throws. </div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8cpp_source.xhtml#l00069">Utils.cpp:69</a></div></div>
-<div class="ttc" id="graph__googlenet_8cpp_xhtml_af705498cb98cd0e38e84b36e0b0fdd4e"><div class="ttname"><a href="graph__googlenet_8cpp.xhtml#af705498cb98cd0e38e84b36e0b0fdd4e">main_graph_googlenet</a></div><div class="ttdeci">void main_graph_googlenet(int argc, const char **argv)</div><div class="ttdoc">Example demonstrating how to implement Googlenet&#39;s network using the Compute Library&#39;s graph API...</div><div class="ttdef"><b>Definition:</b> <a href="graph__googlenet_8cpp_source.xhtml#l00100">graph_googlenet.cpp:100</a></div></div>
-</div><!-- fragment -->
-</div>
-</div>
-<a class="anchor" id="af705498cb98cd0e38e84b36e0b0fdd4e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void main_graph_googlenet </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>argc</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char ** </td>
- <td class="paramname"><em>argv</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Example demonstrating how to implement Googlenet's network using the Compute Library's graph API. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>Number of arguments </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>Arguments ( [optional] Target (0 = NEON, 1 = OpenCL), [optional] Path to the weights folder, [optional] image, [optional] labels ) </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="graph__googlenet_8cpp_source.xhtml#l00100">100</a> of file <a class="el" href="graph__googlenet_8cpp_source.xhtml">graph_googlenet.cpp</a>.</p>
-
-<p>References <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047a041485a3394541feee82a34d40249d70">arm_compute::graph::ActivationLayer</a>, <a class="el" href="namespacearm__compute.xhtml#a9172da722f0a434e5cc07c0a3c115d93afcefd647d6a866603c627b11347c707a">arm_compute::AVG</a>, <a class="el" href="namespacearm__compute.xhtml#a1fece1bd804e64f39f602d1c3969849aa5bdce8e6d9dc3efbbd31e90a8a181dff">arm_compute::CEIL</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047aa252659b59a03bc61e5ec827ab4448b7">arm_compute::graph::ConvolutionLayer</a>, <a class="el" href="namespacearm__compute.xhtml#ad4bb8dabdbf8ad75e34220cc666b59caa980fef040549733973683b1a868f96e5">arm_compute::CROSS_MAP</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a92cf6a83b4d54786334cc37a7391a2a4c5d06b02c97731aaa976179c62dcf76">arm_compute::graph::DIRECT</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047a658061ff1dac70c02116fae6c044da1a">arm_compute::graph::FullyConnectedLayer</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a92cf6a83b4d54786334cc37a7391a2a5174aac3927faa9ee34befb7fc87a9e3">arm_compute::graph::GEMM</a>, <a class="el" href="_graph_utils_8h_source.xhtml#l00212">arm_compute::graph_utils::get_input_accessor()</a>, <a class="el" href="_graph_utils_8h_source.xhtml#l00254">arm_compute::graph_utils::get_output_accessor()</a>, <a class="el" href="_graph_utils_8h_source.xhtml#l00189">arm_compute::graph_utils::get_weights_accessor()</a>, <a class="el" href="namespacearm__compute.xhtml#adf2ced65e536375a1c96425d9fced858a26a4b44a837bf97b972628509912b4a5">arm_compute::MAX</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a8d5e69e9a697c2007e241eb413c9833bacaf162e9233294cadf62d2a71a14ca09">arm_compute::graph::NEON</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047a227ecc6e858c8d1f61664f1967173bea">arm_compute::graph::NormalizationLayer</a>, <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047aea068ae5aae640d018c4300bc7619575">arm_compute::graph::PoolingLayer</a>, <a class="el" href="classarm__compute_1_1_activation_layer_info.xhtml#a56297e0f7b215eea46c818cb7528d9eaad346bb4679d29be241279f15d7795c1c">ActivationLayerInfo::RELU</a>, <a class="el" href="classarm__compute_1_1graph_1_1_graph.xhtml#a13a43e6d814de94978c515cb084873b1">Graph::run()</a>, <a class="el" href="_graph_utils_8h_source.xhtml#l00230">arm_compute::graph_utils::set_target_hint()</a>, and <a class="el" href="namespacearm__compute_1_1graph.xhtml#a9a2c9c31d675b34f6ec35cc1ca89e047a4a9567bc4a6c28a527c973010eaf9a25">arm_compute::graph::SoftmaxLayer</a>.</p>
-
-<p>Referenced by <a class="el" href="graph__googlenet_8cpp_source.xhtml#l00201">main()</a>.</p>
-<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  std::string data_path; <span class="comment">/* Path to the trainable data */</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  std::string image; <span class="comment">/* Image data */</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  std::string label; <span class="comment">/* Label data */</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  constexpr <span class="keywordtype">float</span> mean_r = 122.68f; <span class="comment">/* Mean value to subtract from red channel */</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  constexpr <span class="keywordtype">float</span> mean_g = 116.67f; <span class="comment">/* Mean value to subtract from green channel */</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  constexpr <span class="keywordtype">float</span> mean_b = 104.01f; <span class="comment">/* Mean value to subtract from blue channel */</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Set target. 0 (NEON), 1 (OpenCL). By default it is NEON</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="namespacearm__compute_1_1graph.xhtml#a8d5e69e9a697c2007e241eb413c9833b">TargetHint</a> target_hint = <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a9216738b309b6b230b7ba8bca5ba7477">set_target_hint</a>(argc > 1 ? std::strtol(argv[1], <span class="keyword">nullptr</span>, 10) : 0);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespacearm__compute_1_1graph.xhtml#a9a92cf6a83b4d54786334cc37a7391a2">ConvolutionMethodHint</a> convolution_hint = target_hint == TargetHint::NEON ? ConvolutionMethodHint::GEMM : ConvolutionMethodHint::DIRECT;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Parse arguments</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span>(argc < 2)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// Print help</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  std::cout << <span class="stringliteral">"Usage: "</span> << argv[0] << <span class="stringliteral">" [target] [path_to_data] [image] [labels]\n\n"</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  std::cout << <span class="stringliteral">"No data folder provided: using random values\n\n"</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(argc == 2)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  std::cout << <span class="stringliteral">"Usage: "</span> << argv[0] << <span class="stringliteral">" "</span> << argv[1] << <span class="stringliteral">" [path_to_data] [image] [labels]\n\n"</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  std::cout << <span class="stringliteral">"No data folder provided: using random values\n\n"</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(argc == 3)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  data_path = argv[2];</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  std::cout << <span class="stringliteral">"Usage: "</span> << argv[0] << <span class="stringliteral">" "</span> << argv[1] << <span class="stringliteral">" "</span> << argv[2] << <span class="stringliteral">" [image] [labels]\n\n"</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  std::cout << <span class="stringliteral">"No image provided: using random values\n\n"</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(argc == 4)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  data_path = argv[2];</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  image = argv[3];</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  std::cout << <span class="stringliteral">"Usage: "</span> << argv[0] << <span class="stringliteral">" "</span> << argv[1] << <span class="stringliteral">" "</span> << argv[2] << <span class="stringliteral">" "</span> << argv[3] << <span class="stringliteral">" [labels]\n\n"</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  std::cout << <span class="stringliteral">"No text file with labels provided: skipping output accessor\n\n"</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  data_path = argv[2];</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  image = argv[3];</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  label = argv[4];</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classarm__compute_1_1graph_1_1_graph.xhtml">Graph</a> graph;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  graph << target_hint</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_tensor.xhtml">Tensor</a>(<a class="code" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a>(<a class="code" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>(224U, 224U, 3U, 1U), 1, DataType::F32),</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#aedce0421da328fb2aaae190aede068e1">get_input_accessor</a>(image, mean_r, mean_g, mean_b))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_convolution_layer.xhtml">ConvolutionLayer</a>(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  7U, 7U, 64U,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv1/conv1_7x7_s2_w.npy"</span>),</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv1/conv1_7x7_s2_b.npy"</span>),</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(2, 2, 3, 3))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_activation_layer.xhtml">ActivationLayer</a>(<a class="code" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a>(ActivationLayerInfo::ActivationFunction::RELU))</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">PoolingLayer</a>(<a class="code" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>(PoolingType::MAX, 3, <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(2, 2, 0, 0, DimensionRoundingType::CEIL)))</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_normalization_layer.xhtml">NormalizationLayer</a>(<a class="code" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a>(NormType::CROSS_MAP, 5, 0.0001f, 0.75f))</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  << convolution_hint</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_convolution_layer.xhtml">ConvolutionLayer</a>(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  1U, 1U, 64U,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv2/conv2_3x3_reduce_w.npy"</span>),</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv2/conv2_3x3_reduce_b.npy"</span>),</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(1, 1, 0, 0))</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_activation_layer.xhtml">ActivationLayer</a>(<a class="code" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a>(ActivationLayerInfo::ActivationFunction::RELU))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_convolution_layer.xhtml">ConvolutionLayer</a>(</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  3U, 3U, 192U,</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv2/conv2_3x3_w.npy"</span>),</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/conv2/conv2_3x3_b.npy"</span>),</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(1, 1, 1, 1))</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_activation_layer.xhtml">ActivationLayer</a>(<a class="code" href="classarm__compute_1_1_activation_layer_info.xhtml">ActivationLayerInfo</a>(ActivationLayerInfo::ActivationFunction::RELU))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_normalization_layer.xhtml">NormalizationLayer</a>(<a class="code" href="classarm__compute_1_1_normalization_layer_info.xhtml">NormalizationLayerInfo</a>(NormType::CROSS_MAP, 5, 0.0001f, 0.75f))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">PoolingLayer</a>(<a class="code" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>(PoolingType::MAX, 3, <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(2, 2, 0, 0, DimensionRoundingType::CEIL)))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_3a"</span>, 64, std::make_tuple(96U, 128U), std::make_tuple(16U, 32U), 32U)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_3b"</span>, 128, std::make_tuple(128U, 192U), std::make_tuple(32U, 96U), 64U)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">PoolingLayer</a>(<a class="code" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>(PoolingType::MAX, 3, <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(2, 2, 0, 0, DimensionRoundingType::CEIL)))</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_4a"</span>, 192, std::make_tuple(96U, 208U), std::make_tuple(16U, 48U), 64U)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_4b"</span>, 160, std::make_tuple(112U, 224U), std::make_tuple(24U, 64U), 64U)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_4c"</span>, 128, std::make_tuple(128U, 256U), std::make_tuple(24U, 64U), 64U)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_4d"</span>, 112, std::make_tuple(144U, 288U), std::make_tuple(32U, 64U), 64U)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_4e"</span>, 256, std::make_tuple(160U, 320U), std::make_tuple(32U, 128U), 128U)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">PoolingLayer</a>(<a class="code" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>(PoolingType::MAX, 3, <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(2, 2, 0, 0, DimensionRoundingType::CEIL)))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_5a"</span>, 256, std::make_tuple(160U, 320U), std::make_tuple(32U, 128U), 128U)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  << get_inception_node(data_path, <span class="stringliteral">"inception_5b"</span>, 384, std::make_tuple(192U, 384U), std::make_tuple(48U, 128U), 128U)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">PoolingLayer</a>(<a class="code" href="classarm__compute_1_1_pooling_layer_info.xhtml">PoolingLayerInfo</a>(PoolingType::AVG, 7, <a class="code" href="classarm__compute_1_1_pad_stride_info.xhtml">PadStrideInfo</a>(1, 1, 0, 0, DimensionRoundingType::CEIL)))</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_fully_connected_layer.xhtml">FullyConnectedLayer</a>(</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  1000U,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/loss3/loss3_classifier_w.npy"</span>),</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">get_weights_accessor</a>(data_path, <span class="stringliteral">"/cnn_data/googlenet_model/loss3/loss3_classifier_b.npy"</span>))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_softmax_layer.xhtml">SoftmaxLayer</a>()</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  << <a class="code" href="classarm__compute_1_1graph_1_1_tensor.xhtml">Tensor</a>(<a class="code" href="namespacearm__compute_1_1graph__utils.xhtml#aaf0c8eff756108c8bb23aecf51d44f79">get_output_accessor</a>(label, 5));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  graph.<a class="code" href="classarm__compute_1_1graph_1_1_graph.xhtml#a13a43e6d814de94978c515cb084873b1">run</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div><div class="ttc" id="classarm__compute_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarm__compute_1_1_tensor_shape.xhtml">arm_compute::TensorShape</a></div><div class="ttdoc">Shape of a tensor. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_shape_8h_source.xhtml#l00038">TensorShape.h:38</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_fully_connected_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_fully_connected_layer.xhtml">arm_compute::graph::FullyConnectedLayer</a></div><div class="ttdoc">Fully connected layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_fully_connected_layer_8h_source.xhtml#l00038">FullyConnectedLayer.h:38</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_graph_xhtml_a13a43e6d814de94978c515cb084873b1"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_graph.xhtml#a13a43e6d814de94978c515cb084873b1">arm_compute::graph::Graph::run</a></div><div class="ttdeci">void run()</div><div class="ttdoc">Executes the graph. </div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph__utils_xhtml_aaf0c8eff756108c8bb23aecf51d44f79"><div class="ttname"><a href="namespacearm__compute_1_1graph__utils.xhtml#aaf0c8eff756108c8bb23aecf51d44f79">arm_compute::graph_utils::get_output_accessor</a></div><div class="ttdeci">std::unique_ptr< graph::ITensorAccessor > get_output_accessor(const std::string &labels_path, size_t top_n=5, std::ostream &output_stream=std::cout)</div><div class="ttdoc">Generates appropriate output accessor according to the specified labels_path. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_utils_8h_source.xhtml#l00254">GraphUtils.h:254</a></div></div>
-<div class="ttc" id="classarm__compute_1_1_normalization_layer_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_normalization_layer_info.xhtml">arm_compute::NormalizationLayerInfo</a></div><div class="ttdoc">Normalization Layer Information class. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00700">Types.h:700</a></div></div>
-<div class="ttc" id="classarm__compute_1_1_activation_layer_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_activation_layer_info.xhtml">arm_compute::ActivationLayerInfo</a></div><div class="ttdoc">Activation Layer Information class. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00650">Types.h:650</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph__utils_xhtml_aedce0421da328fb2aaae190aede068e1"><div class="ttname"><a href="namespacearm__compute_1_1graph__utils.xhtml#aedce0421da328fb2aaae190aede068e1">arm_compute::graph_utils::get_input_accessor</a></div><div class="ttdeci">std::unique_ptr< graph::ITensorAccessor > get_input_accessor(const std::string &ppm_path, float mean_r, float mean_g, float mean_b)</div><div class="ttdoc">Generates appropriate input accessor according to the specified ppm_path. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_utils_8h_source.xhtml#l00212">GraphUtils.h:212</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph__utils_xhtml_a9216738b309b6b230b7ba8bca5ba7477"><div class="ttname"><a href="namespacearm__compute_1_1graph__utils.xhtml#a9216738b309b6b230b7ba8bca5ba7477">arm_compute::graph_utils::set_target_hint</a></div><div class="ttdeci">graph::TargetHint set_target_hint(int target)</div><div class="ttdoc">Utility function to return the TargetHint. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_utils_8h_source.xhtml#l00230">GraphUtils.h:230</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph__utils_xhtml_a73a37a4970294106ed22e8f916ef3810"><div class="ttname"><a href="namespacearm__compute_1_1graph__utils.xhtml#a73a37a4970294106ed22e8f916ef3810">arm_compute::graph_utils::get_weights_accessor</a></div><div class="ttdeci">std::unique_ptr< graph::ITensorAccessor > get_weights_accessor(const std::string &path, const std::string &data_file)</div><div class="ttdoc">Generates appropriate weights accessor according to the specified path. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_utils_8h_source.xhtml#l00189">GraphUtils.h:189</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_normalization_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_normalization_layer.xhtml">arm_compute::graph::NormalizationLayer</a></div><div class="ttdoc">Normalization layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_normalization_layer_8h_source.xhtml#l00037">NormalizationLayer.h:37</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_a9a92cf6a83b4d54786334cc37a7391a2"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#a9a92cf6a83b4d54786334cc37a7391a2">arm_compute::graph::ConvolutionMethodHint</a></div><div class="ttdeci">ConvolutionMethodHint</div><div class="ttdoc">Convolution method hint to the graph executor. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2_types_8h_source.xhtml#l00084">Types.h:84</a></div></div>
-<div class="ttc" id="classarm__compute_1_1_pad_stride_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_pad_stride_info.xhtml">arm_compute::PadStrideInfo</a></div><div class="ttdoc">Padding and stride information class. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00460">Types.h:460</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_softmax_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_softmax_layer.xhtml">arm_compute::graph::SoftmaxLayer</a></div><div class="ttdoc">Softmax layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_softmax_layer_8h_source.xhtml#l00036">SoftmaxLayer.h:36</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_graph_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_graph.xhtml">arm_compute::graph::Graph</a></div><div class="ttdoc">Graph class. </div><div class="ttdef"><b>Definition:</b> <a href="_graph_8h_source.xhtml#l00043">Graph.h:43</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_pooling_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_pooling_layer.xhtml">arm_compute::graph::PoolingLayer</a></div><div class="ttdoc">Pooling layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_pooling_layer_8h_source.xhtml#l00037">PoolingLayer.h:37</a></div></div>
-<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_a8d5e69e9a697c2007e241eb413c9833b"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#a8d5e69e9a697c2007e241eb413c9833b">arm_compute::graph::TargetHint</a></div><div class="ttdeci">TargetHint</div><div class="ttdoc">< Execution hint to the graph executor </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2_types_8h_source.xhtml#l00076">Types.h:76</a></div></div>
-<div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml">arm_compute::TensorInfo</a></div><div class="ttdoc">Store the tensor&#39;s metadata. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00044">TensorInfo.h:44</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_activation_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_activation_layer.xhtml">arm_compute::graph::ActivationLayer</a></div><div class="ttdoc">Activation Layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_activation_layer_8h_source.xhtml#l00037">ActivationLayer.h:37</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_convolution_layer_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_convolution_layer.xhtml">arm_compute::graph::ConvolutionLayer</a></div><div class="ttdoc">Convolution layer node. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2nodes_2_convolution_layer_8h_source.xhtml#l00042">ConvolutionLayer.h:42</a></div></div>
-<div class="ttc" id="classarm__compute_1_1_pooling_layer_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_pooling_layer_info.xhtml">arm_compute::PoolingLayerInfo</a></div><div class="ttdoc">Pooling Layer Information class. </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00553">Types.h:553</a></div></div>
-<div class="ttc" id="classarm__compute_1_1graph_1_1_tensor_xhtml"><div class="ttname"><a href="classarm__compute_1_1graph_1_1_tensor.xhtml">arm_compute::graph::Tensor</a></div><div class="ttdoc">Tensor class. </div><div class="ttdef"><b>Definition:</b> <a href="graph_2_tensor_8h_source.xhtml#l00039">Tensor.h:39</a></div></div>
-</div><!-- fragment -->
+<p>Definition at line <a class="el" href="graph__googlenet_8cpp_source.xhtml#l00207">207</a> of file <a class="el" href="graph__googlenet_8cpp_source.xhtml">graph_googlenet.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> arm_compute::utils::run_example<GraphGooglenetExample>(argc, argv);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div></div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
@@ -249,7 +180,7 @@
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.xhtml">examples</a></li><li class="navelem"><a class="el" href="graph__googlenet_8cpp.xhtml">graph_googlenet.cpp</a></li>
- <li class="footer">Generated on Thu Dec 14 2017 23:48:33 for Compute Library by
+ <li class="footer">Generated on Wed Jan 24 2018 14:30:42 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>