blob: b7adbdefd1f261d76659a25847f71dc8fe84e132 [file] [log] [blame]
<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!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.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: NEFunctionFactory 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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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="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="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<td style="padding-left: 0.5em;">
<div id="projectname">
&#160;<span id="projectnumber">20.02.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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('classarm__compute_1_1graph_1_1backends_1_1_n_e_function_factory.xhtml','');});
/* @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="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">NEFunctionFactory Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Factory for generating NEON backend functions.
<a href="classarm__compute_1_1graph_1_1backends_1_1_n_e_function_factory.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_n_e_function_factory_8h_source.xhtml">NEFunctionFactory.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa7ac6bf065e64181f3c92fee4b3b5c79"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1_i_function.xhtml">arm_compute::IFunction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1graph_1_1backends_1_1_n_e_function_factory.xhtml#aa7ac6bf065e64181f3c92fee4b3b5c79">create</a> (<a class="el" href="classarm__compute_1_1graph_1_1_i_node.xhtml">INode</a> *node, <a class="el" href="classarm__compute_1_1graph_1_1_graph_context.xhtml">GraphContext</a> &amp;ctx)</td></tr>
<tr class="memdesc:aa7ac6bf065e64181f3c92fee4b3b5c79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a backend execution function depending on the node type. <a href="#aa7ac6bf065e64181f3c92fee4b3b5c79">More...</a><br /></td></tr>
<tr class="separator:aa7ac6bf065e64181f3c92fee4b3b5c79"><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>Factory for generating NEON backend functions. </p>
<p class="definition">Definition at line <a class="el" href="_n_e_function_factory_8h_source.xhtml#l00042">42</a> of file <a class="el" href="_n_e_function_factory_8h_source.xhtml">NEFunctionFactory.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aa7ac6bf065e64181f3c92fee4b3b5c79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7ac6bf065e64181f3c92fee4b3b5c79">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1_i_function.xhtml">IFunction</a> &gt; create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1graph_1_1_i_node.xhtml">INode</a> *&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classarm__compute_1_1graph_1_1_graph_context.xhtml">GraphContext</a> &amp;&#160;</td>
<td class="paramname"><em>ctx</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">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a backend execution function depending on the node type. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Node to create the backend function for </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Context to use</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Backend function </dd></dl>
<p class="definition">Definition at line <a class="el" href="_n_e_function_factory_8cpp_source.xhtml#l00186">186</a> of file <a class="el" href="_n_e_function_factory_8cpp_source.xhtml">NEFunctionFactory.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(node == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16">NodeType</a> <a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a> = node-&gt;type();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">switch</span>(<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a041485a3394541feee82a34d40249d70">NodeType::ActivationLayer</a>:</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> detail::create_activation_layer&lt;NEActivationLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;ActivationLayerNode *&gt;(node));</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad0146d2051fad860923cf31f7e00a732">NodeType::BatchNormalizationLayer</a>:</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> detail::create_batch_normalization_layer&lt;NEBatchNormalizationLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;BatchNormalizationLayerNode *&gt;(node));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16af5505217824e3e9e8000ef0d63360158">NodeType::ChannelShuffleLayer</a>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> detail::create_channel_shuffle_layer&lt;NEChannelShuffleLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;ChannelShuffleLayerNode *&gt;(node));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aa252659b59a03bc61e5ec827ab4448b7">NodeType::ConvolutionLayer</a>:</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1graph_1_1backends_1_1detail.xhtml#aca9f3683506635cbdffb2c57108910ed">detail::create_convolution_layer&lt;NEConvolutionLayerFunctions, NETargetInfo&gt;</a>(*polymorphic_downcast&lt;ConvolutionLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ac814c26a7c5317e2a2f58fe0e5a0d410">NodeType::DeconvolutionLayer</a>:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> detail::create_deconvolution_layer&lt;NEDeconvolutionLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;DeconvolutionLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5c436066fbad2e22ccab352c0d554809">NodeType::ConcatenateLayer</a>:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> detail::create_concatenate_layer&lt;NEConcatenateLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;ConcatenateLayerNode *&gt;(node));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5b7955cb74be105cc7e044a370d4fce8">NodeType::DepthwiseConvolutionLayer</a>:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> detail::create_depthwise_convolution_layer&lt;NEDepthwiseConvolutionLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;DepthwiseConvolutionLayerNode *&gt;(node));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6dc16ed47490b9162258248a67a28149">NodeType::DequantizationLayer</a>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> detail::create_dequantization_layer&lt;NEDequantizationLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;DequantizationLayerNode *&gt;(node));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ae1b0b91c003f871664a4e289977ef02e">NodeType::DetectionOutputLayer</a>:</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> detail::create_detection_output_layer&lt;CPPDetectionOutputLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;DetectionOutputLayerNode *&gt;(node));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a0e5a1913b18dbe59dcbcf4e85148802d">NodeType::DetectionPostProcessLayer</a>:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> detail::create_detection_post_process_layer&lt;NEDetectionPostProcessLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;DetectionPostProcessLayerNode *&gt;(node));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad1b3837fe6a80018e7002c7f7905439d">NodeType::EltwiseLayer</a>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> detail::create_eltwise_layer&lt;NEEltwiseFunctions, NETargetInfo&gt;(*polymorphic_downcast&lt;EltwiseLayerNode *&gt;(node));</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad87240455a60f188b358a370fe1a83a5">NodeType::FlattenLayer</a>:</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> detail::create_flatten_layer&lt;NEFlattenLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;FlattenLayerNode *&gt;(node));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a658061ff1dac70c02116fae6c044da1a">NodeType::FullyConnectedLayer</a>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> detail::create_fully_connected_layer&lt;NEFullyConnectedLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;FullyConnectedLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6f89e5fc5edf43300199d6bc8f5088de">NodeType::FusedConvolutionBatchNormalizationLayer</a>:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> detail::create_fused_convolution_batch_normalization_layer&lt;NEFusedLayerTypes, NETargetInfo&gt;(*polymorphic_downcast&lt;FusedConvolutionBatchNormalizationNode *&gt;(node), ctx);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5955c7816e24dbfab34403cca9a133fc">NodeType::FusedDepthwiseConvolutionBatchNormalizationLayer</a>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> detail::create_fused_depthwise_convolution_batch_normalization_layer&lt;NEFusedLayerTypes, NETargetInfo&gt;(*polymorphic_downcast&lt;FusedDepthwiseConvolutionBatchNormalizationNode *&gt;(node), ctx);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a227ecc6e858c8d1f61664f1967173bea">NodeType::NormalizationLayer</a>:</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1graph_1_1backends_1_1detail.xhtml#ab68902cd2bb95bf47f5967718015343c">detail::create_normalization_layer&lt;NENormalizationLayer, NETargetInfo&gt;</a>(*polymorphic_downcast&lt;NormalizationLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a979ac8e70d367e1e442d76f00b6f0ad1">NodeType::PadLayer</a>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> detail::create_pad_layer&lt;NEPadLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;PadLayerNode *&gt;(node));</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aa84a001cb23ac473e7aae73a9eaf369a">NodeType::PermuteLayer</a>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> detail::create_permute_layer&lt;NEPermute, NETargetInfo&gt;(*polymorphic_downcast&lt;PermuteLayerNode *&gt;(node));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aea068ae5aae640d018c4300bc7619575">NodeType::PoolingLayer</a>:</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> detail::create_pooling_layer&lt;NEPoolingLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;PoolingLayerNode *&gt;(node));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a44da30946f36dcb01ca8be92a1420536">NodeType::PReluLayer</a>:</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> detail::create_prelu_layer&lt;NEPReluLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;PReluLayerNode *&gt;(node));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a415d76e29ed6d61c9f71cc6f7cf3f656">NodeType::PrintLayer</a>:</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> detail::create_print_layer&lt;NETargetInfo&gt;(*polymorphic_downcast&lt;PrintLayerNode *&gt;(node));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a77329845031ba38f828a884f40beb69c">NodeType::PriorBoxLayer</a>:</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> detail::create_priorbox_layer&lt;NEPriorBoxLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;PriorBoxLayerNode *&gt;(node));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a399e260d5d6886e9917d4313cd05f6fe">NodeType::QuantizationLayer</a>:</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> detail::create_quantization_layer&lt;NEQuantizationLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;QuantizationLayerNode *&gt;(node));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16af119c4b7a889a65e39ef53786dce0c84">NodeType::ReorgLayer</a>:</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> detail::create_reorg_layer&lt;NEReorgLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;ReorgLayerNode *&gt;(node));</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a1ee0d44744be1e17e38ad5a4e9dcf5dd">NodeType::ReshapeLayer</a>:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> detail::create_reshape_layer&lt;NEReshapeLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;ReshapeLayerNode *&gt;(node));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aea2ded20d74b2bf7921551363737777e">NodeType::ResizeLayer</a>:</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> detail::create_resize_layer&lt;NEScale, NETargetInfo&gt;(*polymorphic_downcast&lt;ResizeLayerNode *&gt;(node));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a4a9567bc4a6c28a527c973010eaf9a25">NodeType::SoftmaxLayer</a>:</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> detail::create_softmax_layer&lt;NESoftmaxLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;SoftmaxLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6a1f3bd45caa35d2537fcacb4460920e">NodeType::StackLayer</a>:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> detail::create_stack_layer&lt;NEStackLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;StackLayerNode *&gt;(node));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a1634ae65e32998568feae7e5e8e3bb65">NodeType::UpsampleLayer</a>:</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> detail::create_upsample_layer&lt;NEUpsampleLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;UpsampleLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16afc71c950664ce080f333699aec4248a2">NodeType::YOLOLayer</a>:</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> detail::create_yolo_layer&lt;NEYOLOLayer, NETargetInfo&gt;(*polymorphic_downcast&lt;YOLOLayerNode *&gt;(node), ctx);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a041485a3394541feee82a34d40249d70"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a041485a3394541feee82a34d40249d70">arm_compute::graph::NodeType::ActivationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16aea068ae5aae640d018c4300bc7619575"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aea068ae5aae640d018c4300bc7619575">arm_compute::graph::NodeType::PoolingLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16ad0146d2051fad860923cf31f7e00a732"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad0146d2051fad860923cf31f7e00a732">arm_compute::graph::NodeType::BatchNormalizationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16af119c4b7a889a65e39ef53786dce0c84"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16af119c4b7a889a65e39ef53786dce0c84">arm_compute::graph::NodeType::ReorgLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16ac814c26a7c5317e2a2f58fe0e5a0d410"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ac814c26a7c5317e2a2f58fe0e5a0d410">arm_compute::graph::NodeType::DeconvolutionLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16ad87240455a60f188b358a370fe1a83a5"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad87240455a60f188b358a370fe1a83a5">arm_compute::graph::NodeType::FlattenLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a1634ae65e32998568feae7e5e8e3bb65"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a1634ae65e32998568feae7e5e8e3bb65">arm_compute::graph::NodeType::UpsampleLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a77329845031ba38f828a884f40beb69c"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a77329845031ba38f828a884f40beb69c">arm_compute::graph::NodeType::PriorBoxLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16aa84a001cb23ac473e7aae73a9eaf369a"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aa84a001cb23ac473e7aae73a9eaf369a">arm_compute::graph::NodeType::PermuteLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16ad1b3837fe6a80018e7002c7f7905439d"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ad1b3837fe6a80018e7002c7f7905439d">arm_compute::graph::NodeType::EltwiseLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a227ecc6e858c8d1f61664f1967173bea"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a227ecc6e858c8d1f61664f1967173bea">arm_compute::graph::NodeType::NormalizationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a5955c7816e24dbfab34403cca9a133fc"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5955c7816e24dbfab34403cca9a133fc">arm_compute::graph::NodeType::FusedDepthwiseConvolutionBatchNormalizationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a979ac8e70d367e1e442d76f00b6f0ad1"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a979ac8e70d367e1e442d76f00b6f0ad1">arm_compute::graph::NodeType::PadLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_1_1backends_1_1detail_xhtml_ab68902cd2bb95bf47f5967718015343c"><div class="ttname"><a href="namespacearm__compute_1_1graph_1_1backends_1_1detail.xhtml#ab68902cd2bb95bf47f5967718015343c">arm_compute::graph::backends::detail::create_normalization_layer&lt; NENormalizationLayer, NETargetInfo &gt;</a></div><div class="ttdeci">std::unique_ptr&lt; IFunction &gt; create_normalization_layer&lt; NENormalizationLayer, NETargetInfo &gt;(NormalizationLayerNode &amp;node, GraphContext &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_function_factory_8cpp_source.xhtml#l00156">NEFunctionFactory.cpp:156</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a6dc16ed47490b9162258248a67a28149"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6dc16ed47490b9162258248a67a28149">arm_compute::graph::NodeType::DequantizationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_1_1backends_1_1detail_xhtml_aca9f3683506635cbdffb2c57108910ed"><div class="ttname"><a href="namespacearm__compute_1_1graph_1_1backends_1_1detail.xhtml#aca9f3683506635cbdffb2c57108910ed">arm_compute::graph::backends::detail::create_convolution_layer&lt; NEConvolutionLayerFunctions, NETargetInfo &gt;</a></div><div class="ttdeci">std::unique_ptr&lt; IFunction &gt; create_convolution_layer&lt; NEConvolutionLayerFunctions, NETargetInfo &gt;(ConvolutionLayerNode &amp;node, GraphContext &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_function_factory_8cpp_source.xhtml#l00085">NEFunctionFactory.cpp:85</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a44da30946f36dcb01ca8be92a1420536"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a44da30946f36dcb01ca8be92a1420536">arm_compute::graph::NodeType::PReluLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a1ee0d44744be1e17e38ad5a4e9dcf5dd"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a1ee0d44744be1e17e38ad5a4e9dcf5dd">arm_compute::graph::NodeType::ReshapeLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16aa252659b59a03bc61e5ec827ab4448b7"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aa252659b59a03bc61e5ec827ab4448b7">arm_compute::graph::NodeType::ConvolutionLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16">arm_compute::graph::NodeType</a></div><div class="ttdeci">NodeType</div><div class="ttdoc">Supported nodes.</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2_types_8h_source.xhtml#l00132">Types.h:132</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a0e5a1913b18dbe59dcbcf4e85148802d"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a0e5a1913b18dbe59dcbcf4e85148802d">arm_compute::graph::NodeType::DetectionPostProcessLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a4a9567bc4a6c28a527c973010eaf9a25"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a4a9567bc4a6c28a527c973010eaf9a25">arm_compute::graph::NodeType::SoftmaxLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16afc71c950664ce080f333699aec4248a2"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16afc71c950664ce080f333699aec4248a2">arm_compute::graph::NodeType::YOLOLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a658061ff1dac70c02116fae6c044da1a"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a658061ff1dac70c02116fae6c044da1a">arm_compute::graph::NodeType::FullyConnectedLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16af5505217824e3e9e8000ef0d63360158"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16af5505217824e3e9e8000ef0d63360158">arm_compute::graph::NodeType::ChannelShuffleLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16aea2ded20d74b2bf7921551363737777e"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16aea2ded20d74b2bf7921551363737777e">arm_compute::graph::NodeType::ResizeLayer</a></div></div>
<div class="ttc" id="namespace_gemm_tuner_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">GemmTuner.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner.py:527</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a415d76e29ed6d61c9f71cc6f7cf3f656"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a415d76e29ed6d61c9f71cc6f7cf3f656">arm_compute::graph::NodeType::PrintLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a6a1f3bd45caa35d2537fcacb4460920e"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6a1f3bd45caa35d2537fcacb4460920e">arm_compute::graph::NodeType::StackLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a5c436066fbad2e22ccab352c0d554809"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5c436066fbad2e22ccab352c0d554809">arm_compute::graph::NodeType::ConcatenateLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a6f89e5fc5edf43300199d6bc8f5088de"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a6f89e5fc5edf43300199d6bc8f5088de">arm_compute::graph::NodeType::FusedConvolutionBatchNormalizationLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a5b7955cb74be105cc7e044a370d4fce8"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a5b7955cb74be105cc7e044a370d4fce8">arm_compute::graph::NodeType::DepthwiseConvolutionLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16ae1b0b91c003f871664a4e289977ef02e"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16ae1b0b91c003f871664a4e289977ef02e">arm_compute::graph::NodeType::DetectionOutputLayer</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_acac9cbaeea226ed297804c012dc12b16a399e260d5d6886e9917d4313cd05f6fe"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#acac9cbaeea226ed297804c012dc12b16a399e260d5d6886e9917d4313cd05f6fe">arm_compute::graph::NodeType::QuantizationLayer</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_n_e_function_factory_8cpp_source.xhtml#l00085">arm_compute::graph::backends::detail::create_convolution_layer&lt; NEConvolutionLayerFunctions, NETargetInfo &gt;()</a>, <a class="el" href="_n_e_function_factory_8cpp_source.xhtml#l00156">arm_compute::graph::backends::detail::create_normalization_layer&lt; NENormalizationLayer, NETargetInfo &gt;()</a>, <a class="el" href="classarm__compute_1_1graph_1_1_i_node.xhtml#a6b2d83e561886647467f86c20ce39bec">INode::type()</a>, and <a class="el" href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner::type</a>.</p>
<p class="reference">Referenced by <a class="el" href="_n_e_device_backend_8cpp_source.xhtml#l00140">NEDeviceBackend::configure_node()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>arm_compute/graph/backends/NEON/<a class="el" href="_n_e_function_factory_8h_source.xhtml">NEFunctionFactory.h</a></li>
<li>src/graph/backends/NEON/<a class="el" href="_n_e_function_factory_8cpp_source.xhtml">NEFunctionFactory.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="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1graph.xhtml">graph</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1graph_1_1backends.xhtml">backends</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1graph_1_1backends_1_1_n_e_function_factory.xhtml">NEFunctionFactory</a></li>
<li class="footer">Generated on Thu Mar 5 2020 16:07:18 for Compute Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>