blob: db152058e7ee6c924d95394ca09f33178949a5f9 [file] [log] [blame]
Nikhil Raj1dc83fe2024-05-16 09:47:51 +01001<!-- HTML header for doxygen 1.8.17-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
7<meta name="generator" content="Doxygen 1.8.17"/>
8<meta name="viewport" content="width=device-width, initial-scale=1"/>
9<title>Arm NN: Layer Class Reference</title>
10<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
15<script type="text/javascript" src="navtreedata.js"></script>
16<script type="text/javascript" src="navtree.js"></script>
17<link href="search/search.css" rel="stylesheet" type="text/css"/>
18<script type="text/javascript" src="search/searchdata.js"></script>
19<script type="text/javascript" src="search/search.js"></script>
20<script type="text/x-mathjax-config">
21 MathJax.Hub.Config({
22 extensions: ["tex2jax.js"],
23 jax: ["input/TeX","output/HTML-CSS"],
24});
25</script>
26<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
27<link href="doxygen.css" rel="stylesheet" type="text/css" />
28<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
29</head>
30<body>
31<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32<div id="titlearea">
33<table cellspacing="0" cellpadding="0">
34 <tbody>
35 <tr style="height: 56px;">
36 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
37 <td id="projectalign" style="padding-left: 0.9em;">
38 <div id="projectname">
39 &#160;<span id="projectnumber">24.05</span>
40 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
47<!-- Generated by Doxygen 1.8.17 -->
48<script type="text/javascript">
49/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
50var searchBox = new SearchBox("searchBox", "search",false,'Search');
51/* @license-end */
52</script>
53<script type="text/javascript" src="menudata.js"></script>
54<script type="text/javascript" src="menu.js"></script>
55<script type="text/javascript">
56/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
57$(function() {
58 initMenu('',true,false,'search.php','Search');
59 $(document).ready(function() { init_search(); });
60});
61/* @license-end */</script>
62<div id="main-nav"></div>
63</div><!-- top -->
64<div id="side-nav" class="ui-resizable side-nav-resizable">
65 <div id="nav-tree">
66 <div id="nav-tree-contents">
67 <div id="nav-sync" class="sync"></div>
68 </div>
69 </div>
70 <div id="splitbar" style="-moz-user-select:none;"
71 class="ui-resizable-handle">
72 </div>
73</div>
74<script type="text/javascript">
75/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
76$(document).ready(function(){initNavTree('classarmnn_1_1_layer.html',''); initResizable(); });
77/* @license-end */
78</script>
79<div id="doc-content">
80<!-- window showing the filter options -->
81<div id="MSearchSelectWindow"
82 onmouseover="return searchBox.OnSearchSelectShow()"
83 onmouseout="return searchBox.OnSearchSelectHide()"
84 onkeydown="return searchBox.OnSearchSelectKey(event)">
85</div>
86
87<!-- iframe showing the search results (closed by default) -->
88<div id="MSearchResultsWindow">
89<iframe src="javascript:void(0)" frameborder="0"
90 name="MSearchResults" id="MSearchResults">
91</iframe>
92</div>
93
94<div class="header">
95 <div class="summary">
96<a href="#pub-methods">Public Member Functions</a> &#124;
97<a href="#pro-methods">Protected Member Functions</a> &#124;
98<a href="#pro-attribs">Protected Attributes</a> &#124;
99<a href="#friends">Friends</a> &#124;
100<a href="classarmnn_1_1_layer-members.html">List of all members</a> </div>
101 <div class="headertitle">
102<div class="title">Layer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
103</div><!--header-->
104<div class="contents">
105
106<p><code>#include &lt;<a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>&gt;</code></p>
107<div class="dynheader">
108Inheritance diagram for Layer:</div>
109<div class="dyncontent">
110<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_layer__inherit__graph.svg" width="1348" height="4986"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
111</div>
112<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
113<div class="dynheader">
114Collaboration diagram for Layer:</div>
115<div class="dyncontent">
116<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_layer__coll__graph.svg" width="154" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
117</div>
118<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
119<table class="memberdecls">
120<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
121Public Member Functions</h2></td></tr>
122<tr class="memitem:a5e5ae420d199a0bccae5139d38c30205"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, const char *name)</td></tr>
123<tr class="separator:a5e5ae420d199a0bccae5139d38c30205"><td class="memSeparator" colspan="2">&#160;</td></tr>
124<tr class="memitem:a395d070748c18d903705799360088e80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a395d070748c18d903705799360088e80">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> layout, const char *name)</td></tr>
125<tr class="separator:a395d070748c18d903705799360088e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
126<tr class="memitem:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ExecuteStrategy</a> (<a class="el" href="classarmnn_1_1_i_strategy.html">IStrategy</a> &amp;strategy) const override</td></tr>
127<tr class="memdesc:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a visitor to this layer. <a href="classarmnn_1_1_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">More...</a><br /></td></tr>
128<tr class="separator:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a9a97cb6d32661a57fc33bd29b8e41ff4"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a> () const</td></tr>
130<tr class="separator:a9a97cb6d32661a57fc33bd29b8e41ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:af2c0edc7ea62a8baaec4d3d9b2b09256"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a> (unsigned int i=0) const</td></tr>
132<tr class="separator:af2c0edc7ea62a8baaec4d3d9b2b09256"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:a1d4e05c17647232c514cfe58ca80744a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1d4e05c17647232c514cfe58ca80744a">GetOutputHandler</a> (unsigned int i=0)</td></tr>
134<tr class="separator:a1d4e05c17647232c514cfe58ca80744a"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:a3560e0733f829e5194887d014a133144"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a3560e0733f829e5194887d014a133144">GetShapeInferenceMethod</a> () const</td></tr>
136<tr class="separator:a3560e0733f829e5194887d014a133144"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:ad6f282c92535e2be398a9b350d4e2ee9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ad6f282c92535e2be398a9b350d4e2ee9">GetAllowExpandedDims</a> () const</td></tr>
138<tr class="separator:ad6f282c92535e2be398a9b350d4e2ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:af5f530544d09a44d726f24702b67b35b"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a> () const</td></tr>
140<tr class="separator:af5f530544d09a44d726f24702b67b35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:a98cdff4e0b45f4c80bfcedaf926e16e0"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a98cdff4e0b45f4c80bfcedaf926e16e0">GetOutputSlots</a> () const</td></tr>
142<tr class="separator:a98cdff4e0b45f4c80bfcedaf926e16e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:af6cb8de21ef0da269ec9b67755ae92a0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af6cb8de21ef0da269ec9b67755ae92a0">BeginInputSlots</a> ()</td></tr>
144<tr class="separator:af6cb8de21ef0da269ec9b67755ae92a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<tr class="memitem:a9752e12d6b79e18da1a25f76159d2a72"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9752e12d6b79e18da1a25f76159d2a72">EndInputSlots</a> ()</td></tr>
146<tr class="separator:a9752e12d6b79e18da1a25f76159d2a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="memitem:a817d4be6dd88f532d36f51748ec14185"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a817d4be6dd88f532d36f51748ec14185">BeginOutputSlots</a> ()</td></tr>
148<tr class="separator:a817d4be6dd88f532d36f51748ec14185"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="memitem:a55f76d98fcd2f5cdac3e2b14536cb7ab"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a55f76d98fcd2f5cdac3e2b14536cb7ab">EndOutputSlots</a> ()</td></tr>
150<tr class="separator:a55f76d98fcd2f5cdac3e2b14536cb7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:a22485f444124128940e798a42f0b76d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a22485f444124128940e798a42f0b76d9">IsOutputUnconnected</a> ()</td></tr>
152<tr class="separator:a22485f444124128940e798a42f0b76d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:aac329cade047e952621b59a51a5d5f49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aac329cade047e952621b59a51a5d5f49">ResetPriority</a> () const</td></tr>
154<tr class="separator:aac329cade047e952621b59a51a5d5f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:af97a07195a67a638605b3c325763c2dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af97a07195a67a638605b3c325763c2dd">GetPriority</a> () const</td></tr>
156<tr class="separator:af97a07195a67a638605b3c325763c2dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="memitem:ad8e15c530c929ab823d89ae9fd2d3f11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a> () const override</td></tr>
158<tr class="memdesc:ad8e15c530c929ab823d89ae9fd2d3f11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4" title="When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.">armnn::LayerType</a> of this layer. <a href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">More...</a><br /></td></tr>
159<tr class="separator:ad8e15c530c929ab823d89ae9fd2d3f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:aea909c7327109228ef618d459015def3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aea909c7327109228ef618d459015def3">GetDataType</a> () const</td></tr>
161<tr class="separator:aea909c7327109228ef618d459015def3"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:afdb1d37740e7a083b625d669588b6a0e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afdb1d37740e7a083b625d669588b6a0e">GetBackendId</a> () const</td></tr>
163<tr class="separator:afdb1d37740e7a083b625d669588b6a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a316670cb6b65902e017c32ca4bcb4b98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98">SetBackendId</a> (const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;id) override</td></tr>
165<tr class="memdesc:a316670cb6b65902e017c32ca4bcb4b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the backend of the <a class="el" href="classarmnn_1_1_i_connectable_layer.html" title="Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.">IConnectableLayer</a>. <a href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98">More...</a><br /></td></tr>
166<tr class="separator:a316670cb6b65902e017c32ca4bcb4b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
167<tr class="memitem:a08d1e10a45f15cd0bd02557be35a3864"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_workload.html">IWorkload</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a08d1e10a45f15cd0bd02557be35a3864">CreateWorkload</a> (const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;factory) const =0</td></tr>
168<tr class="separator:a08d1e10a45f15cd0bd02557be35a3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
169<tr class="memitem:a3ff62126ec713a2708e5fbaa6146a7de"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a3ff62126ec713a2708e5fbaa6146a7de">CreateTensorHandles</a> (const <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry, const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;factory, const bool IsMemoryManaged=true)</td></tr>
170<tr class="separator:a3ff62126ec713a2708e5fbaa6146a7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
171<tr class="memitem:ae89ff455503aa106d00bf34103d2f2e0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_layer.html">Layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ae89ff455503aa106d00bf34103d2f2e0">Clone</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph) const =0</td></tr>
172<tr class="memdesc:ae89ff455503aa106d00bf34103d2f2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a dynamically-allocated copy of this layer. <a href="classarmnn_1_1_layer.html#ae89ff455503aa106d00bf34103d2f2e0">More...</a><br /></td></tr>
173<tr class="separator:ae89ff455503aa106d00bf34103d2f2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a0607e36e88f38c34c71c663164b76776"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a0607e36e88f38c34c71c663164b76776">VerifyLayerConnections</a> (unsigned int expectedConnections, const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;location) const</td></tr>
175<tr class="separator:a0607e36e88f38c34c71c663164b76776"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:a84ff600212ba26e665de9b978ec896a4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a84ff600212ba26e665de9b978ec896a4">ValidateTensorShapesFromInputs</a> ()=0</td></tr>
177<tr class="separator:a84ff600212ba26e665de9b978ec896a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:a65ca562c882ad619684445a1402f415a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">InferOutputShapes</a> (const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt; &amp;inputShapes) const override</td></tr>
179<tr class="memdesc:a65ca562c882ad619684445a1402f415a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Infer the shape of the output(s) based on the provided input shape(s) <a href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">More...</a><br /></td></tr>
180<tr class="separator:a65ca562c882ad619684445a1402f415a"><td class="memSeparator" colspan="2">&#160;</td></tr>
181<tr class="memitem:ac04cd8de9b9185756eb02463ffd432b1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ac04cd8de9b9185756eb02463ffd432b1">SerializeLayerParameters</a> (<a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;fn) const</td></tr>
182<tr class="memdesc:ac04cd8de9b9185756eb02463ffd432b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to serialize the layer parameters to string. <a href="classarmnn_1_1_layer.html#ac04cd8de9b9185756eb02463ffd432b1">More...</a><br /></td></tr>
183<tr class="separator:ac04cd8de9b9185756eb02463ffd432b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="memitem:a339bef86bc340c3d1393ed83950fe8af"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a339bef86bc340c3d1393ed83950fe8af">ReleaseConstantData</a> ()</td></tr>
185<tr class="separator:a339bef86bc340c3d1393ed83950fe8af"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:a386acff5f8430245239ce58d00ba7576"><td class="memTemplParams" colspan="2">template&lt;typename Op &gt; </td></tr>
187<tr class="memitem:a386acff5f8430245239ce58d00ba7576"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a386acff5f8430245239ce58d00ba7576">OperateOnConstantTensors</a> (Op op)</td></tr>
188<tr class="separator:a386acff5f8430245239ce58d00ba7576"><td class="memSeparator" colspan="2">&#160;</td></tr>
189<tr class="memitem:a7ddf0cf6f620d59c10e63495ace795d0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a> () const override</td></tr>
190<tr class="memdesc:a7ddf0cf6f620d59c10e63495ace795d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the layer. <a href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">More...</a><br /></td></tr>
191<tr class="separator:a7ddf0cf6f620d59c10e63495ace795d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:abc0660dc440c8a285b456c9ef6383c26"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a> () const override</td></tr>
193<tr class="memdesc:abc0660dc440c8a285b456c9ef6383c26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable input slots. <a href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">More...</a><br /></td></tr>
194<tr class="separator:abc0660dc440c8a285b456c9ef6383c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<tr class="memitem:a1594bddc87d6477df300317658f566bb"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a> () const override</td></tr>
196<tr class="memdesc:a1594bddc87d6477df300317658f566bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable output slots. <a href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">More...</a><br /></td></tr>
197<tr class="separator:a1594bddc87d6477df300317658f566bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<tr class="memitem:acf8b8e23bf647836592982f97088d375"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">GetInputSlot</a> (unsigned int index) const override</td></tr>
199<tr class="memdesc:acf8b8e23bf647836592982f97088d375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const input slot handle by slot index. <a href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">More...</a><br /></td></tr>
200<tr class="separator:acf8b8e23bf647836592982f97088d375"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1b50eb1358cdf382f4bc3fc8849f8e8e">GetInputSlot</a> (unsigned int index) override</td></tr>
202<tr class="memdesc:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the input slot handle by slot index. <a href="classarmnn_1_1_layer.html#a1b50eb1358cdf382f4bc3fc8849f8e8e">More...</a><br /></td></tr>
203<tr class="separator:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:a0e36688a43c35668d8db5257274c68fe"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a> (unsigned int index=0) const override</td></tr>
205<tr class="memdesc:a0e36688a43c35668d8db5257274c68fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the const output slot handle by slot index. <a href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">More...</a><br /></td></tr>
206<tr class="separator:a0e36688a43c35668d8db5257274c68fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
207<tr class="memitem:abbd71844785bb2f00a81baca30ea5ff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#abbd71844785bb2f00a81baca30ea5ff0">GetOutputSlot</a> (unsigned int index=0) override</td></tr>
208<tr class="memdesc:abbd71844785bb2f00a81baca30ea5ff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output slot handle by slot index. <a href="classarmnn_1_1_layer.html#abbd71844785bb2f00a81baca30ea5ff0">More...</a><br /></td></tr>
209<tr class="separator:abbd71844785bb2f00a81baca30ea5ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
210<tr class="memitem:a6d1024208b672a87ef2c1bfaf93d2b9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a6d1024208b672a87ef2c1bfaf93d2b9f">SetGuid</a> (<a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a> guid)</td></tr>
211<tr class="separator:a6d1024208b672a87ef2c1bfaf93d2b9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<tr class="memitem:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">GetGuid</a> () const final</td></tr>
213<tr class="memdesc:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique id of the layer. <a href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">More...</a><br /></td></tr>
214<tr class="separator:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
215<tr class="memitem:a339248d89d5e21534ecf74b4393ed4d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a339248d89d5e21534ecf74b4393ed4d2">AddRelatedLayerName</a> (const std::string layerName)</td></tr>
216<tr class="separator:a339248d89d5e21534ecf74b4393ed4d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
217<tr class="memitem:a5e5520194ea4042fe07b0bf53c28f634"><td class="memItemLeft" align="right" valign="top">const std::list&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a5e5520194ea4042fe07b0bf53c28f634">GetRelatedLayerNames</a> ()</td></tr>
218<tr class="separator:a5e5520194ea4042fe07b0bf53c28f634"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<tr class="memitem:ae68bb844446f28cf8580ecbe2f516ff6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ae68bb844446f28cf8580ecbe2f516ff6">Reparent</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;dest, std::list&lt; <a class="el" href="classarmnn_1_1_layer.html">Layer</a> * &gt;::const_iterator iterator)=0</td></tr>
220<tr class="separator:ae68bb844446f28cf8580ecbe2f516ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
221<tr class="memitem:a43a46eafee5c08787ab17b4342730c20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a43a46eafee5c08787ab17b4342730c20">BackendSelectionHint</a> (<a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &gt; backend) final</td></tr>
222<tr class="memdesc:a43a46eafee5c08787ab17b4342730c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a hint for the optimizer as to which backend to prefer for this layer. <a href="classarmnn_1_1_layer.html#a43a46eafee5c08787ab17b4342730c20">More...</a><br /></td></tr>
223<tr class="separator:a43a46eafee5c08787ab17b4342730c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="memitem:a6ff80e440308295056b57e2adaa42888"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a6ff80e440308295056b57e2adaa42888">GetBackendHint</a> () const</td></tr>
225<tr class="separator:a6ff80e440308295056b57e2adaa42888"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:a429abdfa769f4d48268938dcaea00904"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a429abdfa769f4d48268938dcaea00904">SetShapeInferenceMethod</a> (<a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod)</td></tr>
227<tr class="separator:a429abdfa769f4d48268938dcaea00904"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<tr class="memitem:a328c9cf1c3abf2febcce4801ba706541"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a328c9cf1c3abf2febcce4801ba706541">SetAllowExpandedDims</a> (bool allowExpandedDims)</td></tr>
229<tr class="separator:a328c9cf1c3abf2febcce4801ba706541"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="memitem:aefb14147290b6b928c5fc924ba035acc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
231<tr class="memitem:aefb14147290b6b928c5fc924ba035acc"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aefb14147290b6b928c5fc924ba035acc">GetAdditionalInformation</a> () const</td></tr>
232<tr class="separator:aefb14147290b6b928c5fc924ba035acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
233<tr class="memitem:aea1c8483ebeabc0dcbd9090b4f648f1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aea1c8483ebeabc0dcbd9090b4f648f1d">SetAdditionalInfoForObject</a> (const <a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a> &amp;additionalInfo)</td></tr>
234<tr class="separator:aea1c8483ebeabc0dcbd9090b4f648f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
235<tr class="memitem:a94a487f29157eeec10e2f9a372487bcc"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="structarmnn_1_1_base_descriptor.html">BaseDescriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a94a487f29157eeec10e2f9a372487bcc">GetParameters</a> () const override</td></tr>
236<tr class="memdesc:a94a487f29157eeec10e2f9a372487bcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the layer has a descriptor return it. <a href="classarmnn_1_1_layer.html#a94a487f29157eeec10e2f9a372487bcc">More...</a><br /></td></tr>
237<tr class="separator:a94a487f29157eeec10e2f9a372487bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
238</table><table class="memberdecls">
239<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
240Protected Member Functions</h2></td></tr>
241<tr class="memitem:aacfb208d750bdfce1bbd423e5cac76e2"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aacfb208d750bdfce1bbd423e5cac76e2">~Layer</a> ()=default</td></tr>
242<tr class="separator:aacfb208d750bdfce1bbd423e5cac76e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
243<tr class="memitem:afc3239f5fc116259bf5451964e803646"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
244<tr class="memitem:afc3239f5fc116259bf5451964e803646"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afc3239f5fc116259bf5451964e803646">CollectQueueDescriptorInputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;info) const</td></tr>
245<tr class="separator:afc3239f5fc116259bf5451964e803646"><td class="memSeparator" colspan="2">&#160;</td></tr>
246<tr class="memitem:a499ca5a94d0174ed21786b6994b2cd8c"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
247<tr class="memitem:a499ca5a94d0174ed21786b6994b2cd8c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a499ca5a94d0174ed21786b6994b2cd8c">CollectQueueDescriptorOutputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;info) const</td></tr>
248<tr class="separator:a499ca5a94d0174ed21786b6994b2cd8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
249<tr class="memitem:aeb2d638cc0e02c10075e015100996f2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aeb2d638cc0e02c10075e015100996f2d">ValidateAndCopyShape</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;outputShape, const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;inferredShape, const <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod, const std::string &amp;layerName, const unsigned int outputSlotIndex=0)</td></tr>
250<tr class="separator:aeb2d638cc0e02c10075e015100996f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
251<tr class="memitem:a448afc716fda85394df1e8e5b7d530e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a448afc716fda85394df1e8e5b7d530e8">VerifyShapeInferenceType</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;outputShape, <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod)</td></tr>
252<tr class="separator:a448afc716fda85394df1e8e5b7d530e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
253<tr class="memitem:a30a858b2b26d651a066537e499fbf40d"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
254<tr class="memitem:a30a858b2b26d651a066537e499fbf40d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a30a858b2b26d651a066537e499fbf40d">PrepInfoAndDesc</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor) const</td></tr>
255<tr class="memdesc:a30a858b2b26d651a066537e499fbf40d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to reduce duplication in *Layer::CreateWorkload. <a href="classarmnn_1_1_layer.html#a30a858b2b26d651a066537e499fbf40d">More...</a><br /></td></tr>
256<tr class="separator:a30a858b2b26d651a066537e499fbf40d"><td class="memSeparator" colspan="2">&#160;</td></tr>
257<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memTemplParams" colspan="2">template&lt;typename LayerType , typename ... Params&gt; </td></tr>
258<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aa10fd205c3f5469a9ecb2aa2a3ffd101">CloneBase</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph, Params &amp;&amp;... params) const</td></tr>
259<tr class="separator:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memSeparator" colspan="2">&#160;</td></tr>
260<tr class="memitem:a9114de666bc2d910faa846b04fc26974"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">ConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9114de666bc2d910faa846b04fc26974">GetConstantTensorsByRef</a> () override final</td></tr>
261<tr class="separator:a9114de666bc2d910faa846b04fc26974"><td class="memSeparator" colspan="2">&#160;</td></tr>
262<tr class="memitem:a45544992c89527fa4d51498a91401640"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a45544992c89527fa4d51498a91401640">GetConstantTensorsByRef</a> () const override</td></tr>
263<tr class="separator:a45544992c89527fa4d51498a91401640"><td class="memSeparator" colspan="2">&#160;</td></tr>
264<tr class="memitem:af7f0460d32511de0da525f1817d13e8c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af7f0460d32511de0da525f1817d13e8c">SetAdditionalInfo</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor) const</td></tr>
265<tr class="separator:af7f0460d32511de0da525f1817d13e8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
266<tr class="inherit_header pro_methods_classarmnn_1_1_i_connectable_layer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_connectable_layer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a></td></tr>
267<tr class="memitem:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#a8c7faf37c1d965431aaa02ae934d67ee">~IConnectableLayer</a> ()</td></tr>
268<tr class="memdesc:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Objects are not deletable via the handle. <a href="classarmnn_1_1_i_connectable_layer.html#a8c7faf37c1d965431aaa02ae934d67ee">More...</a><br /></td></tr>
269<tr class="separator:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
270</table><table class="memberdecls">
271<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
272Protected Attributes</h2></td></tr>
273<tr class="memitem:ac7170f79bd0eadb1b6153e359c023cc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">m_AdditionalInfoObject</a></td></tr>
274<tr class="separator:ac7170f79bd0eadb1b6153e359c023cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
275<tr class="memitem:aa44d91037bba52ba0dec6577509ade3b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a></td></tr>
276<tr class="separator:aa44d91037bba52ba0dec6577509ade3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
277<tr class="memitem:afe508761cc8318b15329ba4acf7fbfec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a></td></tr>
278<tr class="separator:afe508761cc8318b15329ba4acf7fbfec"><td class="memSeparator" colspan="2">&#160;</td></tr>
279</table><table class="memberdecls">
280<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
281Friends</h2></td></tr>
282<tr class="memitem:afab89afd724f1b07b1aaad6bdc61c47a"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afab89afd724f1b07b1aaad6bdc61c47a">Graph</a></td></tr>
283<tr class="separator:afab89afd724f1b07b1aaad6bdc61c47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
284</table><table class="memberdecls">
285<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
286Additional Inherited Members</h2></td></tr>
287<tr class="inherit_header pub_types_classarmnn_1_1_i_connectable_layer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classarmnn_1_1_i_connectable_layer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a></td></tr>
288<tr class="memitem:af978f897fb7e115a901cb7ed95f8e532 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">ConstantTensors</a> = std::vector&lt; std::reference_wrapper&lt; std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt; &gt;&gt;</td></tr>
289<tr class="separator:af978f897fb7e115a901cb7ed95f8e532 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
290<tr class="memitem:aba5c20cadbebd2e7ba67e20a47e31472 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a> = std::vector&lt; std::reference_wrapper&lt; const std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt; &gt;&gt;</td></tr>
291<tr class="separator:aba5c20cadbebd2e7ba67e20a47e31472 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
292</table>
293<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
294<div class="textblock">
295<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00230">230</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
296</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
297<a id="a5e5ae420d199a0bccae5139d38c30205"></a>
298<h2 class="memtitle"><span class="permalink"><a href="#a5e5ae420d199a0bccae5139d38c30205">&#9670;&nbsp;</a></span>Layer() <span class="overload">[1/2]</span></h2>
299
300<div class="memitem">
301<div class="memproto">
302 <table class="memname">
303 <tr>
304 <td class="memname"><a class="el" href="classarmnn_1_1_layer.html">Layer</a> </td>
305 <td>(</td>
306 <td class="paramtype">unsigned int&#160;</td>
307 <td class="paramname"><em>numInputSlots</em>, </td>
308 </tr>
309 <tr>
310 <td class="paramkey"></td>
311 <td></td>
312 <td class="paramtype">unsigned int&#160;</td>
313 <td class="paramname"><em>numOutputSlots</em>, </td>
314 </tr>
315 <tr>
316 <td class="paramkey"></td>
317 <td></td>
318 <td class="paramtype"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td>
319 <td class="paramname"><em>type</em>, </td>
320 </tr>
321 <tr>
322 <td class="paramkey"></td>
323 <td></td>
324 <td class="paramtype">const char *&#160;</td>
325 <td class="paramname"><em>name</em>&#160;</td>
326 </tr>
327 <tr>
328 <td></td>
329 <td>)</td>
330 <td></td><td></td>
331 </tr>
332 </table>
333</div><div class="memdoc">
334<dl class="params"><dt>Parameters</dt><dd>
335 <table class="params">
336 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer (may be nullptr). </td></tr>
337 </table>
338 </dd>
339</dl>
340
341<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00260">260</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
342<div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;: <a class="code" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a>(numInputSlots, numOutputSlots, type, <a class="code" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>, name)</div>
343<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div>
344<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div>
345</div><!-- fragment -->
346<p class="reference">References <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>.</p>
347
348</div>
349</div>
350<a id="a395d070748c18d903705799360088e80"></a>
351<h2 class="memtitle"><span class="permalink"><a href="#a395d070748c18d903705799360088e80">&#9670;&nbsp;</a></span>Layer() <span class="overload">[2/2]</span></h2>
352
353<div class="memitem">
354<div class="memproto">
355 <table class="memname">
356 <tr>
357 <td class="memname"><a class="el" href="classarmnn_1_1_layer.html">Layer</a> </td>
358 <td>(</td>
359 <td class="paramtype">unsigned int&#160;</td>
360 <td class="paramname"><em>numInputSlots</em>, </td>
361 </tr>
362 <tr>
363 <td class="paramkey"></td>
364 <td></td>
365 <td class="paramtype">unsigned int&#160;</td>
366 <td class="paramname"><em>numOutputSlots</em>, </td>
367 </tr>
368 <tr>
369 <td class="paramkey"></td>
370 <td></td>
371 <td class="paramtype"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td>
372 <td class="paramname"><em>type</em>, </td>
373 </tr>
374 <tr>
375 <td class="paramkey"></td>
376 <td></td>
377 <td class="paramtype"><a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a>&#160;</td>
378 <td class="paramname"><em>layout</em>, </td>
379 </tr>
380 <tr>
381 <td class="paramkey"></td>
382 <td></td>
383 <td class="paramtype">const char *&#160;</td>
384 <td class="paramname"><em>name</em>&#160;</td>
385 </tr>
386 <tr>
387 <td></td>
388 <td>)</td>
389 <td></td><td></td>
390 </tr>
391 </table>
392</div><div class="memdoc">
393
394<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00233">233</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
395<div class="fragment"><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;: <a class="code" href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>(numOutputSlots)</div>
396<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;, <a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a>(<a class="code" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">ShapeInferenceMethod::ValidateOnly</a>)</div>
397<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;, m_LayerName(name ? name : <span class="stringliteral">&quot;&quot;</span>)</div>
398<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;, m_Type(type)</div>
399<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;, m_BackendId()</div>
400<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;, m_BackendHint(EmptyOptional())</div>
401<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;, m_Guid(arm::pipe::IProfilingService::GetNextGuid())</div>
402<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div>
403<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespacearmnn.html#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(layout);</div>
404<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_InputSlots.reserve(numInputSlots);</div>
405<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numInputSlots; ++i)</div>
406<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
407<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_InputSlots.emplace_back(*<span class="keyword">this</span>, i);</div>
408<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
409<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
410<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_OutputSlots.reserve(numOutputSlots);</div>
411<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numOutputSlots; ++i)</div>
412<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
413<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_OutputSlots.emplace_back(*<span class="keyword">this</span>, <a class="code" href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>[i]);</div>
414<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
415<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
416</div><!-- fragment -->
417<p class="reference">References <a class="el" href="_ignore_unused_8hpp_source.html#l00014">armnn::IgnoreUnused()</a>, <a class="el" href="_layer_8hpp_source.html#l00440">Layer::m_OutputHandlers</a>, and <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">armnn::ValidateOnly</a>.</p>
418
419</div>
420</div>
421<a id="aacfb208d750bdfce1bbd423e5cac76e2"></a>
422<h2 class="memtitle"><span class="permalink"><a href="#aacfb208d750bdfce1bbd423e5cac76e2">&#9670;&nbsp;</a></span>~Layer()</h2>
423
424<div class="memitem">
425<div class="memproto">
426<table class="mlabels">
427 <tr>
428 <td class="mlabels-left">
429 <table class="memname">
430 <tr>
431 <td class="memname">virtual ~<a class="el" href="classarmnn_1_1_layer.html">Layer</a> </td>
432 <td>(</td>
433 <td class="paramname"></td><td>)</td>
434 <td></td>
435 </tr>
436 </table>
437 </td>
438 <td class="mlabels-right">
439<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
440 </tr>
441</table>
442</div><div class="memdoc">
443
444</div>
445</div>
446<h2 class="groupheader">Member Function Documentation</h2>
447<a id="a339248d89d5e21534ecf74b4393ed4d2"></a>
448<h2 class="memtitle"><span class="permalink"><a href="#a339248d89d5e21534ecf74b4393ed4d2">&#9670;&nbsp;</a></span>AddRelatedLayerName()</h2>
449
450<div class="memitem">
451<div class="memproto">
452<table class="mlabels">
453 <tr>
454 <td class="mlabels-left">
455 <table class="memname">
456 <tr>
457 <td class="memname">void AddRelatedLayerName </td>
458 <td>(</td>
459 <td class="paramtype">const std::string&#160;</td>
460 <td class="paramname"><em>layerName</em></td><td>)</td>
461 <td></td>
462 </tr>
463 </table>
464 </td>
465 <td class="mlabels-right">
466<span class="mlabels"><span class="mlabel">inline</span></span> </td>
467 </tr>
468</table>
469</div><div class="memdoc">
470
471<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00345">345</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
472<div class="fragment"><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;{ m_RelatedLayerNames.emplace_back(layerName); }</div>
473</div><!-- fragment -->
474</div>
475</div>
476<a id="a43a46eafee5c08787ab17b4342730c20"></a>
477<h2 class="memtitle"><span class="permalink"><a href="#a43a46eafee5c08787ab17b4342730c20">&#9670;&nbsp;</a></span>BackendSelectionHint()</h2>
478
479<div class="memitem">
480<div class="memproto">
481<table class="mlabels">
482 <tr>
483 <td class="mlabels-left">
484 <table class="memname">
485 <tr>
486 <td class="memname">void BackendSelectionHint </td>
487 <td>(</td>
488 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &gt;&#160;</td>
489 <td class="paramname"><em>backend</em></td><td>)</td>
490 <td></td>
491 </tr>
492 </table>
493 </td>
494 <td class="mlabels-right">
495<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">final</span><span class="mlabel">virtual</span></span> </td>
496 </tr>
497</table>
498</div><div class="memdoc">
499
500<p>Provide a hint for the optimizer as to which backend to prefer for this layer. </p>
501<p>By providing a BackendSelectionHint there is no guarantee the input backend supports that layer. If <a class="el" href="namespacearmnn.html#a138ca3929b888fa8d9088c076e9de48c">IsLayerSupported()</a> returns false with the backend hint, we default to calling <a class="el" href="namespacearmnn.html#a138ca3929b888fa8d9088c076e9de48c">IsLayerSupported()</a> on the BackendPreferences vector. Use <a class="el" href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98" title="Set the backend of the IConnectableLayer.">SetBackendId()</a> if we can guarantee a backend supports that layer (IsLayerSupported returns true for a specific backend). </p>
502
503<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a833170f92e96b3ef414b6cf6e5720d2b">IConnectableLayer</a>.</p>
504
505<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00351">351</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
506<div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div>
507<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; m_BackendHint = backend;</div>
508<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div>
509</div><!-- fragment -->
510</div>
511</div>
512<a id="af6cb8de21ef0da269ec9b67755ae92a0"></a>
513<h2 class="memtitle"><span class="permalink"><a href="#af6cb8de21ef0da269ec9b67755ae92a0">&#9670;&nbsp;</a></span>BeginInputSlots()</h2>
514
515<div class="memitem">
516<div class="memproto">
517<table class="mlabels">
518 <tr>
519 <td class="mlabels-left">
520 <table class="memname">
521 <tr>
522 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a>&gt;::iterator BeginInputSlots </td>
523 <td>(</td>
524 <td class="paramname"></td><td>)</td>
525 <td></td>
526 </tr>
527 </table>
528 </td>
529 <td class="mlabels-right">
530<span class="mlabels"><span class="mlabel">inline</span></span> </td>
531 </tr>
532</table>
533</div><div class="memdoc">
534
535<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00262">262</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
536<div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.begin(); }</div>
537</div><!-- fragment -->
538<p class="reference">Referenced by <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00042">armnn::CreateInputsFrom()</a>, <a class="el" href="_common_test_utils_8cpp_source.html#l00012">CreateInputsFrom()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.html#l00023">MovePermuteUpImpl::Run()</a>, and <a class="el" href="_move_transpose_up_8hpp_source.html#l00023">MoveTransposeUpImpl::Run()</a>.</p>
539
540</div>
541</div>
542<a id="a817d4be6dd88f532d36f51748ec14185"></a>
543<h2 class="memtitle"><span class="permalink"><a href="#a817d4be6dd88f532d36f51748ec14185">&#9670;&nbsp;</a></span>BeginOutputSlots()</h2>
544
545<div class="memitem">
546<div class="memproto">
547<table class="mlabels">
548 <tr>
549 <td class="mlabels-left">
550 <table class="memname">
551 <tr>
552 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a>&gt;::iterator BeginOutputSlots </td>
553 <td>(</td>
554 <td class="paramname"></td><td>)</td>
555 <td></td>
556 </tr>
557 </table>
558 </td>
559 <td class="mlabels-right">
560<span class="mlabels"><span class="mlabel">inline</span></span> </td>
561 </tr>
562</table>
563</div><div class="memdoc">
564
565<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00266">266</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
566<div class="fragment"><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.begin(); }</div>
567</div><!-- fragment -->
568<p class="reference">Referenced by <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00052">armnn::CreateOutputsFrom()</a>, <a class="el" href="_graph_8cpp_source.html#l00027">Graph::Graph()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_squash_equal_siblings_8hpp_source.html#l00025">SquashEqualSiblingsImpl&lt; Comparable &gt;::Run()</a>, and <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>.</p>
569
570</div>
571</div>
572<a id="ae89ff455503aa106d00bf34103d2f2e0"></a>
573<h2 class="memtitle"><span class="permalink"><a href="#ae89ff455503aa106d00bf34103d2f2e0">&#9670;&nbsp;</a></span>Clone()</h2>
574
575<div class="memitem">
576<div class="memproto">
577<table class="mlabels">
578 <tr>
579 <td class="mlabels-left">
580 <table class="memname">
581 <tr>
582 <td class="memname">virtual <a class="el" href="classarmnn_1_1_layer.html">Layer</a>* Clone </td>
583 <td>(</td>
584 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td>
585 <td class="paramname"><em>graph</em></td><td>)</td>
586 <td> const</td>
587 </tr>
588 </table>
589 </td>
590 <td class="mlabels-right">
591<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
592 </tr>
593</table>
594</div><div class="memdoc">
595
596<p>Creates a dynamically-allocated copy of this layer. </p>
597<dl class="params"><dt>Parameters</dt><dd>
598 <table class="params">
599 <tr><td class="paramname">graph</td><td>- The <a class="el" href="classarmnn_1_1_graph.html">Graph</a> into which this <a class="el" href="classarmnn_1_1_layer.html">Layer</a> is being cloned. </td></tr>
600 </table>
601 </dd>
602</dl>
603
604<p>Implemented in <a class="el" href="classarmnn_1_1_q_lstm_layer.html#ac1c16df49489aead2241b460f103f454">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#a08edea9423b6da5da174ce5269f6e28b">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.html#a4589aa51155f0836bee3c3ed85f47082">OutputLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a0a42b443052ed2114f9b8d8eac8bd7fd">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.html#aabac24cc08de52926e6bed5ffdc48dd8">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#ac6b352652fb2f722e56f5fd62c57ae09">LstmLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#a88ce933cddc0e32e2f17fd699185b0eb">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.html#a9e2089cbab017e13409f94da71d75770">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#a0ad3ca858bd49041c1a5ce793312dcf8">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#a8d3b0c5e823f04841d74a2647e6a5246">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.html#a3a08acd0b68fad7b8116e35c8702d23e">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#acf7bec8b795447d4b23e0339a6561044">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#aaa20b55aac06f7510f838b6fb5504426">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a6f56b4ee567a69e7daf2e9bd3053646c">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#ae23412fdfc6726dc1823a18f5e84f8a9">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_fused_layer.html#aa0605535e8fc22a64a026147b66a894e">FusedLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#a5340a3dbbc84afba95fe19d1c8b5fb04">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.html#a089160274dcda58247b8a22dd1dddfa7">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.html#a043d6257a58f7fee75b00d10006549b2">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.html#abbb77b1ee8b485ccd194db4c983a6b07">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.html#a1c96a186c37deb90b7f0dd223894fa30">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_division_layer.html#a4b6e34239c98d4c6363c83e0de44c19c">DivisionLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_binary_layer.html#ad85d0f53bc6a30fba7ddc37614e2e7ab">ElementwiseBinaryLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.html#ab25eba589122a31db3433851bdb77d14">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.html#a3a6486888f04bdb311ab04ce752082e4">GatherLayer</a>, <a class="el" href="classarmnn_1_1_logical_binary_layer.html#a811ee0ce3856889aee26e1bc0ea2abc5">LogicalBinaryLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.html#a1ee115ea0c7522119fe3fa919094d856">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_maximum_layer.html#a045edc8bf3182c9763f622d69dcc5f63">MaximumLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.html#a12a07b8514277e7db725c483e3ab6d03">MeanLayer</a>, <a class="el" href="classarmnn_1_1_minimum_layer.html#a3f18bd606ab297e5aa4178c704d25f7c">MinimumLayer</a>, <a class="el" href="classarmnn_1_1_multiplication_layer.html#a84886e4e27e7b3d775f9e5f53ef792d5">MultiplicationLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.html#a3664d3e6f5555f990d8615fc512b1d66">PadLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.html#af3fc26f602263fd5acbe5ff31e98da5b">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.html#af5dd85c2adbf7e9f95d9c984157620a9">PreluLayer</a>, <a class="el" href="classarmnn_1_1_reduce_layer.html#a4de59b22933eabce862ae43fb24e0e1c">ReduceLayer</a>, <a class="el" href="classarmnn_1_1_reverse_v2_layer.html#a087969cb6214b6c023757d8298de1794">ReverseV2Layer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.html#aa00f5b65b97ab5d525bcff625e85f2dc">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.html#a63f13ce7bafa57a2505563c83579d414">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.html#a7283be538a107c461d94f3e64d5dda42">StandInLayer</a>, <a class="el" href="classarmnn_1_1_subtraction_layer.html#a8f5e68f921977058e5e1d9287b30b9b6">SubtractionLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.html#aeda9204b7b0de5754485ae03b1a7e55f">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.html#a0e4116c410fad8f9412b92919db9f709">AbsLayer</a>, <a class="el" href="classarmnn_1_1_addition_layer.html#a841977670b8ce23be34e2c59b601261d">AdditionLayer</a>, <a class="el" href="classarmnn_1_1_batch_mat_mul_layer.html#a5a344fd448ac4673a1e63549b54bc181">BatchMatMulLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.html#acea3e9bebacf2e28a07c81803d87049a">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_cast_layer.html#a8a9b04139dde721b371ff2a16ee0221a">CastLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.html#a284feab21ac5f71ff86b664e3c55c13d">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.html#aa516db393d0c0264fd7f5a0fe2d053b7">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.html#a6a9cc35b8905d1a1819225d31a93d020">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.html#a5dbcb10b38be8b8da9507005c970d601">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.html#acd412ed7f96e8b8db66250bba6f3d6ba">FloorLayer</a>, <a class="el" href="classarmnn_1_1_gather_nd_layer.html#ac3733efe074cdaffa2ef42cadab39205">GatherNdLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.html#a55eb3d90093b47ba36a4c6467bbb975d">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.html#adb99489b451c28860024196ef2228700">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.html#a5c7d477f65ced1cd35cb3381d3579393">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_map_layer.html#a3e6903bd5df0d2b02ea174fe43cf5930">MapLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.html#a0df281cfac9339574aec2dce1a1631da">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.html#a19f4f800a45aac9473090b85e147acc0">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.html#a1ff5e058af2623a5d1a8a5e1663821bd">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.html#a80b3bd0706d7333aa5f96dba6982b9a9">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.html#adf1236c5347b7e42a805289ac671e4e3">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_pooling3d_layer.html#ae338017bcff3dd4e1925e88e7ae89886">Pooling3dLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.html#a4eb20df5c6b827ce8ae0d883d0cebcde">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.html#a71a3d84b5820d9777ed92a570e4fb75b">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_scatter_nd_layer.html#ad00baa923307b757794f135072bced1c">ScatterNdLayer</a>, <a class="el" href="classarmnn_1_1_shape_layer.html#a5cd87ec92bac76b14887717f91c561e1">ShapeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.html#af58dcf66fc1339a693e4087791b6a0fc">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.html#a3df177d5eaa4d11373609991930ce3cd">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.html#ae4e60b5523a7a1db08e9c87915b5a88e">StackLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.html#aaa60bec8ce7cb41f20dd031b5e9ece03">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.html#a99c6c028dc7f110a2cc01a9e8e3966d1">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_tile_layer.html#a11702454bf4ba516927024453e99d2e2">TileLayer</a>, <a class="el" href="classarmnn_1_1_unmap_layer.html#a9cd23ecd4029d174abed9b06002a347d">UnmapLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.html#aa5206ffba99e78aa257977c30de096d8">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html#ae405b789dd4141d86f8e41a5373d0aa1">BroadcastToLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.html#a7c7e9daf8cb913b45086170030f387db">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_fill_layer.html#a35efb9d65e9a1d5b4663243eeeb4ae53">FillLayer</a>, <a class="el" href="classarmnn_1_1_rank_layer.html#ab5045fc8d66572ecba03096ced51a994">RankLayer</a>, <a class="el" href="classarmnn_1_1_quantize_layer.html#ab5045fc8d66572ecba03096ced51a994">QuantizeLayer</a>, and <a class="el" href="classarmnn_1_1_channel_shuffle_layer.html#a8a444cb6b126e660b6543d9cd13705b4">ChannelShuffleLayer</a>.</p>
605
606<p class="reference">Referenced by <a class="el" href="_subgraph_view_8cpp_source.html#l00396">SubgraphView::GetWorkingCopy()</a>, and <a class="el" href="_graph_8cpp_source.html#l00027">Graph::Graph()</a>.</p>
607
608</div>
609</div>
610<a id="aa10fd205c3f5469a9ecb2aa2a3ffd101"></a>
611<h2 class="memtitle"><span class="permalink"><a href="#aa10fd205c3f5469a9ecb2aa2a3ffd101">&#9670;&nbsp;</a></span>CloneBase()</h2>
612
613<div class="memitem">
614<div class="memproto">
615<table class="mlabels">
616 <tr>
617 <td class="mlabels-left">
618 <table class="memname">
619 <tr>
620 <td class="memname"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> * CloneBase </td>
621 <td>(</td>
622 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td>
623 <td class="paramname"><em>graph</em>, </td>
624 </tr>
625 <tr>
626 <td class="paramkey"></td>
627 <td></td>
628 <td class="paramtype">Params &amp;&amp;...&#160;</td>
629 <td class="paramname"><em>params</em>&#160;</td>
630 </tr>
631 <tr>
632 <td></td>
633 <td>)</td>
634 <td></td><td> const</td>
635 </tr>
636 </table>
637 </td>
638 <td class="mlabels-right">
639<span class="mlabels"><span class="mlabel">protected</span></span> </td>
640 </tr>
641</table>
642</div><div class="memdoc">
643
644<p class="definition">Definition at line <a class="el" href="_layer_clone_base_8hpp_source.html#l00014">14</a> of file <a class="el" href="_layer_clone_base_8hpp_source.html">LayerCloneBase.hpp</a>.</p>
645<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
646<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>* <span class="keyword">const</span> layer = graph.AddLayer&lt;<a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&gt;(std::forward&lt;Params&gt;(params)...);</div>
647<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
648<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; layer-&gt;BackendSelectionHint(<a class="code" href="classarmnn_1_1_layer.html#a6ff80e440308295056b57e2adaa42888">GetBackendHint</a>());</div>
649<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; layer-&gt;SetBackendId(<a class="code" href="classarmnn_1_1_layer.html#afdb1d37740e7a083b625d669588b6a0e">GetBackendId</a>());</div>
650<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; layer-&gt;SetGuid(<a class="code" href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">GetGuid</a>());</div>
651<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; layer-&gt;SetShapeInferenceMethod(<a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a>);</div>
652<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; layer-&gt;SetAllowExpandedDims(m_AllowExpandedDims);</div>
653<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
654<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> layer;</div>
655<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div>
656</div><!-- fragment -->
657<p class="reference">References <a class="el" href="_graph_8hpp_source.html#l00466">Graph::AddLayer()</a>, <a class="el" href="_layer_8hpp_source.html#l00355">Layer::GetBackendHint()</a>, <a class="el" href="_layer_8hpp_source.html#l00290">Layer::GetBackendId()</a>, <a class="el" href="_layer_8hpp_source.html#l00343">Layer::GetGuid()</a>, and <a class="el" href="_layer_8hpp_source.html#l00441">Layer::m_ShapeInferenceMethod</a>.</p>
658
659</div>
660</div>
661<a id="afc3239f5fc116259bf5451964e803646"></a>
662<h2 class="memtitle"><span class="permalink"><a href="#afc3239f5fc116259bf5451964e803646">&#9670;&nbsp;</a></span>CollectQueueDescriptorInputs()</h2>
663
664<div class="memitem">
665<div class="memproto">
666<table class="mlabels">
667 <tr>
668 <td class="mlabels-left">
669 <table class="memname">
670 <tr>
671 <td class="memname">void CollectQueueDescriptorInputs </td>
672 <td>(</td>
673 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;&#160;</td>
674 <td class="paramname"><em>descriptor</em>, </td>
675 </tr>
676 <tr>
677 <td class="paramkey"></td>
678 <td></td>
679 <td class="paramtype"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;&#160;</td>
680 <td class="paramname"><em>info</em>&#160;</td>
681 </tr>
682 <tr>
683 <td></td>
684 <td>)</td>
685 <td></td><td> const</td>
686 </tr>
687 </table>
688 </td>
689 <td class="mlabels-right">
690<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
691 </tr>
692</table>
693</div><div class="memdoc">
694
695<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00386">386</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
696<div class="fragment"><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div>
697<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; WorkloadDataCollector dataCollector(descriptor.m_Inputs, <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.m_InputTensorInfos);</div>
698<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; CollectWorkloadInputs(dataCollector);</div>
699<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
700</div><!-- fragment -->
701<p class="reference">References <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>, and <a class="el" href="_workload_data_8hpp_source.html#l00026">QueueDescriptor::m_Inputs</a>.</p>
702
703<p class="reference">Referenced by <a class="el" href="_layer_8hpp_source.html#l00409">Layer::PrepInfoAndDesc()</a>.</p>
704
705</div>
706</div>
707<a id="a499ca5a94d0174ed21786b6994b2cd8c"></a>
708<h2 class="memtitle"><span class="permalink"><a href="#a499ca5a94d0174ed21786b6994b2cd8c">&#9670;&nbsp;</a></span>CollectQueueDescriptorOutputs()</h2>
709
710<div class="memitem">
711<div class="memproto">
712<table class="mlabels">
713 <tr>
714 <td class="mlabels-left">
715 <table class="memname">
716 <tr>
717 <td class="memname">void CollectQueueDescriptorOutputs </td>
718 <td>(</td>
719 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;&#160;</td>
720 <td class="paramname"><em>descriptor</em>, </td>
721 </tr>
722 <tr>
723 <td class="paramkey"></td>
724 <td></td>
725 <td class="paramtype"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;&#160;</td>
726 <td class="paramname"><em>info</em>&#160;</td>
727 </tr>
728 <tr>
729 <td></td>
730 <td>)</td>
731 <td></td><td> const</td>
732 </tr>
733 </table>
734 </td>
735 <td class="mlabels-right">
736<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
737 </tr>
738</table>
739</div><div class="memdoc">
740
741<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00393">393</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
742<div class="fragment"><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div>
743<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; WorkloadDataCollector dataCollector(descriptor.m_Outputs, <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.m_OutputTensorInfos);</div>
744<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; CollectWorkloadOutputs(dataCollector);</div>
745<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
746</div><!-- fragment -->
747<p class="reference">References <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>, and <a class="el" href="_workload_data_8hpp_source.html#l00027">QueueDescriptor::m_Outputs</a>.</p>
748
749<p class="reference">Referenced by <a class="el" href="_layer_8hpp_source.html#l00409">Layer::PrepInfoAndDesc()</a>.</p>
750
751</div>
752</div>
753<a id="a3ff62126ec713a2708e5fbaa6146a7de"></a>
754<h2 class="memtitle"><span class="permalink"><a href="#a3ff62126ec713a2708e5fbaa6146a7de">&#9670;&nbsp;</a></span>CreateTensorHandles()</h2>
755
756<div class="memitem">
757<div class="memproto">
758<table class="mlabels">
759 <tr>
760 <td class="mlabels-left">
761 <table class="memname">
762 <tr>
763 <td class="memname">void CreateTensorHandles </td>
764 <td>(</td>
765 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
766 <td class="paramname"><em>registry</em>, </td>
767 </tr>
768 <tr>
769 <td class="paramkey"></td>
770 <td></td>
771 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;&#160;</td>
772 <td class="paramname"><em>factory</em>, </td>
773 </tr>
774 <tr>
775 <td class="paramkey"></td>
776 <td></td>
777 <td class="paramtype">const bool&#160;</td>
778 <td class="paramname"><em>IsMemoryManaged</em> = <code>true</code>&#160;</td>
779 </tr>
780 <tr>
781 <td></td>
782 <td>)</td>
783 <td></td><td></td>
784 </tr>
785 </table>
786 </td>
787 <td class="mlabels-right">
788<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
789 </tr>
790</table>
791</div><div class="memdoc">
792
793<p>Reimplemented in <a class="el" href="classarmnn_1_1_concat_layer.html#a7763728321afb4eb0d1d00323c3e9121">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.html#a9ee9b10188b7e77625fd56952477839d">OutputLayer</a>, and <a class="el" href="classarmnn_1_1_splitter_layer.html#a7763728321afb4eb0d1d00323c3e9121">SplitterLayer</a>.</p>
794
795<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00308">308</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
796<div class="fragment"><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div>
797<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> idx=0; idx &lt; <a class="code" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>(); idx++)</div>
798<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
799<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
800<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; OutputSlot&amp; slot = <a class="code" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(idx);</div>
801<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="classarmnn_1_1_i_tensor_handle_factory.html#a32f4aa6a7089d877af08928139c2c277">ITensorHandleFactory::FactoryId</a> factoryId = slot.GetTensorHandleFactoryId();</div>
802<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
803<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; OutputHandler&amp; handler = <a class="code" href="classarmnn_1_1_layer.html#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(idx);</div>
804<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (factoryId == <a class="code" href="classarmnn_1_1_i_tensor_handle_factory.html#a9c95f90eb40e31f629e0e2947b8bc6f9">ITensorHandleFactory::LegacyFactoryId</a>)</div>
805<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
806<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; handler.CreateTensorHandles(workloadFactory, IsMemoryManaged);</div>
807<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
808<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">else</span></div>
809<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div>
810<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; ITensorHandleFactory* handleFactory;</div>
811<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; handleFactory = registry.GetFactory(factoryId);</div>
812<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (!handleFactory)</div>
813<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div>
814<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a>(<span class="stringliteral">&quot;handleFactory must not be null.&quot;</span>);</div>
815<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
816<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; handler.CreateTensorHandles(*handleFactory, IsMemoryManaged);</div>
817<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
818<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
819<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;}</div>
820</div><!-- fragment -->
821<p class="reference">References <a class="el" href="_output_handler_8cpp_source.html#l00021">OutputHandler::CreateTensorHandles()</a>, <a class="el" href="_tensor_handle_factory_registry_8cpp_source.html#l00039">TensorHandleFactoryRegistry::GetFactory()</a>, <a class="el" href="_layer_8hpp_source.html#l00335">Layer::GetNumOutputSlots()</a>, <a class="el" href="_layer_8hpp_source.html#l00245">Layer::GetOutputHandler()</a>, <a class="el" href="_layer_8hpp_source.html#l00339">Layer::GetOutputSlot()</a>, <a class="el" href="_layer_8cpp_source.html#l00218">OutputSlot::GetTensorHandleFactoryId()</a>, and <a class="el" href="_i_tensor_handle_factory_8hpp_source.html#l00050">ITensorHandleFactory::LegacyFactoryId</a>.</p>
822
823</div>
824</div>
825<a id="a08d1e10a45f15cd0bd02557be35a3864"></a>
826<h2 class="memtitle"><span class="permalink"><a href="#a08d1e10a45f15cd0bd02557be35a3864">&#9670;&nbsp;</a></span>CreateWorkload()</h2>
827
828<div class="memitem">
829<div class="memproto">
830<table class="mlabels">
831 <tr>
832 <td class="mlabels-left">
833 <table class="memname">
834 <tr>
835 <td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classarmnn_1_1_i_workload.html">IWorkload</a>&gt; CreateWorkload </td>
836 <td>(</td>
837 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;&#160;</td>
838 <td class="paramname"><em>factory</em></td><td>)</td>
839 <td> const</td>
840 </tr>
841 </table>
842 </td>
843 <td class="mlabels-right">
844<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
845 </tr>
846</table>
847</div><div class="memdoc">
848
849<p>Implemented in <a class="el" href="classarmnn_1_1_q_lstm_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">LstmLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_fused_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">FusedLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_channel_shuffle_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ChannelShuffleLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_division_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DivisionLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_binary_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ElementwiseBinaryLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">GatherLayer</a>, <a class="el" href="classarmnn_1_1_logical_binary_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">LogicalBinaryLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_maximum_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MaximumLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MeanLayer</a>, <a class="el" href="classarmnn_1_1_minimum_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MinimumLayer</a>, <a class="el" href="classarmnn_1_1_multiplication_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MultiplicationLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">PadLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">PreluLayer</a>, <a class="el" href="classarmnn_1_1_reduce_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ReduceLayer</a>, <a class="el" href="classarmnn_1_1_reverse_v2_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ReverseV2Layer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">StandInLayer</a>, <a class="el" href="classarmnn_1_1_subtraction_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SubtractionLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">AbsLayer</a>, <a class="el" href="classarmnn_1_1_addition_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">AdditionLayer</a>, <a class="el" href="classarmnn_1_1_batch_mat_mul_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">BatchMatMulLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_cast_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">CastLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">FloorLayer</a>, <a class="el" href="classarmnn_1_1_gather_nd_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">GatherNdLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_map_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MapLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">OutputLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_pooling3d_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">Pooling3dLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_scatter_nd_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ScatterNdLayer</a>, <a class="el" href="classarmnn_1_1_shape_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ShapeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">StackLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_tile_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">TileLayer</a>, <a class="el" href="classarmnn_1_1_unmap_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">UnmapLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">BroadcastToLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_fill_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">FillLayer</a>, <a class="el" href="classarmnn_1_1_quantize_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">QuantizeLayer</a>, and <a class="el" href="classarmnn_1_1_rank_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">RankLayer</a>.</p>
850
851</div>
852</div>
853<a id="a9752e12d6b79e18da1a25f76159d2a72"></a>
854<h2 class="memtitle"><span class="permalink"><a href="#a9752e12d6b79e18da1a25f76159d2a72">&#9670;&nbsp;</a></span>EndInputSlots()</h2>
855
856<div class="memitem">
857<div class="memproto">
858<table class="mlabels">
859 <tr>
860 <td class="mlabels-left">
861 <table class="memname">
862 <tr>
863 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a>&gt;::iterator EndInputSlots </td>
864 <td>(</td>
865 <td class="paramname"></td><td>)</td>
866 <td></td>
867 </tr>
868 </table>
869 </td>
870 <td class="mlabels-right">
871<span class="mlabels"><span class="mlabel">inline</span></span> </td>
872 </tr>
873</table>
874</div><div class="memdoc">
875
876<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00263">263</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
877<div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.end(); }</div>
878</div><!-- fragment -->
879<p class="reference">Referenced by <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00042">armnn::CreateInputsFrom()</a>, <a class="el" href="_common_test_utils_8cpp_source.html#l00012">CreateInputsFrom()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.html#l00023">MovePermuteUpImpl::Run()</a>, and <a class="el" href="_move_transpose_up_8hpp_source.html#l00023">MoveTransposeUpImpl::Run()</a>.</p>
880
881</div>
882</div>
883<a id="a55f76d98fcd2f5cdac3e2b14536cb7ab"></a>
884<h2 class="memtitle"><span class="permalink"><a href="#a55f76d98fcd2f5cdac3e2b14536cb7ab">&#9670;&nbsp;</a></span>EndOutputSlots()</h2>
885
886<div class="memitem">
887<div class="memproto">
888<table class="mlabels">
889 <tr>
890 <td class="mlabels-left">
891 <table class="memname">
892 <tr>
893 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a>&gt;::iterator EndOutputSlots </td>
894 <td>(</td>
895 <td class="paramname"></td><td>)</td>
896 <td></td>
897 </tr>
898 </table>
899 </td>
900 <td class="mlabels-right">
901<span class="mlabels"><span class="mlabel">inline</span></span> </td>
902 </tr>
903</table>
904</div><div class="memdoc">
905
906<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00267">267</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
907<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.end(); }</div>
908</div><!-- fragment -->
909<p class="reference">Referenced by <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00052">armnn::CreateOutputsFrom()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_squash_equal_siblings_8hpp_source.html#l00025">SquashEqualSiblingsImpl&lt; Comparable &gt;::Run()</a>, and <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>.</p>
910
911</div>
912</div>
913<a id="a46fc3fdd4b2a5dd6d184e57983cf20bc"></a>
914<h2 class="memtitle"><span class="permalink"><a href="#a46fc3fdd4b2a5dd6d184e57983cf20bc">&#9670;&nbsp;</a></span>ExecuteStrategy()</h2>
915
916<div class="memitem">
917<div class="memproto">
918<table class="mlabels">
919 <tr>
920 <td class="mlabels-left">
921 <table class="memname">
922 <tr>
923 <td class="memname">void ExecuteStrategy </td>
924 <td>(</td>
925 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_strategy.html">IStrategy</a> &amp;&#160;</td>
926 <td class="paramname"><em>strategy</em></td><td>)</td>
927 <td> const</td>
928 </tr>
929 </table>
930 </td>
931 <td class="mlabels-right">
932<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
933 </tr>
934</table>
935</div><div class="memdoc">
936
937<p>Apply a visitor to this layer. </p>
938
939<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a52799628c0df0037c4708de02bec7185">IConnectableLayer</a>.</p>
940
941<p>Reimplemented in <a class="el" href="classarmnn_1_1_bindable_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">BindableLayer</a>, <a class="el" href="classarmnn_1_1_q_lstm_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; Parameters &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; SoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; FakeQuantizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ReduceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; LstmDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ChannelShuffleDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; LogSoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; PreCompiledDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; SpaceToBatchNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; BatchToSpaceNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; PermuteDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; GatherDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ElementwiseUnaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; DepthToSpaceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; OriginsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; SpaceToDepthDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ReshapeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ViewsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; Pooling2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; Convolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ActivationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; StandInDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; MeanDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; StackDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; TransposeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; InstanceNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ComparisonDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; TransposeConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; BroadcastToDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; FusedDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; BatchMatMulDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; TileDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ArgMinMaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; LogicalBinaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; DetectionPostProcessDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; PadDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; L2NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; Convolution3dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; SliceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; QLstmDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; FillDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; DepthwiseConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; FullyConnectedDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ScatterNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ResizeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; Pooling3dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; ElementwiseBinaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LayerWithParameters&lt; StridedSliceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_reshape_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LstmLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">OutputLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_logical_binary_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LogicalBinaryLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MeanLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">PadLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">StandInLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">GatherLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_pooling3d_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">Pooling3dLayer</a>, <a class="el" href="classarmnn_1_1_reduce_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ReduceLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_reverse_v2_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ReverseV2Layer</a>, <a class="el" href="classarmnn_1_1_shape_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ShapeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SliceLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">StackLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">BroadcastToLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_binary_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ElementwiseBinaryLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MergeLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_rank_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">RankLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">AbsLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">FloorLayer</a>, <a class="el" href="classarmnn_1_1_fused_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">FusedLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_map_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MapLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_unmap_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">UnmapLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_elementwise_base_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ElementwiseBaseLayer</a>, <a class="el" href="classarmnn_1_1_fill_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">FillLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_division_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">DivisionLayer</a>, <a class="el" href="classarmnn_1_1_maximum_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MaximumLayer</a>, <a class="el" href="classarmnn_1_1_minimum_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MinimumLayer</a>, <a class="el" href="classarmnn_1_1_multiplication_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">MultiplicationLayer</a>, <a class="el" href="classarmnn_1_1_subtraction_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">SubtractionLayer</a>, <a class="el" href="classarmnn_1_1_addition_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">AdditionLayer</a>, and <a class="el" href="classarmnn_1_1_quantize_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">QuantizeLayer</a>.</p>
942
943<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00571">571</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
944<div class="fragment"><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;{</div>
945<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; strategy.ExecuteStrategy(<span class="keyword">this</span>, BaseDescriptor(), {}, <a class="code" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a>());</div>
946<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;}</div>
947</div><!-- fragment -->
948<p class="reference">References <a class="el" href="classarmnn_1_1_i_strategy.html#ad4f8c9ff973cf6a603d26b56c5b34967">IStrategy::ExecuteStrategy()</a>, and <a class="el" href="_layer_8hpp_source.html#l00332">Layer::GetName()</a>.</p>
949
950<p class="reference">Referenced by <a class="el" href="_subgraph_utils_8hpp_source.html#l00213">armnn::IsNCHW()</a>.</p>
951
952</div>
953</div>
954<a id="aefb14147290b6b928c5fc924ba035acc"></a>
955<h2 class="memtitle"><span class="permalink"><a href="#aefb14147290b6b928c5fc924ba035acc">&#9670;&nbsp;</a></span>GetAdditionalInformation()</h2>
956
957<div class="memitem">
958<div class="memproto">
959<table class="mlabels">
960 <tr>
961 <td class="mlabels-left">
962 <table class="memname">
963 <tr>
964 <td class="memname">std::shared_ptr&lt;T&gt; GetAdditionalInformation </td>
965 <td>(</td>
966 <td class="paramname"></td><td>)</td>
967 <td> const</td>
968 </tr>
969 </table>
970 </td>
971 <td class="mlabels-right">
972<span class="mlabels"><span class="mlabel">inline</span></span> </td>
973 </tr>
974</table>
975</div><div class="memdoc">
976
977<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00368">368</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
978<div class="fragment"><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div>
979<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> std::static_pointer_cast&lt;T&gt;(<a class="code" href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">m_AdditionalInfoObject</a>);</div>
980<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
981</div><!-- fragment -->
982<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00427">Layer::m_AdditionalInfoObject</a>.</p>
983
984<p class="reference">Referenced by <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>.</p>
985
986</div>
987</div>
988<a id="ad6f282c92535e2be398a9b350d4e2ee9"></a>
989<h2 class="memtitle"><span class="permalink"><a href="#ad6f282c92535e2be398a9b350d4e2ee9">&#9670;&nbsp;</a></span>GetAllowExpandedDims()</h2>
990
991<div class="memitem">
992<div class="memproto">
993<table class="mlabels">
994 <tr>
995 <td class="mlabels-left">
996 <table class="memname">
997 <tr>
998 <td class="memname">bool GetAllowExpandedDims </td>
999 <td>(</td>
1000 <td class="paramname"></td><td>)</td>
1001 <td> const</td>
1002 </tr>
1003 </table>
1004 </td>
1005 <td class="mlabels-right">
1006<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1007 </tr>
1008</table>
1009</div><div class="memdoc">
1010
1011<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00256">256</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1012<div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{ <span class="keywordflow">return</span> m_AllowExpandedDims; };</div>
1013</div><!-- fragment -->
1014<p class="reference">Referenced by <a class="el" href="_layer_with_parameters_8hpp_source.html#l00044">LayerWithParameters&lt; StridedSliceDescriptor &gt;::PrepInfoAndDesc()</a>.</p>
1015
1016</div>
1017</div>
1018<a id="a6ff80e440308295056b57e2adaa42888"></a>
1019<h2 class="memtitle"><span class="permalink"><a href="#a6ff80e440308295056b57e2adaa42888">&#9670;&nbsp;</a></span>GetBackendHint()</h2>
1020
1021<div class="memitem">
1022<div class="memproto">
1023<table class="mlabels">
1024 <tr>
1025 <td class="mlabels-left">
1026 <table class="memname">
1027 <tr>
1028 <td class="memname"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt;<a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a>&gt; GetBackendHint </td>
1029 <td>(</td>
1030 <td class="paramname"></td><td>)</td>
1031 <td> const</td>
1032 </tr>
1033 </table>
1034 </td>
1035 <td class="mlabels-right">
1036<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1037 </tr>
1038</table>
1039</div><div class="memdoc">
1040
1041<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00355">355</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1042<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{ <span class="keywordflow">return</span> m_BackendHint; }</div>
1043</div><!-- fragment -->
1044<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l03063">NetworkImpl::AddPrecompiledLayer()</a>, and <a class="el" href="_layer_clone_base_8hpp_source.html#l00014">Layer::CloneBase()</a>.</p>
1045
1046</div>
1047</div>
1048<a id="afdb1d37740e7a083b625d669588b6a0e"></a>
1049<h2 class="memtitle"><span class="permalink"><a href="#afdb1d37740e7a083b625d669588b6a0e">&#9670;&nbsp;</a></span>GetBackendId()</h2>
1050
1051<div class="memitem">
1052<div class="memproto">
1053<table class="mlabels">
1054 <tr>
1055 <td class="mlabels-left">
1056 <table class="memname">
1057 <tr>
1058 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a>&amp; GetBackendId </td>
1059 <td>(</td>
1060 <td class="paramname"></td><td>)</td>
1061 <td> const</td>
1062 </tr>
1063 </table>
1064 </td>
1065 <td class="mlabels-right">
1066<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1067 </tr>
1068</table>
1069</div><div class="memdoc">
1070
1071<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00290">290</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1072<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;{ <span class="keywordflow">return</span> m_BackendId; }</div>
1073</div><!-- fragment -->
1074<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_network_8cpp_source.html#l01320">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_network_8cpp_source.html#l00844">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_network_8cpp_source.html#l01729">armnn::CalculateEdgeStrategy()</a>, <a class="el" href="_network_8cpp_source.html#l01576">armnn::CalculateSlotOption()</a>, <a class="el" href="_network_8cpp_source.html#l01474">armnn::CalculateSlotOptionForInput()</a>, <a class="el" href="_layer_clone_base_8hpp_source.html#l00014">Layer::CloneBase()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l02025">LoadedNetwork::CreateWorkingMemHandle()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01486">LoadedNetwork::ImportInputs()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01632">LoadedNetwork::ImportOutputs()</a>, and <a class="el" href="_network_8cpp_source.html#l01821">armnn::SelectTensorHandleStrategy()</a>.</p>
1075
1076</div>
1077</div>
1078<a id="a45544992c89527fa4d51498a91401640"></a>
1079<h2 class="memtitle"><span class="permalink"><a href="#a45544992c89527fa4d51498a91401640">&#9670;&nbsp;</a></span>GetConstantTensorsByRef() <span class="overload">[1/2]</span></h2>
1080
1081<div class="memitem">
1082<div class="memproto">
1083<table class="mlabels">
1084 <tr>
1085 <td class="mlabels-left">
1086 <table class="memname">
1087 <tr>
1088 <td class="memname">virtual <a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a> GetConstantTensorsByRef </td>
1089 <td>(</td>
1090 <td class="paramname"></td><td>)</td>
1091 <td> const</td>
1092 </tr>
1093 </table>
1094 </td>
1095 <td class="mlabels-right">
1096<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1097 </tr>
1098</table>
1099</div><div class="memdoc">
1100
1101<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#ae8ffb1cf9a5990f7c2ab50d160d4e70c">IConnectableLayer</a>.</p>
1102
1103<p>Reimplemented in <a class="el" href="classarmnn_1_1_q_lstm_layer.html#a29cc31172f6ab16ac931f90c667c092d">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#a29cc31172f6ab16ac931f90c667c092d">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#a29cc31172f6ab16ac931f90c667c092d">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#a29cc31172f6ab16ac931f90c667c092d">LstmLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a29cc31172f6ab16ac931f90c667c092d">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a29cc31172f6ab16ac931f90c667c092d">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#a77123f40f710742ae19674ce628300bf">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#a29cc31172f6ab16ac931f90c667c092d">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#a29cc31172f6ab16ac931f90c667c092d">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#a29cc31172f6ab16ac931f90c667c092d">DetectionPostProcessLayer</a>, and <a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a29cc31172f6ab16ac931f90c667c092d">BatchNormalizationLayer</a>.</p>
1104
1105<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00427">427</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1106<div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a>(); };</div>
1107</div><!-- fragment -->
1108</div>
1109</div>
1110<a id="a9114de666bc2d910faa846b04fc26974"></a>
1111<h2 class="memtitle"><span class="permalink"><a href="#a9114de666bc2d910faa846b04fc26974">&#9670;&nbsp;</a></span>GetConstantTensorsByRef() <span class="overload">[2/2]</span></h2>
1112
1113<div class="memitem">
1114<div class="memproto">
1115<table class="mlabels">
1116 <tr>
1117 <td class="mlabels-left">
1118 <table class="memname">
1119 <tr>
1120 <td class="memname"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">Layer::ConstantTensors</a> GetConstantTensorsByRef </td>
1121 <td>(</td>
1122 <td class="paramname"></td><td>)</td>
1123 <td></td>
1124 </tr>
1125 </table>
1126 </td>
1127 <td class="mlabels-right">
1128<span class="mlabels"><span class="mlabel">final</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1129 </tr>
1130</table>
1131</div><div class="memdoc">
1132
1133<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a4c2ceb86756bf870d10a9ebe6fe8e14e">IConnectableLayer</a>.</p>
1134
1135<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00576">576</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
1136<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;{</div>
1137<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a> *constThis = <span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>);</div>
1138<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">ConstantTensors</a> res;</div>
1139<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; </div>
1140<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a> immutableData = constThis-&gt;GetConstantTensorsByRef();</div>
1141<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> i : immutableData)</div>
1142<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div>
1143<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; res.push_back(<span class="keyword">const_cast&lt;</span>std::shared_ptr&lt;ConstTensorHandle&gt;&amp;<span class="keyword">&gt;</span>(i.get()));</div>
1144<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
1145<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> res;</div>
1146<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;}</div>
1147</div><!-- fragment -->
1148<p class="reference">References <a class="el" href="_layer_8cpp_source.html#l00576">Layer::GetConstantTensorsByRef()</a>.</p>
1149
1150<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00576">Layer::GetConstantTensorsByRef()</a>, and <a class="el" href="_layer_8hpp_source.html#l00319">Layer::OperateOnConstantTensors()</a>.</p>
1151
1152</div>
1153</div>
1154<a id="aea909c7327109228ef618d459015def3"></a>
1155<h2 class="memtitle"><span class="permalink"><a href="#aea909c7327109228ef618d459015def3">&#9670;&nbsp;</a></span>GetDataType()</h2>
1156
1157<div class="memitem">
1158<div class="memproto">
1159 <table class="memname">
1160 <tr>
1161 <td class="memname"><a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> GetDataType </td>
1162 <td>(</td>
1163 <td class="paramname"></td><td>)</td>
1164 <td> const</td>
1165 </tr>
1166 </table>
1167</div><div class="memdoc">
1168
1169<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00345">345</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
1170<div class="fragment"><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div>
1171<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() &gt; 0) <span class="comment">// Ignore the input layer.</span></div>
1172<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div>
1173<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(0).<a class="code" href="classarmnn_1_1_input_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">GetDataType</a>();</div>
1174<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div>
1175<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">GetDataType</a>();</div>
1176<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div>
1177</div><!-- fragment -->
1178<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00200">TensorInfo::GetDataType()</a>, <a class="el" href="_layer_8hpp_source.html#l00337">Layer::GetInputSlot()</a>, <a class="el" href="_layer_8hpp_source.html#l00334">Layer::GetNumInputSlots()</a>, <a class="el" href="_layer_8hpp_source.html#l00339">Layer::GetOutputSlot()</a>, <a class="el" href="_layer_8cpp_source.html#l00614">InputSlot::GetTensorInfo()</a>, and <a class="el" href="_layer_8cpp_source.html#l00100">OutputSlot::GetTensorInfo()</a>.</p>
1179
1180<p class="reference">Referenced by <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_convert_const_permute_layers_to_const_layers_8hpp_source.html#l00020">ConvertConstPermuteLayersToConstLayers::Run()</a>, <a class="el" href="_fuse_batch_norm_8hpp_source.html#l00027">FuseBatchNorm&lt; ConvLayer, ArmnnType, T &gt;::Run()</a>, <a class="el" href="_convert_constants_8hpp_source.html#l00084">IsFloat32Layer::Test()</a>, and <a class="el" href="_convert_constants_8hpp_source.html#l00092">IsFloat16Layer::Test()</a>.</p>
1181
1182</div>
1183</div>
1184<a id="a8dc12f0ee5b232d397bd18ced1a72a64"></a>
1185<h2 class="memtitle"><span class="permalink"><a href="#a8dc12f0ee5b232d397bd18ced1a72a64">&#9670;&nbsp;</a></span>GetGuid()</h2>
1186
1187<div class="memitem">
1188<div class="memproto">
1189<table class="mlabels">
1190 <tr>
1191 <td class="mlabels-left">
1192 <table class="memname">
1193 <tr>
1194 <td class="memname"><a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a> GetGuid </td>
1195 <td>(</td>
1196 <td class="paramname"></td><td>)</td>
1197 <td> const</td>
1198 </tr>
1199 </table>
1200 </td>
1201 <td class="mlabels-right">
1202<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">final</span><span class="mlabel">virtual</span></span> </td>
1203 </tr>
1204</table>
1205</div><div class="memdoc">
1206
1207<p>Returns the unique id of the layer. </p>
1208
1209<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#afb5e65c770f6cee222db8af7581541a6">IConnectableLayer</a>.</p>
1210
1211<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00343">343</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1212<div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;{ <span class="keywordflow">return</span> m_Guid; }</div>
1213</div><!-- fragment -->
1214<p class="reference">Referenced by <a class="el" href="_layer_clone_base_8hpp_source.html#l00014">Layer::CloneBase()</a>, <a class="el" href="_constant_operator_8cpp_source.html#l00010">ConvertConstantToTosaOperator()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00025">DebugLayer::CreateWorkload()</a>, <a class="el" href="_layer_8cpp_source.html#l00208">OutputSlot::GetOwningLayerGuid()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00072">RefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00293">armnn::RemoveReshapeLayer()</a>, and <a class="el" href="_graph_8cpp_source.html#l00146">Graph::SerializeToDot()</a>.</p>
1215
1216</div>
1217</div>
1218<a id="acf8b8e23bf647836592982f97088d375"></a>
1219<h2 class="memtitle"><span class="permalink"><a href="#acf8b8e23bf647836592982f97088d375">&#9670;&nbsp;</a></span>GetInputSlot() <span class="overload">[1/2]</span></h2>
1220
1221<div class="memitem">
1222<div class="memproto">
1223<table class="mlabels">
1224 <tr>
1225 <td class="mlabels-left">
1226 <table class="memname">
1227 <tr>
1228 <td class="memname">const <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a>&amp; GetInputSlot </td>
1229 <td>(</td>
1230 <td class="paramtype">unsigned int&#160;</td>
1231 <td class="paramname"><em>index</em></td><td>)</td>
1232 <td> const</td>
1233 </tr>
1234 </table>
1235 </td>
1236 <td class="mlabels-right">
1237<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1238 </tr>
1239</table>
1240</div><div class="memdoc">
1241
1242<p>Get a const input slot handle by slot index. </p>
1243
1244<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer</a>.</p>
1245<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="_async_execution_sample_8cpp-example.html#a18">AsyncExecutionSample.cpp</a>, and <a class="el" href="_simple_sample_8cpp-example.html#a18">SimpleSample.cpp</a>.</dd>
1246</dl>
1247
1248<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00337">337</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1249<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.at(index); }</div>
1250</div><!-- fragment -->
1251<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_network_8cpp_source.html#l01320">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_neon_backend_optimization_utils_8hpp_source.html#l00087">armnn::BuildAddMulAddTensorInfoLists()</a>, <a class="el" href="_arm_compute_subgraph_utils_8hpp_source.html#l00278">armnn::ChainReduceLayers()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00271">armnn::ConnectedToLayerType()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00250">armnn::ConnectedToLayerWithNCHW()</a>, <a class="el" href="_activation_operator_8cpp_source.html#l00017">ConvertActivationToTosaOperator()</a>, <a class="el" href="_avg_pool2_d_ignore_value_operator_8cpp_source.html#l00008">ConvertAvgPool2DIgnoreValueToTosaOperator()</a>, <a class="el" href="_concat_operator_8cpp_source.html#l00008">ConvertConcatToTosaOperator()</a>, <a class="el" href="_conv2d_operator_8cpp_source.html#l00010">ConvertConv2dToTosaOperator()</a>, <a class="el" href="_elementwise_binary_operator_8cpp_source.html#l00008">ConvertElementwiseBinaryToTosaOperator()</a>, <a class="el" href="_elementwise_unary_operator_8cpp_source.html#l00008">ConvertElementwiseUnaryOperator()</a>, <a class="el" href="_pooling2_d_operator_8cpp_source.html#l00008">ConvertPooling2DToTosaOperator()</a>, <a class="el" href="_quantize_operator_8cpp_source.html#l00015">ConvertQuantizeToTosaOperator()</a>, <a class="el" href="_reshape_operator_8cpp_source.html#l00008">ConvertReshapeToTosaOperator()</a>, <a class="el" href="_resize_operator_8cpp_source.html#l00015">ConvertResizeToTosaOperator()</a>, <a class="el" href="_slice_operator_8cpp_source.html#l00008">ConvertSliceToTosaOperator()</a>, <a class="el" href="_transpose_conv2d_operator_8cpp_source.html#l00010">ConvertTransposeConv2dToTosaOperator()</a>, <a class="el" href="_transpose_operator_8cpp_source.html#l00008">ConvertTransposeToTosaOperator()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00025">DebugLayer::CreateWorkload()</a>, <a class="el" href="_fold_pad_into_layer2d_8hpp_source.html#l00144">armnn::optimizations::pad_fold::FoldPadIntoLayer2dImpl()</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00059">LayerWithParameters&lt; StridedSliceDescriptor &gt;::GetConnectedConstantAsInputTensors()</a>, <a class="el" href="_layer_8cpp_source.html#l00345">Layer::GetDataType()</a>, <a class="el" href="_network_8cpp_source.html#l01017">armnn::GetLayerInOutDatatype()</a>, <a class="el" href="_graph_8cpp_source.html#l00027">Graph::Graph()</a>, <a class="el" href="_layer_8cpp_source.html#l00053">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00072">RefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00293">armnn::RemoveReshapeLayer()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.html#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.html#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.html#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.html#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.html#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_optimize_inverse_permutes_8hpp_source.html#l00023">OptimizeInversePermutesImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.html#l00023">MoveTransposeUpImpl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.html#l00023">MovePermuteUpImpl::Run()</a>, <a class="el" href="_add_broadcast_reshape_layer_8hpp_source.html#l00027">AddBroadcastReshapeLayerImpl::Run()</a>, <a class="el" href="_fuse_batch_norm_8hpp_source.html#l00027">FuseBatchNorm&lt; ConvLayer, ArmnnType, T &gt;::Run()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00029">Convolution2dLayer::SerializeLayerParameters()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00023">Convolution3dLayer::SerializeLayerParameters()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00029">DepthwiseConvolution2dLayer::SerializeLayerParameters()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00053">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_output_layer_8cpp_source.html#l00032">OutputLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.html#l00410">Layer::VerifyLayerConnections()</a>.</p>
1252
1253</div>
1254</div>
1255<a id="a1b50eb1358cdf382f4bc3fc8849f8e8e"></a>
1256<h2 class="memtitle"><span class="permalink"><a href="#a1b50eb1358cdf382f4bc3fc8849f8e8e">&#9670;&nbsp;</a></span>GetInputSlot() <span class="overload">[2/2]</span></h2>
1257
1258<div class="memitem">
1259<div class="memproto">
1260<table class="mlabels">
1261 <tr>
1262 <td class="mlabels-left">
1263 <table class="memname">
1264 <tr>
1265 <td class="memname"><a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a>&amp; GetInputSlot </td>
1266 <td>(</td>
1267 <td class="paramtype">unsigned int&#160;</td>
1268 <td class="paramname"><em>index</em></td><td>)</td>
1269 <td></td>
1270 </tr>
1271 </table>
1272 </td>
1273 <td class="mlabels-right">
1274<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1275 </tr>
1276</table>
1277</div><div class="memdoc">
1278
1279<p>Get the input slot handle by slot index. </p>
1280
1281<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#ae3fd4f909aec6a9e150ba82dfad4017f">IConnectableLayer</a>.</p>
1282
1283<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00338">338</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1284<div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.at(index); }</div>
1285</div><!-- fragment -->
1286</div>
1287</div>
1288<a id="af5f530544d09a44d726f24702b67b35b"></a>
1289<h2 class="memtitle"><span class="permalink"><a href="#af5f530544d09a44d726f24702b67b35b">&#9670;&nbsp;</a></span>GetInputSlots()</h2>
1290
1291<div class="memitem">
1292<div class="memproto">
1293<table class="mlabels">
1294 <tr>
1295 <td class="mlabels-left">
1296 <table class="memname">
1297 <tr>
1298 <td class="memname">const std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a>&gt;&amp; GetInputSlots </td>
1299 <td>(</td>
1300 <td class="paramname"></td><td>)</td>
1301 <td> const</td>
1302 </tr>
1303 </table>
1304 </td>
1305 <td class="mlabels-right">
1306<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1307 </tr>
1308</table>
1309</div><div class="memdoc">
1310
1311<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00258">258</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1312<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots; }</div>
1313</div><!-- fragment -->
1314<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l00844">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_network_8cpp_source.html#l01576">armnn::CalculateSlotOption()</a>, <a class="el" href="_subgraph_view_selector_8cpp_source.html#l00277">armnn::ForEachLayerInput()</a>, <a class="el" href="_layer_8cpp_source.html#l00360">Layer::GetPriority()</a>, <a class="el" href="_tosa_mappings_8cpp_source.html#l00130">GetTosaMappingFromLayer()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01632">LoadedNetwork::ImportOutputs()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, and <a class="el" href="_delete_broadcast_to_8hpp_source.html#l00019">DeleteBroadcastToImpl::Run()</a>.</p>
1315
1316</div>
1317</div>
1318<a id="a7ddf0cf6f620d59c10e63495ace795d0"></a>
1319<h2 class="memtitle"><span class="permalink"><a href="#a7ddf0cf6f620d59c10e63495ace795d0">&#9670;&nbsp;</a></span>GetName()</h2>
1320
1321<div class="memitem">
1322<div class="memproto">
1323<table class="mlabels">
1324 <tr>
1325 <td class="mlabels-left">
1326 <table class="memname">
1327 <tr>
1328 <td class="memname">const char* GetName </td>
1329 <td>(</td>
1330 <td class="paramname"></td><td>)</td>
1331 <td> const</td>
1332 </tr>
1333 </table>
1334 </td>
1335 <td class="mlabels-right">
1336<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1337 </tr>
1338</table>
1339</div><div class="memdoc">
1340
1341<p>Returns the name of the layer. </p>
1342
1343<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#afcc1c3a20bd2860e0ddd21674389246f">IConnectableLayer</a>.</p>
1344
1345<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00332">332</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1346<div class="fragment"><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;{ <span class="keywordflow">return</span> m_LayerName.c_str(); }</div>
1347</div><!-- fragment -->
1348<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00030">ChannelShuffleLayer::Clone()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00027">QuantizeLayer::Clone()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00028">BroadcastToLayer::Clone()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00028">ActivationLayer::Clone()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00029">FillLayer::Clone()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00029">ConvertFp32ToFp16Layer::Clone()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00028">RankLayer::Clone()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00031">AbsLayer::Clone()</a>, <a class="el" href="_addition_layer_8cpp_source.html#l00030">AdditionLayer::Clone()</a>, <a class="el" href="_input_layer_8cpp_source.html#l00026">InputLayer::Clone()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00032">SliceLayer::Clone()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00029">SoftmaxLayer::Clone()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00029">InstanceNormalizationLayer::Clone()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00040">DebugLayer::Clone()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00029">L2NormalizationLayer::Clone()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00030">StackLayer::Clone()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00042">StridedSliceLayer::Clone()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00029">CastLayer::Clone()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00027">SwitchLayer::Clone()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00025">TileLayer::Clone()</a>, <a class="el" href="_map_layer_8cpp_source.html#l00022">MapLayer::Clone()</a>, <a class="el" href="_unmap_layer_8cpp_source.html#l00022">UnmapLayer::Clone()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00028">DequantizeLayer::Clone()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00022">MemCopyLayer::Clone()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00022">MemImportLayer::Clone()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00025">MergeLayer::Clone()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00029">NormalizationLayer::Clone()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00035">Pooling2dLayer::Clone()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00035">Pooling3dLayer::Clone()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00030">ConvertFp16ToFp32Layer::Clone()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00029">FakeQuantizationLayer::Clone()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00026">BatchMatMulLayer::Clone()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00029">FloorLayer::Clone()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00032">BatchToSpaceNdLayer::Clone()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00034">ResizeLayer::Clone()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00029">GatherNdLayer::Clone()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00031">RsqrtLayer::Clone()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00029">ScatterNdLayer::Clone()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00032">ShapeLayer::Clone()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00033">SpaceToBatchNdLayer::Clone()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00038">SpaceToDepthLayer::Clone()</a>, <a class="el" href="_stand_in_layer_8cpp_source.html#l00026">StandInLayer::Clone()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00029">LogicalBinaryLayer::Clone()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00036">DepthToSpaceLayer::Clone()</a>, <a class="el" href="_subtraction_layer_8cpp_source.html#l00030">SubtractionLayer::Clone()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00029">LogSoftmaxLayer::Clone()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00033">TransposeLayer::Clone()</a>, <a class="el" href="_maximum_layer_8cpp_source.html#l00029">MaximumLayer::Clone()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00034">MeanLayer::Clone()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00032">ArgMinMaxLayer::Clone()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00031">ComparisonLayer::Clone()</a>, <a class="el" href="_minimum_layer_8cpp_source.html#l00030">MinimumLayer::Clone()</a>, <a class="el" href="_division_layer_8cpp_source.html#l00030">DivisionLayer::Clone()</a>, <a class="el" href="_multiplication_layer_8cpp_source.html#l00030">MultiplicationLayer::Clone()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00032">PadLayer::Clone()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00026">ElementwiseBinaryLayer::Clone()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00033">PermuteLayer::Clone()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00029">ElementwiseUnaryLayer::Clone()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00031">PreluLayer::Clone()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00034">ReduceLayer::Clone()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00026">ReverseV2Layer::Clone()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00029">GatherLayer::Clone()</a>, <a class="el" href="_constant_layer_8cpp_source.html#l00030">ConstantLayer::Clone()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00030">ReshapeLayer::Clone()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00056">Convolution3dLayer::Clone()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00058">DepthwiseConvolution2dLayer::Clone()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00029">FullyConnectedLayer::Clone()</a>, <a class="el" href="_fused_layer_8cpp_source.html#l00022">FusedLayer::Clone()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00058">Convolution2dLayer::Clone()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00032">DetectionPostProcessLayer::Clone()</a>, <a class="el" href="_pre_compiled_layer_8cpp_source.html#l00024">PreCompiledLayer::Clone()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00049">TransposeConvolution2dLayer::Clone()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00180">SplitterLayer::Clone()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00080">UnidirectionalSequenceLstmLayer::Clone()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00080">LstmLayer::Clone()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00208">ConcatLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_output_layer_8cpp_source.html#l00027">OutputLayer::Clone()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00047">QuantizedLstmLayer::Clone()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00081">QLstmLayer::Clone()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00046">QuantizeLayer::ExecuteStrategy()</a>, <a class="el" href="_addition_layer_8cpp_source.html#l00035">AdditionLayer::ExecuteStrategy()</a>, <a class="el" href="_subtraction_layer_8cpp_source.html#l00035">SubtractionLayer::ExecuteStrategy()</a>, <a class="el" href="_maximum_layer_8cpp_source.html#l00034">MaximumLayer::ExecuteStrategy()</a>, <a class="el" href="_minimum_layer_8cpp_source.html#l00035">MinimumLayer::ExecuteStrategy()</a>, <a class="el" href="_multiplication_layer_8cpp_source.html#l00035">MultiplicationLayer::ExecuteStrategy()</a>, <a class="el" href="_division_layer_8cpp_source.html#l00035">DivisionLayer::ExecuteStrategy()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00053">ActivationLayer::ExecuteStrategy()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00089">ElementwiseBaseLayer::ExecuteStrategy()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00059">FillLayer::ExecuteStrategy()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00055">ConvertFp32ToFp16Layer::ExecuteStrategy()</a>, <a class="el" href="_input_layer_8cpp_source.html#l00038">InputLayer::ExecuteStrategy()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00054">SoftmaxLayer::ExecuteStrategy()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00054">InstanceNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00054">L2NormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00063">SwitchLayer::ExecuteStrategy()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00066">DebugLayer::ExecuteStrategy()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00057">MemCopyLayer::ExecuteStrategy()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00054">DequantizeLayer::ExecuteStrategy()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00054">NormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00054">FloorLayer::ExecuteStrategy()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00055">ConvertFp16ToFp32Layer::ExecuteStrategy()</a>, <a class="el" href="_fused_layer_8cpp_source.html#l00043">FusedLayer::ExecuteStrategy()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00056">RsqrtLayer::ExecuteStrategy()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00054">LogSoftmaxLayer::ExecuteStrategy()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00051">BroadcastToLayer::ExecuteStrategy()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00070">MergeLayer::ExecuteStrategy()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00050">RankLayer::ExecuteStrategy()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00097">ElementwiseBinaryLayer::ExecuteStrategy()</a>, <a class="el" href="_pre_compiled_layer_8cpp_source.html#l00052">PreCompiledLayer::ExecuteStrategy()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00072">SliceLayer::ExecuteStrategy()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00087">ResizeLayer::ExecuteStrategy()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00071">ShapeLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00083">BatchToSpaceNdLayer::ExecuteStrategy()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00107">GatherLayer::ExecuteStrategy()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00076">ReverseV2Layer::ExecuteStrategy()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00123">StridedSliceLayer::ExecuteStrategy()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00104">ArgMinMaxLayer::ExecuteStrategy()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00107">StackLayer::ExecuteStrategy()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00135">Pooling2dLayer::ExecuteStrategy()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00139">Pooling3dLayer::ExecuteStrategy()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00069">ElementwiseUnaryLayer::ExecuteStrategy()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00128">ReduceLayer::ExecuteStrategy()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00084">SpaceToBatchNdLayer::ExecuteStrategy()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00095">LogicalBinaryLayer::ExecuteStrategy()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00089">SpaceToDepthLayer::ExecuteStrategy()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00087">DepthToSpaceLayer::ExecuteStrategy()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00133">MeanLayer::ExecuteStrategy()</a>, <a class="el" href="_stand_in_layer_8cpp_source.html#l00044">StandInLayer::ExecuteStrategy()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00097">PadLayer::ExecuteStrategy()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00138">PreluLayer::ExecuteStrategy()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00103">ComparisonLayer::ExecuteStrategy()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00150">Convolution2dLayer::ExecuteStrategy()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00155">DepthwiseConvolution2dLayer::ExecuteStrategy()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00084">FullyConnectedLayer::ExecuteStrategy()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00153">Convolution3dLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">BatchNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_constant_layer_8cpp_source.html#l00065">ConstantLayer::ExecuteStrategy()</a>, <a class="el" href="_output_layer_8cpp_source.html#l00040">OutputLayer::ExecuteStrategy()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00112">DetectionPostProcessLayer::ExecuteStrategy()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00161">TransposeConvolution2dLayer::ExecuteStrategy()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00239">SplitterLayer::ExecuteStrategy()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00341">ConcatLayer::ExecuteStrategy()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00402">LstmLayer::ExecuteStrategy()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00397">UnidirectionalSequenceLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00066">ReshapeLayer::ExecuteStrategy()</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00054">LayerWithParameters&lt; StridedSliceDescriptor &gt;::ExecuteStrategy()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00070">TransposeLayer::ExecuteStrategy()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00070">PermuteLayer::ExecuteStrategy()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00239">QuantizedLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00403">QLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_layer_8cpp_source.html#l00571">Layer::ExecuteStrategy()</a>, <a class="el" href="_layer_8hpp_source.html#l00485">BindableLayer::ExecuteStrategy()</a>, <a class="el" href="_fold_pad_into_layer2d_8hpp_source.html#l00144">armnn::optimizations::pad_fold::FoldPadIntoLayer2dImpl()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_mock_backend_8cpp_source.html#l00088">armnn::IsLayerOptimizable()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_layer_8hpp_source.html#l00409">Layer::PrepInfoAndDesc()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.html#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.html#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.html#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_fuse_batch_norm_8hpp_source.html#l00027">FuseBatchNorm&lt; ConvLayer, ArmnnType, T &gt;::Run()</a>, and <a class="el" href="_observable_8cpp_source.html#l00016">ErasedLayerNamesObservable::Update()</a>.</p>
1349
1350</div>
1351</div>
1352<a id="a9a97cb6d32661a57fc33bd29b8e41ff4"></a>
1353<h2 class="memtitle"><span class="permalink"><a href="#a9a97cb6d32661a57fc33bd29b8e41ff4">&#9670;&nbsp;</a></span>GetNameStr()</h2>
1354
1355<div class="memitem">
1356<div class="memproto">
1357<table class="mlabels">
1358 <tr>
1359 <td class="mlabels-left">
1360 <table class="memname">
1361 <tr>
1362 <td class="memname">const std::string&amp; GetNameStr </td>
1363 <td>(</td>
1364 <td class="paramname"></td><td>)</td>
1365 <td> const</td>
1366 </tr>
1367 </table>
1368 </td>
1369 <td class="mlabels-right">
1370<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1371 </tr>
1372</table>
1373</div><div class="memdoc">
1374
1375<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00240">240</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1376<div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
1377<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> m_LayerName;</div>
1378<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
1379</div><!-- fragment -->
1380<p class="reference">Referenced by <a class="el" href="_debug_layer_8cpp_source.html#l00025">DebugLayer::CreateWorkload()</a>, <a class="el" href="_neon_backend_optimization_utils_8hpp_source.html#l00071">armnn::GetFusedName()</a>, <a class="el" href="_layer_8cpp_source.html#l00432">Layer::InferOutputShapes()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_graph_utils_8cpp_source.html#l00044">IsConnected()</a>, <a class="el" href="_test_utils_8hpp_source.html#l00023">LayerNameAndTypeCheck::operator()()</a>, <a class="el" href="_add_broadcast_reshape_layer_8hpp_source.html#l00027">AddBroadcastReshapeLayerImpl::Run()</a>, and <a class="el" href="_layer_8cpp_source.html#l00410">Layer::VerifyLayerConnections()</a>.</p>
1381
1382</div>
1383</div>
1384<a id="abc0660dc440c8a285b456c9ef6383c26"></a>
1385<h2 class="memtitle"><span class="permalink"><a href="#abc0660dc440c8a285b456c9ef6383c26">&#9670;&nbsp;</a></span>GetNumInputSlots()</h2>
1386
1387<div class="memitem">
1388<div class="memproto">
1389<table class="mlabels">
1390 <tr>
1391 <td class="mlabels-left">
1392 <table class="memname">
1393 <tr>
1394 <td class="memname">unsigned int GetNumInputSlots </td>
1395 <td>(</td>
1396 <td class="paramname"></td><td>)</td>
1397 <td> const</td>
1398 </tr>
1399 </table>
1400 </td>
1401 <td class="mlabels-right">
1402<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1403 </tr>
1404</table>
1405</div><div class="memdoc">
1406
1407<p>Returns the number of connectable input slots. </p>
1408
1409<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer</a>.</p>
1410
1411<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00334">334</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1412<div class="fragment"><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_InputSlots.size()); }</div>
1413</div><!-- fragment -->
1414<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l01320">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_layer_8cpp_source.html#l00028">armnn::AssertNumberOfInputSlots()</a>, <a class="el" href="_graph_utils_8cpp_source.html#l00034">CheckNumberOfInputSlot()</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00059">LayerWithParameters&lt; StridedSliceDescriptor &gt;::GetConnectedConstantAsInputTensors()</a>, <a class="el" href="_layer_8cpp_source.html#l00345">Layer::GetDataType()</a>, <a class="el" href="_network_8cpp_source.html#l01017">armnn::GetLayerInOutDatatype()</a>, <a class="el" href="_layer_8cpp_source.html#l00432">Layer::InferOutputShapes()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.html#l00410">Layer::VerifyLayerConnections()</a>.</p>
1415
1416</div>
1417</div>
1418<a id="a1594bddc87d6477df300317658f566bb"></a>
1419<h2 class="memtitle"><span class="permalink"><a href="#a1594bddc87d6477df300317658f566bb">&#9670;&nbsp;</a></span>GetNumOutputSlots()</h2>
1420
1421<div class="memitem">
1422<div class="memproto">
1423<table class="mlabels">
1424 <tr>
1425 <td class="mlabels-left">
1426 <table class="memname">
1427 <tr>
1428 <td class="memname">unsigned int GetNumOutputSlots </td>
1429 <td>(</td>
1430 <td class="paramname"></td><td>)</td>
1431 <td> const</td>
1432 </tr>
1433 </table>
1434 </td>
1435 <td class="mlabels-right">
1436<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1437 </tr>
1438</table>
1439</div><div class="memdoc">
1440
1441<p>Returns the number of connectable output slots. </p>
1442
1443<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#ac2dac3b61c94de52093616be4ab17f8d">IConnectableLayer</a>.</p>
1444
1445<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00335">335</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1446<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_OutputSlots.size()); }</div>
1447</div><!-- fragment -->
1448<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00172">OutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="_graph_utils_8cpp_source.html#l00039">CheckNumberOfOutputSlot()</a>, <a class="el" href="_network_8cpp_source.html#l00801">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_layer_8cpp_source.html#l00308">Layer::CreateTensorHandles()</a>, <a class="el" href="_network_8cpp_source.html#l01017">armnn::GetLayerInOutDatatype()</a>, <a class="el" href="_layer_8cpp_source.html#l00432">Layer::InferOutputShapes()</a>, <a class="el" href="_layer_8cpp_source.html#l00053">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_layer_8hpp_source.html#l00270">Layer::IsOutputUnconnected()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_network_8cpp_source.html#l01821">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_map_layer_8cpp_source.html#l00037">MapLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unmap_layer_8cpp_source.html#l00037">UnmapLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>.</p>
1449
1450</div>
1451</div>
1452<a id="a1d4e05c17647232c514cfe58ca80744a"></a>
1453<h2 class="memtitle"><span class="permalink"><a href="#a1d4e05c17647232c514cfe58ca80744a">&#9670;&nbsp;</a></span>GetOutputHandler() <span class="overload">[1/2]</span></h2>
1454
1455<div class="memitem">
1456<div class="memproto">
1457<table class="mlabels">
1458 <tr>
1459 <td class="mlabels-left">
1460 <table class="memname">
1461 <tr>
1462 <td class="memname"><a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a>&amp; GetOutputHandler </td>
1463 <td>(</td>
1464 <td class="paramtype">unsigned int&#160;</td>
1465 <td class="paramname"><em>i</em> = <code>0</code></td><td>)</td>
1466 <td></td>
1467 </tr>
1468 </table>
1469 </td>
1470 <td class="mlabels-right">
1471<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1472 </tr>
1473</table>
1474</div><div class="memdoc">
1475
1476<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00250">250</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1477<div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
1478<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>OutputHandler&amp;<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classarmnn_1_1_layer.html#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(i));</div>
1479<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
1480</div><!-- fragment -->
1481<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00245">Layer::GetOutputHandler()</a>.</p>
1482
1483</div>
1484</div>
1485<a id="af2c0edc7ea62a8baaec4d3d9b2b09256"></a>
1486<h2 class="memtitle"><span class="permalink"><a href="#af2c0edc7ea62a8baaec4d3d9b2b09256">&#9670;&nbsp;</a></span>GetOutputHandler() <span class="overload">[2/2]</span></h2>
1487
1488<div class="memitem">
1489<div class="memproto">
1490<table class="mlabels">
1491 <tr>
1492 <td class="mlabels-left">
1493 <table class="memname">
1494 <tr>
1495 <td class="memname">const <a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a>&amp; GetOutputHandler </td>
1496 <td>(</td>
1497 <td class="paramtype">unsigned int&#160;</td>
1498 <td class="paramname"><em>i</em> = <code>0</code></td><td>)</td>
1499 <td> const</td>
1500 </tr>
1501 </table>
1502 </td>
1503 <td class="mlabels-right">
1504<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1505 </tr>
1506</table>
1507</div><div class="memdoc">
1508
1509<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00245">245</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1510<div class="fragment"><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div>
1511<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>[i];</div>
1512<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
1513</div><!-- fragment -->
1514<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00440">Layer::m_OutputHandlers</a>.</p>
1515
1516<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00308">Layer::CreateTensorHandles()</a>, <a class="el" href="_layer_8hpp_source.html#l00250">Layer::GetOutputHandler()</a>, <a class="el" href="_layer_8cpp_source.html#l00053">InputSlot::Insert()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.html#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.html#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.html#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.html#l00023">MovePermuteUpImpl::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.html#l00023">MoveTransposeUpImpl::Run()</a>, and <a class="el" href="_input_layer_8cpp_source.html#l00031">InputLayer::ValidateTensorShapesFromInputs()</a>.</p>
1517
1518</div>
1519</div>
1520<a id="a0e36688a43c35668d8db5257274c68fe"></a>
1521<h2 class="memtitle"><span class="permalink"><a href="#a0e36688a43c35668d8db5257274c68fe">&#9670;&nbsp;</a></span>GetOutputSlot() <span class="overload">[1/2]</span></h2>
1522
1523<div class="memitem">
1524<div class="memproto">
1525<table class="mlabels">
1526 <tr>
1527 <td class="mlabels-left">
1528 <table class="memname">
1529 <tr>
1530 <td class="memname">const <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a>&amp; GetOutputSlot </td>
1531 <td>(</td>
1532 <td class="paramtype">unsigned int&#160;</td>
1533 <td class="paramname"><em>index</em> = <code>0</code></td><td>)</td>
1534 <td> const</td>
1535 </tr>
1536 </table>
1537 </td>
1538 <td class="mlabels-right">
1539<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1540 </tr>
1541</table>
1542</div><div class="memdoc">
1543
1544<p>Get the const output slot handle by slot index. </p>
1545
1546<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer</a>.</p>
1547<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="_async_execution_sample_8cpp-example.html#a13">AsyncExecutionSample.cpp</a>, and <a class="el" href="_simple_sample_8cpp-example.html#a13">SimpleSample.cpp</a>.</dd>
1548</dl>
1549
1550<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00339">339</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1551<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.at(index); }</div>
1552</div><!-- fragment -->
1553<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_network_8cpp_source.html#l01320">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_network_8cpp_source.html#l00844">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_neon_backend_optimization_utils_8hpp_source.html#l00087">armnn::BuildAddMulAddTensorInfoLists()</a>, <a class="el" href="_layer_8cpp_source.html#l00172">OutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="_arm_compute_subgraph_utils_8hpp_source.html#l00278">armnn::ChainReduceLayers()</a>, <a class="el" href="_network_8cpp_source.html#l00801">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00271">armnn::ConnectedToLayerType()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00250">armnn::ConnectedToLayerWithNCHW()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00158">SplitterLayer::CreateTensorHandles()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00186">ConcatLayer::CreateTensorHandles()</a>, <a class="el" href="_layer_8cpp_source.html#l00308">Layer::CreateTensorHandles()</a>, <a class="el" href="_fold_pad_into_layer2d_8hpp_source.html#l00144">armnn::optimizations::pad_fold::FoldPadIntoLayer2dImpl()</a>, <a class="el" href="_tosa_operator_utils_8hpp_source.html#l00120">GenerateUniqueOutputName()</a>, <a class="el" href="_layer_8cpp_source.html#l00345">Layer::GetDataType()</a>, <a class="el" href="_network_8cpp_source.html#l01017">armnn::GetLayerInOutDatatype()</a>, <a class="el" href="_layer_8cpp_source.html#l00053">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_graph_utils_8cpp_source.html#l00044">IsConnected()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00072">RefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00293">armnn::RemoveReshapeLayer()</a>, <a class="el" href="_max_min_into_bounded_relu_8hpp_source.html#l00018">MaxMinIntoBoundedReluImpl::Run()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.html#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.html#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_delete_broadcast_to_8hpp_source.html#l00019">DeleteBroadcastToImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.html#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.html#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.html#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.html#l00023">MovePermuteUpImpl::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.html#l00023">MoveTransposeUpImpl::Run()</a>, <a class="el" href="_add_broadcast_reshape_layer_8hpp_source.html#l00027">AddBroadcastReshapeLayerImpl::Run()</a>, <a class="el" href="_fuse_batch_norm_8hpp_source.html#l00027">FuseBatchNorm&lt; ConvLayer, ArmnnType, T &gt;::Run()</a>, <a class="el" href="_network_8cpp_source.html#l01821">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_layer_8cpp_source.html#l00457">Layer::ValidateAndCopyShape()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00039">RankLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_constant_layer_8cpp_source.html#l00045">ConstantLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00038">BroadcastToLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00053">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
1554
1555</div>
1556</div>
1557<a id="abbd71844785bb2f00a81baca30ea5ff0"></a>
1558<h2 class="memtitle"><span class="permalink"><a href="#abbd71844785bb2f00a81baca30ea5ff0">&#9670;&nbsp;</a></span>GetOutputSlot() <span class="overload">[2/2]</span></h2>
1559
1560<div class="memitem">
1561<div class="memproto">
1562<table class="mlabels">
1563 <tr>
1564 <td class="mlabels-left">
1565 <table class="memname">
1566 <tr>
1567 <td class="memname"><a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a>&amp; GetOutputSlot </td>
1568 <td>(</td>
1569 <td class="paramtype">unsigned int&#160;</td>
1570 <td class="paramname"><em>index</em> = <code>0</code></td><td>)</td>
1571 <td></td>
1572 </tr>
1573 </table>
1574 </td>
1575 <td class="mlabels-right">
1576<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1577 </tr>
1578</table>
1579</div><div class="memdoc">
1580
1581<p>Get the output slot handle by slot index. </p>
1582
1583<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a75bfde3503c1b21c397bb095f55db990">IConnectableLayer</a>.</p>
1584
1585<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00340">340</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1586<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.at(index); }</div>
1587</div><!-- fragment -->
1588</div>
1589</div>
1590<a id="a98cdff4e0b45f4c80bfcedaf926e16e0"></a>
1591<h2 class="memtitle"><span class="permalink"><a href="#a98cdff4e0b45f4c80bfcedaf926e16e0">&#9670;&nbsp;</a></span>GetOutputSlots()</h2>
1592
1593<div class="memitem">
1594<div class="memproto">
1595<table class="mlabels">
1596 <tr>
1597 <td class="mlabels-left">
1598 <table class="memname">
1599 <tr>
1600 <td class="memname">const std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a>&gt;&amp; GetOutputSlots </td>
1601 <td>(</td>
1602 <td class="paramname"></td><td>)</td>
1603 <td> const</td>
1604 </tr>
1605 </table>
1606 </td>
1607 <td class="mlabels-right">
1608<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1609 </tr>
1610</table>
1611</div><div class="memdoc">
1612
1613<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00259">259</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1614<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots; }</div>
1615</div><!-- fragment -->
1616<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_subgraph_view_selector_8cpp_source.html#l00301">armnn::ForEachLayerOutput()</a>, <a class="el" href="_tosa_mappings_8cpp_source.html#l00130">GetTosaMappingFromLayer()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01486">LoadedNetwork::ImportInputs()</a>, <a class="el" href="_layer_8hpp_source.html#l00270">Layer::IsOutputUnconnected()</a>, and <a class="el" href="_graph_8cpp_source.html#l00068">Graph::Print()</a>.</p>
1617
1618</div>
1619</div>
1620<a id="a94a487f29157eeec10e2f9a372487bcc"></a>
1621<h2 class="memtitle"><span class="permalink"><a href="#a94a487f29157eeec10e2f9a372487bcc">&#9670;&nbsp;</a></span>GetParameters()</h2>
1622
1623<div class="memitem">
1624<div class="memproto">
1625<table class="mlabels">
1626 <tr>
1627 <td class="mlabels-left">
1628 <table class="memname">
1629 <tr>
1630 <td class="memname">virtual const <a class="el" href="structarmnn_1_1_base_descriptor.html">BaseDescriptor</a>&amp; GetParameters </td>
1631 <td>(</td>
1632 <td class="paramname"></td><td>)</td>
1633 <td> const</td>
1634 </tr>
1635 </table>
1636 </td>
1637 <td class="mlabels-right">
1638<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1639 </tr>
1640</table>
1641</div><div class="memdoc">
1642
1643<p>If the layer has a descriptor return it. </p>
1644<p>The base descriptor can then be cast to the correct descriptor class. If the layer has no associated descriptor a struct of type <a class="el" href="structarmnn_1_1_null_descriptor.html" title="Null Descriptor used as a return value from the IConnectableLayer GetParameters method by layers whic...">NullDescriptor</a> will be returned. Note: NullDescriptors can be detected because they return true when the <a class="el" href="structarmnn_1_1_base_descriptor.html" title="Base class for all descriptors.">BaseDescriptor</a> IsNull function is invoked. </p>
1645
1646<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a7ce723f9ed0cba4430ec1fc11daa4ce9">IConnectableLayer</a>.</p>
1647
1648<p>Reimplemented in <a class="el" href="classarmnn_1_1_layer_with_parameters.html#afa3e8a8f23589b1eaddbe203825bbdcf">LayerWithParameters&lt; Parameters &gt;</a>.</p>
1649
1650<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00378">378</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1651<div class="fragment"><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;{ <span class="keywordflow">return</span> m_NullDescriptor; }</div>
1652</div><!-- fragment -->
1653<p class="reference">Referenced by <a class="el" href="_quantize_layer_8cpp_source.html#l00046">QuantizeLayer::ExecuteStrategy()</a>, <a class="el" href="_addition_layer_8cpp_source.html#l00035">AdditionLayer::ExecuteStrategy()</a>, <a class="el" href="_maximum_layer_8cpp_source.html#l00034">MaximumLayer::ExecuteStrategy()</a>, <a class="el" href="_subtraction_layer_8cpp_source.html#l00035">SubtractionLayer::ExecuteStrategy()</a>, <a class="el" href="_division_layer_8cpp_source.html#l00035">DivisionLayer::ExecuteStrategy()</a>, <a class="el" href="_minimum_layer_8cpp_source.html#l00035">MinimumLayer::ExecuteStrategy()</a>, <a class="el" href="_multiplication_layer_8cpp_source.html#l00035">MultiplicationLayer::ExecuteStrategy()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00055">ConvertFp32ToFp16Layer::ExecuteStrategy()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00055">AbsLayer::ExecuteStrategy()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00054">FloorLayer::ExecuteStrategy()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00056">RsqrtLayer::ExecuteStrategy()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00063">SwitchLayer::ExecuteStrategy()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00066">DebugLayer::ExecuteStrategy()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00057">MemCopyLayer::ExecuteStrategy()</a>, <a class="el" href="_input_layer_8cpp_source.html#l00038">InputLayer::ExecuteStrategy()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00054">DequantizeLayer::ExecuteStrategy()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00055">ConvertFp16ToFp32Layer::ExecuteStrategy()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00070">MergeLayer::ExecuteStrategy()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00138">PreluLayer::ExecuteStrategy()</a>, <a class="el" href="_output_layer_8cpp_source.html#l00040">OutputLayer::ExecuteStrategy()</a>, <a class="el" href="_tosa_mappings_8cpp_source.html#l00130">GetTosaMappingFromLayer()</a>, and <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>.</p>
1654
1655</div>
1656</div>
1657<a id="af97a07195a67a638605b3c325763c2dd"></a>
1658<h2 class="memtitle"><span class="permalink"><a href="#af97a07195a67a638605b3c325763c2dd">&#9670;&nbsp;</a></span>GetPriority()</h2>
1659
1660<div class="memitem">
1661<div class="memproto">
1662 <table class="memname">
1663 <tr>
1664 <td class="memname"><a class="el" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> GetPriority </td>
1665 <td>(</td>
1666 <td class="paramname"></td><td>)</td>
1667 <td> const</td>
1668 </tr>
1669 </table>
1670</div><div class="memdoc">
1671
1672<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00360">360</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
1673<div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div>
1674<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; constexpr <a class="code" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> inputPrio = std::numeric_limits&lt;LayerPriority&gt;::lowest();</div>
1675<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; constexpr <a class="code" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> outputPrio = std::numeric_limits&lt;LayerPriority&gt;::max();</div>
1676<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; </div>
1677<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">LayerType::Input</a>)</div>
1678<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div>
1679<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; m_Priority = inputPrio;</div>
1680<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
1681<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>() == <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">LayerType::Output</a>)</div>
1682<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
1683<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; m_Priority = outputPrio;</div>
1684<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
1685<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_Priority == 0)</div>
1686<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; {</div>
1687<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">if</span> (m_Visiting)</div>
1688<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div>
1689<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">throw</span> GraphValidationException(<span class="stringliteral">&quot;Graph has circular dependencies: cannot walk&quot;</span>);</div>
1690<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div>
1691<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
1692<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">auto</span> maxPrio = [](<span class="keyword">const</span> <a class="code" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> prio, <span class="keyword">const</span> InputSlot&amp; slot) -&gt; <a class="code" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a></div>
1693<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; {</div>
1694<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> OutputSlot *outputSlot = slot.GetConnectedOutputSlot();</div>
1695<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (outputSlot)</div>
1696<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div>
1697<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a>&amp; input = outputSlot-&gt;GetOwningLayer();</div>
1698<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> std::max(prio, input.GetPriority());</div>
1699<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div>
1700<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span></div>
1701<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div>
1702<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// unconnected input slot</span></div>
1703<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> prio;</div>
1704<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
1705<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; };</div>
1706<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
1707<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; m_Visiting = <span class="keyword">true</span>;</div>
1708<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> parentPrio = std::accumulate(<a class="code" href="classarmnn_1_1_layer.html#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a>().cbegin(), <a class="code" href="classarmnn_1_1_layer.html#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a>().cend(), 0U, maxPrio);</div>
1709<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_Visiting = <span class="keyword">false</span>;</div>
1710<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
1711<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> (parentPrio &gt;= outputPrio)</div>
1712<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
1713<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">throw</span> GraphValidationException(<span class="stringliteral">&quot;Graph has too many edges&quot;</span>);</div>
1714<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
1715<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
1716<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; m_Priority = parentPrio + 1U;</div>
1717<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
1718<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
1719<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> m_Priority;</div>
1720<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div>
1721</div><!-- fragment -->
1722<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00258">Layer::GetInputSlots()</a>, <a class="el" href="_layer_8hpp_source.html#l00132">OutputSlot::GetOwningLayer()</a>, <a class="el" href="_layer_8cpp_source.html#l00360">Layer::GetPriority()</a>, <a class="el" href="_layer_8hpp_source.html#l00286">Layer::GetType()</a>, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::Input</a>, and <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::Output</a>.</p>
1723
1724<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00360">Layer::GetPriority()</a>, and <a class="el" href="_squash_equal_siblings_8hpp_source.html#l00025">SquashEqualSiblingsImpl&lt; Comparable &gt;::Run()</a>.</p>
1725
1726</div>
1727</div>
1728<a id="a5e5520194ea4042fe07b0bf53c28f634"></a>
1729<h2 class="memtitle"><span class="permalink"><a href="#a5e5520194ea4042fe07b0bf53c28f634">&#9670;&nbsp;</a></span>GetRelatedLayerNames()</h2>
1730
1731<div class="memitem">
1732<div class="memproto">
1733<table class="mlabels">
1734 <tr>
1735 <td class="mlabels-left">
1736 <table class="memname">
1737 <tr>
1738 <td class="memname">const std::list&lt;std::string&gt;&amp; GetRelatedLayerNames </td>
1739 <td>(</td>
1740 <td class="paramname"></td><td>)</td>
1741 <td></td>
1742 </tr>
1743 </table>
1744 </td>
1745 <td class="mlabels-right">
1746<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1747 </tr>
1748</table>
1749</div><div class="memdoc">
1750
1751<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00347">347</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1752<div class="fragment"><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{ <span class="keywordflow">return</span> m_RelatedLayerNames; }</div>
1753</div><!-- fragment -->
1754<p class="reference">Referenced by <a class="el" href="_observable_8cpp_source.html#l00016">ErasedLayerNamesObservable::Update()</a>.</p>
1755
1756</div>
1757</div>
1758<a id="a3560e0733f829e5194887d014a133144"></a>
1759<h2 class="memtitle"><span class="permalink"><a href="#a3560e0733f829e5194887d014a133144">&#9670;&nbsp;</a></span>GetShapeInferenceMethod()</h2>
1760
1761<div class="memitem">
1762<div class="memproto">
1763<table class="mlabels">
1764 <tr>
1765 <td class="mlabels-left">
1766 <table class="memname">
1767 <tr>
1768 <td class="memname"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> GetShapeInferenceMethod </td>
1769 <td>(</td>
1770 <td class="paramname"></td><td>)</td>
1771 <td> const</td>
1772 </tr>
1773 </table>
1774 </td>
1775 <td class="mlabels-right">
1776<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1777 </tr>
1778</table>
1779</div><div class="memdoc">
1780
1781<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00255">255</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1782<div class="fragment"><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a>; };</div>
1783</div><!-- fragment -->
1784<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00441">Layer::m_ShapeInferenceMethod</a>.</p>
1785
1786</div>
1787</div>
1788<a id="ad8e15c530c929ab823d89ae9fd2d3f11"></a>
1789<h2 class="memtitle"><span class="permalink"><a href="#ad8e15c530c929ab823d89ae9fd2d3f11">&#9670;&nbsp;</a></span>GetType()</h2>
1790
1791<div class="memitem">
1792<div class="memproto">
1793<table class="mlabels">
1794 <tr>
1795 <td class="mlabels-left">
1796 <table class="memname">
1797 <tr>
1798 <td class="memname"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> GetType </td>
1799 <td>(</td>
1800 <td class="paramname"></td><td>)</td>
1801 <td> const</td>
1802 </tr>
1803 </table>
1804 </td>
1805 <td class="mlabels-right">
1806<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1807 </tr>
1808</table>
1809</div><div class="memdoc">
1810
1811<p>Returns the <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4" title="When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.">armnn::LayerType</a> of this layer. </p>
1812
1813<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#adceb04ae84c524e4d01881e3754a4d59">IConnectableLayer</a>.</p>
1814
1815<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00286">286</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1816<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;{ <span class="keywordflow">return</span> m_Type; }</div>
1817</div><!-- fragment -->
1818<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l01320">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_layer_8cpp_source.html#l00028">armnn::AssertNumberOfInputSlots()</a>, <a class="el" href="_network_8cpp_source.html#l00844">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_neon_backend_optimization_utils_8hpp_source.html#l00087">armnn::BuildAddMulAddTensorInfoLists()</a>, <a class="el" href="_network_8cpp_source.html#l01729">armnn::CalculateEdgeStrategy()</a>, <a class="el" href="_network_8cpp_source.html#l01576">armnn::CalculateSlotOption()</a>, <a class="el" href="_network_8cpp_source.html#l01474">armnn::CalculateSlotOptionForInput()</a>, <a class="el" href="_network_8cpp_source.html#l00801">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00271">armnn::ConnectedToLayerType()</a>, <a class="el" href="_tosa_operator_utils_8hpp_source.html#l00120">GenerateUniqueOutputName()</a>, <a class="el" href="_layer_8cpp_source.html#l00360">Layer::GetPriority()</a>, <a class="el" href="_tosa_mappings_8cpp_source.html#l00130">GetTosaMappingFromLayer()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01486">LoadedNetwork::ImportInputs()</a>, <a class="el" href="_loaded_network_8cpp_source.html#l01632">LoadedNetwork::ImportOutputs()</a>, <a class="el" href="_layer_8cpp_source.html#l00432">Layer::InferOutputShapes()</a>, <a class="el" href="_reshape_layer_8hpp_source.html#l00042">ReshapeLayer::IsEqual()</a>, <a class="el" href="_transpose_layer_8hpp_source.html#l00054">TransposeLayer::IsEqual()</a>, <a class="el" href="_permute_layer_8hpp_source.html#l00055">PermuteLayer::IsEqual()</a>, <a class="el" href="_transpose_layer_8hpp_source.html#l00045">TransposeLayer::IsInverse()</a>, <a class="el" href="_permute_layer_8hpp_source.html#l00046">PermuteLayer::IsInverse()</a>, <a class="el" href="_test_utils_8hpp_source.html#l00034">IsLayerOfType()</a>, <a class="el" href="_mock_backend_8cpp_source.html#l00062">armnn::IsLayerSupported()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00362">armnn::IsSequenceLayerType()</a>, <a class="el" href="_test_utils_8hpp_source.html#l00023">LayerNameAndTypeCheck::operator()()</a>, <a class="el" href="_tosa_ref_backend_8cpp_source.html#l00082">TosaRefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00072">RefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_gpu_fsa_backend_8cpp_source.html#l00220">GpuFsaBackend::OptimizeSubgraphView()</a>, <a class="el" href="_subgraph_utils_8hpp_source.html#l00293">armnn::RemoveReshapeLayer()</a>, <a class="el" href="_network_8cpp_source.html#l00786">armnn::ReturnWithError()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.html#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.html#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_add_debug_8hpp_source.html#l00019">AddDebugImpl::Run()</a>, <a class="el" href="_delete_broadcast_to_8hpp_source.html#l00019">DeleteBroadcastToImpl::Run()</a>, <a class="el" href="_convert_const_permute_layers_to_const_layers_8hpp_source.html#l00020">ConvertConstPermuteLayersToConstLayers::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.html#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.html#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_convert_const_dequantisation_layers_to_const_layers_8hpp_source.html#l00021">ConvertConstDequantisationLayersToConstLayersImpl::Run()</a>, <a class="el" href="_permute_depthwise_conv2d_weights_8hpp_source.html#l00023">PermuteDepthwiseConv2dWeightsImpl::Run()</a>, <a class="el" href="_fuse_batch_norm_8hpp_source.html#l00027">FuseBatchNorm&lt; ConvLayer, ArmnnType, T &gt;::Run()</a>, <a class="el" href="_add_broadcast_reshape_layer_8hpp_source.html#l00027">AddBroadcastReshapeLayerImpl::Run()</a>, <a class="el" href="_optimization_8hpp_source.html#l00038">OptimizeForTypeImpl&lt; BaseType, OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt; &gt;::Run()</a>, <a class="el" href="_add_debug_8hpp_source.html#l00038">AddDebugToFileImpl::Run()</a>, <a class="el" href="_network_8cpp_source.html#l01821">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.html#l00410">Layer::VerifyLayerConnections()</a>.</p>
1819
1820</div>
1821</div>
1822<a id="a65ca562c882ad619684445a1402f415a"></a>
1823<h2 class="memtitle"><span class="permalink"><a href="#a65ca562c882ad619684445a1402f415a">&#9670;&nbsp;</a></span>InferOutputShapes()</h2>
1824
1825<div class="memitem">
1826<div class="memproto">
1827<table class="mlabels">
1828 <tr>
1829 <td class="mlabels-left">
1830 <table class="memname">
1831 <tr>
1832 <td class="memname">std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt; InferOutputShapes </td>
1833 <td>(</td>
1834 <td class="paramtype">const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt; &amp;&#160;</td>
1835 <td class="paramname"><em>inputShapes</em></td><td>)</td>
1836 <td> const</td>
1837 </tr>
1838 </table>
1839 </td>
1840 <td class="mlabels-right">
1841<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1842 </tr>
1843</table>
1844</div><div class="memdoc">
1845
1846<p>Infer the shape of the output(s) based on the provided input shape(s) </p>
1847
1848<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#aa6e3c075c888e7c16942a468a3aae33c">IConnectableLayer</a>.</p>
1849
1850<p>Reimplemented in <a class="el" href="classarmnn_1_1_q_lstm_layer.html#a65ca562c882ad619684445a1402f415a">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#a65ca562c882ad619684445a1402f415a">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.html#a65ca562c882ad619684445a1402f415a">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#a65ca562c882ad619684445a1402f415a">LstmLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#a65ca562c882ad619684445a1402f415a">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.html#a65ca562c882ad619684445a1402f415a">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#a65ca562c882ad619684445a1402f415a">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#a65ca562c882ad619684445a1402f415a">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a65ca562c882ad619684445a1402f415a">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#a65ca562c882ad619684445a1402f415a">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a65ca562c882ad619684445a1402f415a">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#a65ca562c882ad619684445a1402f415a">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#a65ca562c882ad619684445a1402f415a">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.html#a65ca562c882ad619684445a1402f415a">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.html#a65ca562c882ad619684445a1402f415a">MeanLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.html#a65ca562c882ad619684445a1402f415a">PadLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.html#a65ca562c882ad619684445a1402f415a">StandInLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.html#a65ca562c882ad619684445a1402f415a">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.html#a65ca562c882ad619684445a1402f415a">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.html#a65ca562c882ad619684445a1402f415a">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_pooling3d_layer.html#a65ca562c882ad619684445a1402f415a">Pooling3dLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.html#a65ca562c882ad619684445a1402f415a">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_shape_layer.html#a65ca562c882ad619684445a1402f415a">ShapeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.html#a65ca562c882ad619684445a1402f415a">SliceLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.html#a65ca562c882ad619684445a1402f415a">StackLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.html#a65ca562c882ad619684445a1402f415a">MergeLayer</a>, <a class="el" href="classarmnn_1_1_rank_layer.html#a65ca562c882ad619684445a1402f415a">RankLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.html#a65ca562c882ad619684445a1402f415a">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.html#a65ca562c882ad619684445a1402f415a">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.html#a65ca562c882ad619684445a1402f415a">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_logical_binary_layer.html#a65ca562c882ad619684445a1402f415a">LogicalBinaryLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.html#a65ca562c882ad619684445a1402f415a">PreluLayer</a>, <a class="el" href="classarmnn_1_1_reduce_layer.html#a65ca562c882ad619684445a1402f415a">ReduceLayer</a>, <a class="el" href="classarmnn_1_1_reverse_v2_layer.html#a65ca562c882ad619684445a1402f415a">ReverseV2Layer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.html#a65ca562c882ad619684445a1402f415a">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.html#a65ca562c882ad619684445a1402f415a">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.html#a65ca562c882ad619684445a1402f415a">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_binary_layer.html#a65ca562c882ad619684445a1402f415a">ElementwiseBinaryLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.html#a65ca562c882ad619684445a1402f415a">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.html#a65ca562c882ad619684445a1402f415a">GatherLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.html#a65ca562c882ad619684445a1402f415a">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_batch_mat_mul_layer.html#a65ca562c882ad619684445a1402f415a">BatchMatMulLayer</a>, <a class="el" href="classarmnn_1_1_gather_nd_layer.html#a65ca562c882ad619684445a1402f415a">GatherNdLayer</a>, <a class="el" href="classarmnn_1_1_scatter_nd_layer.html#a65ca562c882ad619684445a1402f415a">ScatterNdLayer</a>, <a class="el" href="classarmnn_1_1_tile_layer.html#a65ca562c882ad619684445a1402f415a">TileLayer</a>, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html#a65ca562c882ad619684445a1402f415a">BroadcastToLayer</a>, and <a class="el" href="classarmnn_1_1_elementwise_base_layer.html#a65ca562c882ad619684445a1402f415a">ElementwiseBaseLayer</a>.</p>
1851
1852<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00432">432</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
1853<div class="fragment"><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;{</div>
1854<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="_exceptions_8hpp.html#a5b0cd1f24b12298894d6367f186ea6dc">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a>(<a class="code" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() != 0, <span class="stringliteral">&quot;input slots must not be zero.&quot;</span>);</div>
1855<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="_exceptions_8hpp.html#a5b0cd1f24b12298894d6367f186ea6dc">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a>(<a class="code" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>() != 0, <span class="stringliteral">&quot;output slots must not be zero.&quot;</span>);</div>
1856<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
1857<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// By default we return what we got, meaning the output shape(s) are the same as the input(s).</span></div>
1858<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// This only works if the number of inputs and outputs are the same. Since we are in the Layer</span></div>
1859<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="comment">// base class, this means the implementation needs to be overridden in the specific layers for</span></div>
1860<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// the other cases. So the missing implementation justifies the UnimplementedException.</span></div>
1861<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
1862<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() != <a class="code" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>())</div>
1863<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div>
1864<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">throw</span> UnimplementedException(</div>
1865<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; fmt::format(<span class="stringliteral">&quot;Default implementation for InferOutputShapes can only be used for &quot;</span></div>
1866<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="stringliteral">&quot;layers with the same number of input and output slots. This doesn&#39;t &quot;</span></div>
1867<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="stringliteral">&quot;hold for {0} layer {1} (#inputs={2} #outputs={3}) {4}&quot;</span>,</div>
1868<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="namespacearmnn.html#addb6b14dd1b632263ffe77430259a7c4">GetLayerTypeAsCString</a>(this-&gt;<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>()),</div>
1869<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a>(),</div>
1870<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>(),</div>
1871<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>(),</div>
1872<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div>
1873<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
1874<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> inputShapes;</div>
1875<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;}</div>
1876</div><!-- fragment -->
1877<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00210">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a>, <a class="el" href="_exceptions_8hpp_source.html#l00203">CHECK_LOCATION</a>, <a class="el" href="_internal_types_8cpp_source.html#l00013">armnn::GetLayerTypeAsCString()</a>, <a class="el" href="_layer_8hpp_source.html#l00240">Layer::GetNameStr()</a>, <a class="el" href="_layer_8hpp_source.html#l00334">Layer::GetNumInputSlots()</a>, <a class="el" href="_layer_8hpp_source.html#l00335">Layer::GetNumOutputSlots()</a>, and <a class="el" href="_layer_8hpp_source.html#l00286">Layer::GetType()</a>.</p>
1878
1879<p class="reference">Referenced by <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>.</p>
1880
1881</div>
1882</div>
1883<a id="a22485f444124128940e798a42f0b76d9"></a>
1884<h2 class="memtitle"><span class="permalink"><a href="#a22485f444124128940e798a42f0b76d9">&#9670;&nbsp;</a></span>IsOutputUnconnected()</h2>
1885
1886<div class="memitem">
1887<div class="memproto">
1888<table class="mlabels">
1889 <tr>
1890 <td class="mlabels-left">
1891 <table class="memname">
1892 <tr>
1893 <td class="memname">bool IsOutputUnconnected </td>
1894 <td>(</td>
1895 <td class="paramname"></td><td>)</td>
1896 <td></td>
1897 </tr>
1898 </table>
1899 </td>
1900 <td class="mlabels-right">
1901<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1902 </tr>
1903</table>
1904</div><div class="memdoc">
1905
1906<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00270">270</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1907<div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
1908<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numConnections = 0;</div>
1909<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
1910<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; output : <a class="code" href="classarmnn_1_1_layer.html#a98cdff4e0b45f4c80bfcedaf926e16e0">GetOutputSlots</a>())</div>
1911<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
1912<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; numConnections += output.GetNumConnections();</div>
1913<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
1914<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
1915<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>() &gt; 0) &amp;&amp; (numConnections == 0);</div>
1916<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
1917</div><!-- fragment -->
1918<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00335">Layer::GetNumOutputSlots()</a>, and <a class="el" href="_layer_8hpp_source.html#l00259">Layer::GetOutputSlots()</a>.</p>
1919
1920<p class="reference">Referenced by <a class="el" href="_optimization_8hpp_source.html#l00084">OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt;::Run()</a>, and <a class="el" href="_optimization_8hpp_source.html#l00136">OptimizeForExclusiveConnectionImpl&lt; BaseType, ChildType, Wrapped &gt;::Run()</a>.</p>
1921
1922</div>
1923</div>
1924<a id="a386acff5f8430245239ce58d00ba7576"></a>
1925<h2 class="memtitle"><span class="permalink"><a href="#a386acff5f8430245239ce58d00ba7576">&#9670;&nbsp;</a></span>OperateOnConstantTensors()</h2>
1926
1927<div class="memitem">
1928<div class="memproto">
1929<table class="mlabels">
1930 <tr>
1931 <td class="mlabels-left">
1932 <table class="memname">
1933 <tr>
1934 <td class="memname">void OperateOnConstantTensors </td>
1935 <td>(</td>
1936 <td class="paramtype">Op&#160;</td>
1937 <td class="paramname"><em>op</em></td><td>)</td>
1938 <td></td>
1939 </tr>
1940 </table>
1941 </td>
1942 <td class="mlabels-right">
1943<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1944 </tr>
1945</table>
1946</div><div class="memdoc">
1947
1948<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00319">319</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1949<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
1950<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> constant : <a class="code" href="classarmnn_1_1_layer.html#a9114de666bc2d910faa846b04fc26974">GetConstantTensorsByRef</a>())</div>
1951<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
1952<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span> (constant.get())</div>
1953<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div>
1954<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; op(constant);</div>
1955<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
1956<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
1957<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; };</div>
1958</div><!-- fragment -->
1959<p class="reference">References <a class="el" href="_layer_8cpp_source.html#l00576">Layer::GetConstantTensorsByRef()</a>.</p>
1960
1961<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00336">Layer::ReleaseConstantData()</a>, and <a class="el" href="_convert_constants_8hpp_source.html#l00071">ConvertConstants&lt; Converter, Predicate &gt;::Run()</a>.</p>
1962
1963</div>
1964</div>
1965<a id="a30a858b2b26d651a066537e499fbf40d"></a>
1966<h2 class="memtitle"><span class="permalink"><a href="#a30a858b2b26d651a066537e499fbf40d">&#9670;&nbsp;</a></span>PrepInfoAndDesc()</h2>
1967
1968<div class="memitem">
1969<div class="memproto">
1970<table class="mlabels">
1971 <tr>
1972 <td class="mlabels-left">
1973 <table class="memname">
1974 <tr>
1975 <td class="memname"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> PrepInfoAndDesc </td>
1976 <td>(</td>
1977 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;&#160;</td>
1978 <td class="paramname"><em>descriptor</em></td><td>)</td>
1979 <td> const</td>
1980 </tr>
1981 </table>
1982 </td>
1983 <td class="mlabels-right">
1984<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
1985 </tr>
1986</table>
1987</div><div class="memdoc">
1988
1989<p>Helper function to reduce duplication in *Layer::CreateWorkload. </p>
1990
1991<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00409">409</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
1992<div class="fragment"><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div>
1993<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; WorkloadInfo <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>;</div>
1994<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#afc3239f5fc116259bf5451964e803646">CollectQueueDescriptorInputs</a>(descriptor, info);</div>
1995<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a499ca5a94d0174ed21786b6994b2cd8c">CollectQueueDescriptorOutputs</a>(descriptor, info);</div>
1996<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.m_Name = <a class="code" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a>();</div>
1997<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>;</div>
1998<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div>
1999</div><!-- fragment -->
2000<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00386">Layer::CollectQueueDescriptorInputs()</a>, <a class="el" href="_layer_8hpp_source.html#l00393">Layer::CollectQueueDescriptorOutputs()</a>, <a class="el" href="_layer_8hpp_source.html#l00332">Layer::GetName()</a>, and <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>.</p>
2001
2002<p class="reference">Referenced by <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00021">ConvertFp32ToFp16Layer::CreateWorkload()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00017">QuantizeLayer::CreateWorkload()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00020">RankLayer::CreateWorkload()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00019">SwitchLayer::CreateWorkload()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00024">ShapeLayer::CreateWorkload()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00019">DequantizeLayer::CreateWorkload()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00027">MemImportLayer::CreateWorkload()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00021">GatherNdLayer::CreateWorkload()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00022">ConvertFp16ToFp32Layer::CreateWorkload()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00021">FloorLayer::CreateWorkload()</a>, <a class="el" href="_addition_layer_8cpp_source.html#l00022">AdditionLayer::CreateWorkload()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00022">AbsLayer::CreateWorkload()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00021">CastLayer::CreateWorkload()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00022">RsqrtLayer::CreateWorkload()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00027">MemCopyLayer::CreateWorkload()</a>, <a class="el" href="_unmap_layer_8cpp_source.html#l00027">UnmapLayer::CreateWorkload()</a>, <a class="el" href="_map_layer_8cpp_source.html#l00027">MapLayer::CreateWorkload()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00025">DebugLayer::CreateWorkload()</a>, <a class="el" href="_maximum_layer_8cpp_source.html#l00021">MaximumLayer::CreateWorkload()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00023">PreluLayer::CreateWorkload()</a>, <a class="el" href="_division_layer_8cpp_source.html#l00022">DivisionLayer::CreateWorkload()</a>, <a class="el" href="_subtraction_layer_8cpp_source.html#l00022">SubtractionLayer::CreateWorkload()</a>, <a class="el" href="_minimum_layer_8cpp_source.html#l00022">MinimumLayer::CreateWorkload()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00018">ReverseV2Layer::CreateWorkload()</a>, <a class="el" href="_multiplication_layer_8cpp_source.html#l00022">MultiplicationLayer::CreateWorkload()</a>, <a class="el" href="_constant_layer_8cpp_source.html#l00021">ConstantLayer::CreateWorkload()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00022">QuantizedLstmLayer::CreateWorkload()</a>, and <a class="el" href="_layer_with_parameters_8hpp_source.html#l00044">LayerWithParameters&lt; StridedSliceDescriptor &gt;::PrepInfoAndDesc()</a>.</p>
2003
2004</div>
2005</div>
2006<a id="a339bef86bc340c3d1393ed83950fe8af"></a>
2007<h2 class="memtitle"><span class="permalink"><a href="#a339bef86bc340c3d1393ed83950fe8af">&#9670;&nbsp;</a></span>ReleaseConstantData()</h2>
2008
2009<div class="memitem">
2010<div class="memproto">
2011<table class="mlabels">
2012 <tr>
2013 <td class="mlabels-left">
2014 <table class="memname">
2015 <tr>
2016 <td class="memname">void ReleaseConstantData </td>
2017 <td>(</td>
2018 <td class="paramname"></td><td>)</td>
2019 <td></td>
2020 </tr>
2021 </table>
2022 </td>
2023 <td class="mlabels-right">
2024<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
2025 </tr>
2026</table>
2027</div><div class="memdoc">
2028
2029<p>Reimplemented in <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a49a08bdbd40e6913a9a3e1418aa1f43a">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a49a08bdbd40e6913a9a3e1418aa1f43a">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#a49a08bdbd40e6913a9a3e1418aa1f43a">FullyConnectedLayer</a>, and <a class="el" href="classarmnn_1_1_constant_layer.html#a49a08bdbd40e6913a9a3e1418aa1f43a">ConstantLayer</a>.</p>
2030
2031<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00336">336</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2032<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;{</div>
2033<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// Now free up the static data.</span></div>
2034<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a386acff5f8430245239ce58d00ba7576">OperateOnConstantTensors</a>([](std::shared_ptr&lt;ConstTensorHandle&gt;&amp; handle)</div>
2035<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div>
2036<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; handle.reset();</div>
2037<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; });</div>
2038<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div>
2039</div><!-- fragment -->
2040<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00319">Layer::OperateOnConstantTensors()</a>.</p>
2041
2042</div>
2043</div>
2044<a id="ae68bb844446f28cf8580ecbe2f516ff6"></a>
2045<h2 class="memtitle"><span class="permalink"><a href="#ae68bb844446f28cf8580ecbe2f516ff6">&#9670;&nbsp;</a></span>Reparent()</h2>
2046
2047<div class="memitem">
2048<div class="memproto">
2049<table class="mlabels">
2050 <tr>
2051 <td class="mlabels-left">
2052 <table class="memname">
2053 <tr>
2054 <td class="memname">virtual void Reparent </td>
2055 <td>(</td>
2056 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td>
2057 <td class="paramname"><em>dest</em>, </td>
2058 </tr>
2059 <tr>
2060 <td class="paramkey"></td>
2061 <td></td>
2062 <td class="paramtype">std::list&lt; <a class="el" href="classarmnn_1_1_layer.html">Layer</a> * &gt;::const_iterator&#160;</td>
2063 <td class="paramname"><em>iterator</em>&#160;</td>
2064 </tr>
2065 <tr>
2066 <td></td>
2067 <td>)</td>
2068 <td></td><td></td>
2069 </tr>
2070 </table>
2071 </td>
2072 <td class="mlabels-right">
2073<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
2074 </tr>
2075</table>
2076</div><div class="memdoc">
2077
2078<p class="reference">Referenced by <a class="el" href="_graph_8hpp_source.html#l00115">Graph::operator=()</a>.</p>
2079
2080</div>
2081</div>
2082<a id="aac329cade047e952621b59a51a5d5f49"></a>
2083<h2 class="memtitle"><span class="permalink"><a href="#aac329cade047e952621b59a51a5d5f49">&#9670;&nbsp;</a></span>ResetPriority()</h2>
2084
2085<div class="memitem">
2086<div class="memproto">
2087 <table class="memname">
2088 <tr>
2089 <td class="memname">void ResetPriority </td>
2090 <td>(</td>
2091 <td class="paramname"></td><td>)</td>
2092 <td> const</td>
2093 </tr>
2094 </table>
2095</div><div class="memdoc">
2096
2097<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00354">354</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2098<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div>
2099<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; m_Priority = 0;</div>
2100<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; m_Visiting = <span class="keyword">false</span>;</div>
2101<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div>
2102</div><!-- fragment -->
2103</div>
2104</div>
2105<a id="ac04cd8de9b9185756eb02463ffd432b1"></a>
2106<h2 class="memtitle"><span class="permalink"><a href="#ac04cd8de9b9185756eb02463ffd432b1">&#9670;&nbsp;</a></span>SerializeLayerParameters()</h2>
2107
2108<div class="memitem">
2109<div class="memproto">
2110<table class="mlabels">
2111 <tr>
2112 <td class="mlabels-left">
2113 <table class="memname">
2114 <tr>
2115 <td class="memname">void SerializeLayerParameters </td>
2116 <td>(</td>
2117 <td class="paramtype"><a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;&#160;</td>
2118 <td class="paramname"><em>fn</em></td><td>)</td>
2119 <td> const</td>
2120 </tr>
2121 </table>
2122 </td>
2123 <td class="mlabels-right">
2124<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
2125 </tr>
2126</table>
2127</div><div class="memdoc">
2128
2129<p>Helper to serialize the layer parameters to string. </p>
2130<p>(currently used in DotSerializer and company). </p>
2131
2132<p>Reimplemented in <a class="el" href="classarmnn_1_1_constant_layer.html#a2ca654770a1890f15e3c7aab98e434a5">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a2ca654770a1890f15e3c7aab98e434a5">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#a2ca654770a1890f15e3c7aab98e434a5">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a2ca654770a1890f15e3c7aab98e434a5">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Parameters &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FakeQuantizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ReduceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; LstmDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ChannelShuffleDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; LogSoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PreCompiledDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SpaceToBatchNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BatchToSpaceNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PermuteDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; GatherDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ElementwiseUnaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DepthToSpaceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; OriginsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SpaceToDepthDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ReshapeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ViewsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Pooling2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Convolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ActivationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StandInDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; MeanDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StackDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; TransposeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; InstanceNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ComparisonDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; TransposeConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BroadcastToDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FusedDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BatchMatMulDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; TileDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ArgMinMaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; LogicalBinaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DetectionPostProcessDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PadDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; L2NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Convolution3dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SliceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; QLstmDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FillDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DepthwiseConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FullyConnectedDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ScatterNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ResizeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Pooling3dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ElementwiseBinaryDescriptor &gt;</a>, and <a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StridedSliceDescriptor &gt;</a>.</p>
2133
2134<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00540">540</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2135<div class="fragment"><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;{</div>
2136<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; std::string guid = std::to_string(m_Guid);</div>
2137<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; std::string layerType = <a class="code" href="namespacearmnn.html#addb6b14dd1b632263ffe77430259a7c4">GetLayerTypeAsCString</a>(m_Type);</div>
2138<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; std::string backendId = std::string(m_BackendId);</div>
2139<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span> (!(guid.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !guid.empty())</div>
2140<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div>
2141<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; fn(<span class="stringliteral">&quot;Guid&quot;</span>, guid);</div>
2142<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
2143<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>(!(m_LayerName.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !m_LayerName.empty())</div>
2144<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
2145<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; fn(<span class="stringliteral">&quot;LayerName&quot;</span>,m_LayerName);</div>
2146<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
2147<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">if</span>(!(layerType.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !layerType.empty())</div>
2148<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div>
2149<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; fn(<span class="stringliteral">&quot;LayerType&quot;</span>,layerType);</div>
2150<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div>
2151<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span>(!(backendId.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !backendId.empty())</div>
2152<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; {</div>
2153<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; fn(<span class="stringliteral">&quot;BackendID&quot;</span>,backendId);</div>
2154<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</div>
2155<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; std::shared_ptr&lt;ActivationDescriptor&gt;</div>
2156<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; activationDescPtr = GetAdditionalInformation&lt;ActivationDescriptor&gt;();</div>
2157<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
2158<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">if</span> (activationDescPtr)</div>
2159<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; {</div>
2160<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="structarmnn_1_1_stringify_layer_parameters.html#a84990e31a235f27cd3d7f3fc90fa0035">StringifyLayerParameters&lt;ActivationDescriptor&gt;::Serialize</a>(fn, *activationDescPtr.get());</div>
2161<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
2162<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div>
2163</div><!-- fragment -->
2164<p class="reference">References <a class="el" href="_internal_types_8cpp_source.html#l00013">armnn::GetLayerTypeAsCString()</a>, and <a class="el" href="_serialize_layer_parameters_8hpp_source.html#l00025">StringifyLayerParameters&lt; LayerParameter &gt;::Serialize()</a>.</p>
2165
2166<p class="reference">Referenced by <a class="el" href="_layer_with_parameters_8hpp_source.html#l00023">LayerWithParameters&lt; StridedSliceDescriptor &gt;::SerializeLayerParameters()</a>, and <a class="el" href="_constant_layer_8cpp_source.html#l00072">ConstantLayer::SerializeLayerParameters()</a>.</p>
2167
2168</div>
2169</div>
2170<a id="af7f0460d32511de0da525f1817d13e8c"></a>
2171<h2 class="memtitle"><span class="permalink"><a href="#af7f0460d32511de0da525f1817d13e8c">&#9670;&nbsp;</a></span>SetAdditionalInfo()</h2>
2172
2173<div class="memitem">
2174<div class="memproto">
2175<table class="mlabels">
2176 <tr>
2177 <td class="mlabels-left">
2178 <table class="memname">
2179 <tr>
2180 <td class="memname">void SetAdditionalInfo </td>
2181 <td>(</td>
2182 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;&#160;</td>
2183 <td class="paramname"><em>descriptor</em></td><td>)</td>
2184 <td> const</td>
2185 </tr>
2186 </table>
2187 </td>
2188 <td class="mlabels-right">
2189<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2190 </tr>
2191</table>
2192</div><div class="memdoc">
2193
2194<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00303">303</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2195<div class="fragment"><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;{</div>
2196<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; descriptor.m_AdditionalInfoObject = <a class="code" href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">m_AdditionalInfoObject</a>.get();</div>
2197<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}</div>
2198</div><!-- fragment -->
2199<p class="reference">References <a class="el" href="_workload_data_8hpp_source.html#l00028">QueueDescriptor::m_AdditionalInfoObject</a>, and <a class="el" href="_layer_8hpp_source.html#l00427">Layer::m_AdditionalInfoObject</a>.</p>
2200
2201<p class="reference">Referenced by <a class="el" href="_activation_layer_8cpp_source.html#l00020">ActivationLayer::CreateWorkload()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00020">BroadcastToLayer::CreateWorkload()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00021">ConvertFp32ToFp16Layer::CreateWorkload()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00021">FillLayer::CreateWorkload()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00017">QuantizeLayer::CreateWorkload()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00020">RankLayer::CreateWorkload()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00022">AbsLayer::CreateWorkload()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00021">InstanceNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00021">L2NormalizationLayer::CreateWorkload()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00022">SplitterLayer::CreateWorkload()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00022">StackLayer::CreateWorkload()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00022">StridedSliceLayer::CreateWorkload()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00019">SwitchLayer::CreateWorkload()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00021">SoftmaxLayer::CreateWorkload()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00024">SliceLayer::CreateWorkload()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00017">TileLayer::CreateWorkload()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00021">ScatterNdLayer::CreateWorkload()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00021">CastLayer::CreateWorkload()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00025">DebugLayer::CreateWorkload()</a>, <a class="el" href="_map_layer_8cpp_source.html#l00027">MapLayer::CreateWorkload()</a>, <a class="el" href="_unmap_layer_8cpp_source.html#l00027">UnmapLayer::CreateWorkload()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00027">MemCopyLayer::CreateWorkload()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00018">BatchMatMulLayer::CreateWorkload()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00019">DequantizeLayer::CreateWorkload()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00027">MemImportLayer::CreateWorkload()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00021">NormalizationLayer::CreateWorkload()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00027">Pooling2dLayer::CreateWorkload()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00027">Pooling3dLayer::CreateWorkload()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00021">FakeQuantizationLayer::CreateWorkload()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00023">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00021">FloorLayer::CreateWorkload()</a>, <a class="el" href="_addition_layer_8cpp_source.html#l00022">AdditionLayer::CreateWorkload()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00022">ConvertFp16ToFp32Layer::CreateWorkload()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00026">ResizeLayer::CreateWorkload()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00022">RsqrtLayer::CreateWorkload()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00024">BatchToSpaceNdLayer::CreateWorkload()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00024">ShapeLayer::CreateWorkload()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00021">GatherNdLayer::CreateWorkload()</a>, <a class="el" href="_subtraction_layer_8cpp_source.html#l00022">SubtractionLayer::CreateWorkload()</a>, <a class="el" href="_maximum_layer_8cpp_source.html#l00021">MaximumLayer::CreateWorkload()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00024">ArgMinMaxLayer::CreateWorkload()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00027">SpaceToDepthLayer::CreateWorkload()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00021">LogSoftmaxLayer::CreateWorkload()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00023">SpaceToBatchNdLayer::CreateWorkload()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00021">GatherLayer::CreateWorkload()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00018">ReverseV2Layer::CreateWorkload()</a>, <a class="el" href="_minimum_layer_8cpp_source.html#l00022">MinimumLayer::CreateWorkload()</a>, <a class="el" href="_multiplication_layer_8cpp_source.html#l00022">MultiplicationLayer::CreateWorkload()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00023">ReduceLayer::CreateWorkload()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00025">TransposeLayer::CreateWorkload()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00022">PadLayer::CreateWorkload()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00025">PermuteLayer::CreateWorkload()</a>, <a class="el" href="_division_layer_8cpp_source.html#l00022">DivisionLayer::CreateWorkload()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00024">MeanLayer::CreateWorkload()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00023">PreluLayer::CreateWorkload()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00018">ElementwiseBinaryLayer::CreateWorkload()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00023">ComparisonLayer::CreateWorkload()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00025">DepthToSpaceLayer::CreateWorkload()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00022">ReshapeLayer::CreateWorkload()</a>, <a class="el" href="_constant_layer_8cpp_source.html#l00021">ConstantLayer::CreateWorkload()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00022">ChannelShuffleLayer::CreateWorkload()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00048">Convolution3dLayer::CreateWorkload()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00022">FullyConnectedLayer::CreateWorkload()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00049">Convolution2dLayer::CreateWorkload()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00050">DepthwiseConvolution2dLayer::CreateWorkload()</a>, <a class="el" href="_fused_layer_8cpp_source.html#l00029">FusedLayer::CreateWorkload()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00023">DetectionPostProcessLayer::CreateWorkload()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00025">TransposeConvolution2dLayer::CreateWorkload()</a>, <a class="el" href="_pre_compiled_layer_8cpp_source.html#l00031">PreCompiledLayer::CreateWorkload()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00022">LstmLayer::CreateWorkload()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00022">UnidirectionalSequenceLstmLayer::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">BatchNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00022">QuantizedLstmLayer::CreateWorkload()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>.</p>
2202
2203</div>
2204</div>
2205<a id="aea1c8483ebeabc0dcbd9090b4f648f1d"></a>
2206<h2 class="memtitle"><span class="permalink"><a href="#aea1c8483ebeabc0dcbd9090b4f648f1d">&#9670;&nbsp;</a></span>SetAdditionalInfoForObject()</h2>
2207
2208<div class="memitem">
2209<div class="memproto">
2210<table class="mlabels">
2211 <tr>
2212 <td class="mlabels-left">
2213 <table class="memname">
2214 <tr>
2215 <td class="memname">void SetAdditionalInfoForObject </td>
2216 <td>(</td>
2217 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a> &amp;&#160;</td>
2218 <td class="paramname"><em>additionalInfo</em></td><td>)</td>
2219 <td></td>
2220 </tr>
2221 </table>
2222 </td>
2223 <td class="mlabels-right">
2224<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2225 </tr>
2226</table>
2227</div><div class="memdoc">
2228
2229<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00373">373</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2230<div class="fragment"><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; {</div>
2231<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">m_AdditionalInfoObject</a> = additionalInfo;</div>
2232<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div>
2233</div><!-- fragment -->
2234<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00427">Layer::m_AdditionalInfoObject</a>.</p>
2235
2236<p class="reference">Referenced by <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>.</p>
2237
2238</div>
2239</div>
2240<a id="a328c9cf1c3abf2febcce4801ba706541"></a>
2241<h2 class="memtitle"><span class="permalink"><a href="#a328c9cf1c3abf2febcce4801ba706541">&#9670;&nbsp;</a></span>SetAllowExpandedDims()</h2>
2242
2243<div class="memitem">
2244<div class="memproto">
2245<table class="mlabels">
2246 <tr>
2247 <td class="mlabels-left">
2248 <table class="memname">
2249 <tr>
2250 <td class="memname">void SetAllowExpandedDims </td>
2251 <td>(</td>
2252 <td class="paramtype">bool&#160;</td>
2253 <td class="paramname"><em>allowExpandedDims</em></td><td>)</td>
2254 <td></td>
2255 </tr>
2256 </table>
2257 </td>
2258 <td class="mlabels-right">
2259<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2260 </tr>
2261</table>
2262</div><div class="memdoc">
2263
2264<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00362">362</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2265<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div>
2266<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_AllowExpandedDims = allowExpandedDims;</div>
2267<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
2268</div><!-- fragment -->
2269</div>
2270</div>
2271<a id="a316670cb6b65902e017c32ca4bcb4b98"></a>
2272<h2 class="memtitle"><span class="permalink"><a href="#a316670cb6b65902e017c32ca4bcb4b98">&#9670;&nbsp;</a></span>SetBackendId()</h2>
2273
2274<div class="memitem">
2275<div class="memproto">
2276<table class="mlabels">
2277 <tr>
2278 <td class="mlabels-left">
2279 <table class="memname">
2280 <tr>
2281 <td class="memname">void SetBackendId </td>
2282 <td>(</td>
2283 <td class="paramtype">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;&#160;</td>
2284 <td class="paramname"><em>id</em></td><td>)</td>
2285 <td></td>
2286 </tr>
2287 </table>
2288 </td>
2289 <td class="mlabels-right">
2290<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
2291 </tr>
2292</table>
2293</div><div class="memdoc">
2294
2295<p>Set the backend of the <a class="el" href="classarmnn_1_1_i_connectable_layer.html" title="Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.">IConnectableLayer</a>. </p>
2296<p>By using <a class="el" href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98" title="Set the backend of the IConnectableLayer.">SetBackendId()</a> we guarantee that the input backend supports that layer (IsLayerSupported returns true for a specific backend). If there is no guarantee the input backend supports that layer use <a class="el" href="classarmnn_1_1_layer.html#a43a46eafee5c08787ab17b4342730c20" title="Provide a hint for the optimizer as to which backend to prefer for this layer.">BackendSelectionHint()</a>. </p>
2297
2298<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a99cc75f524d831824c5f3730a88e9ca3">IConnectableLayer</a>.</p>
2299
2300<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00291">291</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2301<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{ m_BackendId = id; }</div>
2302</div><!-- fragment -->
2303<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.html#l00330">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_network_8cpp_source.html#l03063">NetworkImpl::AddPrecompiledLayer()</a>, <a class="el" href="_network_8cpp_source.html#l00844">armnn::AttemptBackendAssignment()</a>, and <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>.</p>
2304
2305</div>
2306</div>
2307<a id="a6d1024208b672a87ef2c1bfaf93d2b9f"></a>
2308<h2 class="memtitle"><span class="permalink"><a href="#a6d1024208b672a87ef2c1bfaf93d2b9f">&#9670;&nbsp;</a></span>SetGuid()</h2>
2309
2310<div class="memitem">
2311<div class="memproto">
2312<table class="mlabels">
2313 <tr>
2314 <td class="mlabels-left">
2315 <table class="memname">
2316 <tr>
2317 <td class="memname">void SetGuid </td>
2318 <td>(</td>
2319 <td class="paramtype"><a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a>&#160;</td>
2320 <td class="paramname"><em>guid</em></td><td>)</td>
2321 <td></td>
2322 </tr>
2323 </table>
2324 </td>
2325 <td class="mlabels-right">
2326<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2327 </tr>
2328</table>
2329</div><div class="memdoc">
2330
2331<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00342">342</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2332<div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;{ m_Guid = guid; }</div>
2333</div><!-- fragment -->
2334</div>
2335</div>
2336<a id="a429abdfa769f4d48268938dcaea00904"></a>
2337<h2 class="memtitle"><span class="permalink"><a href="#a429abdfa769f4d48268938dcaea00904">&#9670;&nbsp;</a></span>SetShapeInferenceMethod()</h2>
2338
2339<div class="memitem">
2340<div class="memproto">
2341<table class="mlabels">
2342 <tr>
2343 <td class="mlabels-left">
2344 <table class="memname">
2345 <tr>
2346 <td class="memname">void SetShapeInferenceMethod </td>
2347 <td>(</td>
2348 <td class="paramtype"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td>
2349 <td class="paramname"><em>shapeInferenceMethod</em></td><td>)</td>
2350 <td></td>
2351 </tr>
2352 </table>
2353 </td>
2354 <td class="mlabels-right">
2355<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2356 </tr>
2357</table>
2358</div><div class="memdoc">
2359
2360<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00357">357</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2361<div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div>
2362<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a> = shapeInferenceMethod;</div>
2363<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
2364</div><!-- fragment -->
2365<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00441">Layer::m_ShapeInferenceMethod</a>.</p>
2366
2367</div>
2368</div>
2369<a id="aeb2d638cc0e02c10075e015100996f2d"></a>
2370<h2 class="memtitle"><span class="permalink"><a href="#aeb2d638cc0e02c10075e015100996f2d">&#9670;&nbsp;</a></span>ValidateAndCopyShape()</h2>
2371
2372<div class="memitem">
2373<div class="memproto">
2374<table class="mlabels">
2375 <tr>
2376 <td class="mlabels-left">
2377 <table class="memname">
2378 <tr>
2379 <td class="memname">void ValidateAndCopyShape </td>
2380 <td>(</td>
2381 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;&#160;</td>
2382 <td class="paramname"><em>outputShape</em>, </td>
2383 </tr>
2384 <tr>
2385 <td class="paramkey"></td>
2386 <td></td>
2387 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;&#160;</td>
2388 <td class="paramname"><em>inferredShape</em>, </td>
2389 </tr>
2390 <tr>
2391 <td class="paramkey"></td>
2392 <td></td>
2393 <td class="paramtype">const <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td>
2394 <td class="paramname"><em>shapeInferenceMethod</em>, </td>
2395 </tr>
2396 <tr>
2397 <td class="paramkey"></td>
2398 <td></td>
2399 <td class="paramtype">const std::string &amp;&#160;</td>
2400 <td class="paramname"><em>layerName</em>, </td>
2401 </tr>
2402 <tr>
2403 <td class="paramkey"></td>
2404 <td></td>
2405 <td class="paramtype">const unsigned int&#160;</td>
2406 <td class="paramname"><em>outputSlotIndex</em> = <code>0</code>&#160;</td>
2407 </tr>
2408 <tr>
2409 <td></td>
2410 <td>)</td>
2411 <td></td><td></td>
2412 </tr>
2413 </table>
2414 </td>
2415 <td class="mlabels-right">
2416<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2417 </tr>
2418</table>
2419</div><div class="memdoc">
2420
2421<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00457">457</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2422<div class="fragment"><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;{</div>
2423<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span> (shapeInferenceMethod == <a class="code" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">ShapeInferenceMethod::ValidateOnly</a>)</div>
2424<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; {</div>
2425<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span> (m_AllowExpandedDims)</div>
2426<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div>
2427<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; std::vector&lt;unsigned int&gt; outputDims = <a class="code" href="namespacearmnn_utils.html#ac7f0575b4a8c9ba80c5b0695ada4dd92">armnnUtils::SqueezeDims</a>(outputShape);</div>
2428<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; std::vector&lt;unsigned int&gt; inferredDims = <a class="code" href="namespacearmnn_utils.html#ac7f0575b4a8c9ba80c5b0695ada4dd92">armnnUtils::SqueezeDims</a>(inferredShape);</div>
2429<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; </div>
2430<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span> (outputDims.size() != inferredDims.size())</div>
2431<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; {</div>
2432<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; std::stringstream ss;</div>
2433<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; ss &lt;&lt; layerName &lt;&lt; <span class="stringliteral">&quot;: TensorShape set on OutputSlot[&quot;</span> &lt;&lt; outputSlotIndex &lt;&lt;</div>
2434<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="stringliteral">&quot;] does not match the inferred shape. &quot;</span>;</div>
2435<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; ss &lt;&lt; outputShape &lt;&lt; <span class="stringliteral">&quot; != &quot;</span> &lt;&lt; inferredShape;</div>
2436<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(ss.str());</div>
2437<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div>
2438<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; outputDims.size(); ++i)</div>
2439<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div>
2440<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span> (outputDims[i] != inferredDims[i])</div>
2441<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div>
2442<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; std::stringstream ss;</div>
2443<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; ss &lt;&lt; layerName &lt;&lt; <span class="stringliteral">&quot;: TensorShape set on OutputSlot[&quot;</span> &lt;&lt; outputSlotIndex &lt;&lt;</div>
2444<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="stringliteral">&quot;] does not match the inferred shape at dimension index [&quot;</span>;</div>
2445<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; ss &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;] &quot;</span> &lt;&lt; outputShape &lt;&lt; <span class="stringliteral">&quot; != &quot;</span> &lt;&lt; inferredShape;</div>
2446<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(ss.str());</div>
2447<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
2448<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div>
2449<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span>;</div>
2450<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div>
2451<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">else</span></div>
2452<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div>
2453<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; ConditionalThrowIfNotEqual&lt;LayerValidationException&gt;(</div>
2454<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; layerName + <span class="stringliteral">&quot;: TensorShape set on OutputSlot[0] does not match the inferred shape.&quot;</span>,</div>
2455<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; outputShape,</div>
2456<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; inferredShape);</div>
2457<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">return</span>;</div>
2458<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div>
2459<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div>
2460<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
2461<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span> (outputShape.GetDimensionality() == <a class="code" href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681ab4b379bf7ded74c07595ccb85bc6fdc3">Dimensionality::Specified</a>)</div>
2462<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
2463<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; outputShape.GetNumDimensions(); ++i)</div>
2464<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div>
2465<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span> (outputShape.GetDimensionSpecificity(i) &amp;&amp; outputShape[i] != inferredShape[i])</div>
2466<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; {</div>
2467<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; std::stringstream ss;</div>
2468<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; ss &lt;&lt; layerName &lt;&lt; <span class="stringliteral">&quot;: TensorShape set on OutputSlot[&quot;</span> &lt;&lt; outputSlotIndex &lt;&lt;</div>
2469<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="stringliteral">&quot;] does not match the inferred shape at dimension index [&quot;</span>;</div>
2470<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; ss &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;] &quot;</span> &lt;&lt; outputShape &lt;&lt; <span class="stringliteral">&quot; != &quot;</span> &lt;&lt; inferredShape;</div>
2471<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(ss.str());</div>
2472<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div>
2473<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div>
2474<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div>
2475<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; </div>
2476<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; TensorInfo <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a> = <a class="code" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(outputSlotIndex).<a class="code" href="classarmnn_1_1_output_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>();</div>
2477<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
2478<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> inferredTensorInfo(inferredShape,</div>
2479<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.GetDataType(),</div>
2480<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.GetQuantizationScale(),</div>
2481<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.GetQuantizationOffset());</div>
2482<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; </div>
2483<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(outputSlotIndex).<a class="code" href="classarmnn_1_1_output_slot.html#a7e5c5771d741dd5473989047a9314728">SetTensorInfo</a>(inferredTensorInfo);</div>
2484<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;}</div>
2485</div><!-- fragment -->
2486<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00092">TensorShape::GetDimensionality()</a>, <a class="el" href="_tensor_8cpp_source.html#l00211">TensorShape::GetDimensionSpecificity()</a>, <a class="el" href="_tensor_8cpp_source.html#l00174">TensorShape::GetNumDimensions()</a>, <a class="el" href="_layer_8hpp_source.html#l00339">Layer::GetOutputSlot()</a>, <a class="el" href="_layer_8cpp_source.html#l00100">OutputSlot::GetTensorInfo()</a>, <a class="el" href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>, <a class="el" href="_layer_8cpp_source.html#l00095">OutputSlot::SetTensorInfo()</a>, <a class="el" href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681ab4b379bf7ded74c07595ccb85bc6fdc3">armnn::Specified</a>, <a class="el" href="_tensor_utils_8cpp_source.html#l00195">armnnUtils::SqueezeDims()</a>, and <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">armnn::ValidateOnly</a>.</p>
2487
2488<p class="reference">Referenced by <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00039">RankLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00053">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00038">BroadcastToLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
2489
2490</div>
2491</div>
2492<a id="a84ff600212ba26e665de9b978ec896a4"></a>
2493<h2 class="memtitle"><span class="permalink"><a href="#a84ff600212ba26e665de9b978ec896a4">&#9670;&nbsp;</a></span>ValidateTensorShapesFromInputs()</h2>
2494
2495<div class="memitem">
2496<div class="memproto">
2497<table class="mlabels">
2498 <tr>
2499 <td class="mlabels-left">
2500 <table class="memname">
2501 <tr>
2502 <td class="memname">virtual void ValidateTensorShapesFromInputs </td>
2503 <td>(</td>
2504 <td class="paramname"></td><td>)</td>
2505 <td></td>
2506 </tr>
2507 </table>
2508 </td>
2509 <td class="mlabels-right">
2510<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
2511 </tr>
2512</table>
2513</div><div class="memdoc">
2514
2515<p>Implemented in <a class="el" href="classarmnn_1_1_q_lstm_layer.html#a8c8f543d7e9729362c266d12ec169966">QLstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.html#a8c8f543d7e9729362c266d12ec169966">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.html#a8c8f543d7e9729362c266d12ec169966">OutputLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.html#a8c8f543d7e9729362c266d12ec169966">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_lstm_layer.html#a8c8f543d7e9729362c266d12ec169966">LstmLayer</a>, <a class="el" href="classarmnn_1_1_unidirectional_sequence_lstm_layer.html#a8c8f543d7e9729362c266d12ec169966">UnidirectionalSequenceLstmLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.html#a8c8f543d7e9729362c266d12ec169966">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.html#a8c8f543d7e9729362c266d12ec169966">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.html#a8c8f543d7e9729362c266d12ec169966">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_logical_binary_layer.html#a8c8f543d7e9729362c266d12ec169966">LogicalBinaryLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.html#a8c8f543d7e9729362c266d12ec169966">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.html#a8c8f543d7e9729362c266d12ec169966">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.html#a8c8f543d7e9729362c266d12ec169966">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.html#a8c8f543d7e9729362c266d12ec169966">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.html#a8c8f543d7e9729362c266d12ec169966">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.html#a8c8f543d7e9729362c266d12ec169966">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.html#a8c8f543d7e9729362c266d12ec169966">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.html#a8c8f543d7e9729362c266d12ec169966">GatherLayer</a>, <a class="el" href="classarmnn_1_1_reduce_layer.html#a8c8f543d7e9729362c266d12ec169966">ReduceLayer</a>, <a class="el" href="classarmnn_1_1_reverse_v2_layer.html#a8c8f543d7e9729362c266d12ec169966">ReverseV2Layer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.html#a8c8f543d7e9729362c266d12ec169966">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_batch_mat_mul_layer.html#a8c8f543d7e9729362c266d12ec169966">BatchMatMulLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_binary_layer.html#a8c8f543d7e9729362c266d12ec169966">ElementwiseBinaryLayer</a>, <a class="el" href="classarmnn_1_1_tile_layer.html#a8c8f543d7e9729362c266d12ec169966">TileLayer</a>, <a class="el" href="classarmnn_1_1_gather_nd_layer.html#a8c8f543d7e9729362c266d12ec169966">GatherNdLayer</a>, <a class="el" href="classarmnn_1_1_scatter_nd_layer.html#a8c8f543d7e9729362c266d12ec169966">ScatterNdLayer</a>, <a class="el" href="classarmnn_1_1_broadcast_to_layer.html#a8c8f543d7e9729362c266d12ec169966">BroadcastToLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.html#a8c8f543d7e9729362c266d12ec169966">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_convolution3d_layer.html#a8c8f543d7e9729362c266d12ec169966">Convolution3dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.html#a8c8f543d7e9729362c266d12ec169966">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.html#a8c8f543d7e9729362c266d12ec169966">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.html#a8c8f543d7e9729362c266d12ec169966">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.html#a8c8f543d7e9729362c266d12ec169966">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.html#a8c8f543d7e9729362c266d12ec169966">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.html#a8c8f543d7e9729362c266d12ec169966">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.html#a8c8f543d7e9729362c266d12ec169966">MeanLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.html#a8c8f543d7e9729362c266d12ec169966">PadLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.html#a8c8f543d7e9729362c266d12ec169966">StandInLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.html#a8c8f543d7e9729362c266d12ec169966">AbsLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.html#a8c8f543d7e9729362c266d12ec169966">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_cast_layer.html#a8c8f543d7e9729362c266d12ec169966">CastLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.html#a8c8f543d7e9729362c266d12ec169966">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.html#a8c8f543d7e9729362c266d12ec169966">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.html#a8c8f543d7e9729362c266d12ec169966">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.html#a8c8f543d7e9729362c266d12ec169966">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.html#a8c8f543d7e9729362c266d12ec169966">FloorLayer</a>, <a class="el" href="classarmnn_1_1_fused_layer.html#a8c8f543d7e9729362c266d12ec169966">FusedLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.html#a8c8f543d7e9729362c266d12ec169966">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_map_layer.html#a8c8f543d7e9729362c266d12ec169966">MapLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.html#a8c8f543d7e9729362c266d12ec169966">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.html#a8c8f543d7e9729362c266d12ec169966">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.html#a8c8f543d7e9729362c266d12ec169966">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.html#a8c8f543d7e9729362c266d12ec169966">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.html#a8c8f543d7e9729362c266d12ec169966">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_pooling3d_layer.html#a8c8f543d7e9729362c266d12ec169966">Pooling3dLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.html#a8c8f543d7e9729362c266d12ec169966">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.html#a8c8f543d7e9729362c266d12ec169966">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_shape_layer.html#a8c8f543d7e9729362c266d12ec169966">ShapeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.html#a8c8f543d7e9729362c266d12ec169966">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.html#a8c8f543d7e9729362c266d12ec169966">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.html#a8c8f543d7e9729362c266d12ec169966">StackLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.html#a8c8f543d7e9729362c266d12ec169966">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.html#a8c8f543d7e9729362c266d12ec169966">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_unmap_layer.html#a8c8f543d7e9729362c266d12ec169966">UnmapLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.html#a8c8f543d7e9729362c266d12ec169966">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_fill_layer.html#a8c8f543d7e9729362c266d12ec169966">FillLayer</a>, <a class="el" href="classarmnn_1_1_rank_layer.html#a8c8f543d7e9729362c266d12ec169966">RankLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.html#a8c8f543d7e9729362c266d12ec169966">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_channel_shuffle_layer.html#a8c8f543d7e9729362c266d12ec169966">ChannelShuffleLayer</a>, <a class="el" href="classarmnn_1_1_quantize_layer.html#a8c8f543d7e9729362c266d12ec169966">QuantizeLayer</a>, and <a class="el" href="classarmnn_1_1_elementwise_base_layer.html#a8c8f543d7e9729362c266d12ec169966">ElementwiseBaseLayer</a>.</p>
2516
2517<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.html#l00105">OutputSlot::IsTensorInfoSet()</a>.</p>
2518
2519</div>
2520</div>
2521<a id="a0607e36e88f38c34c71c663164b76776"></a>
2522<h2 class="memtitle"><span class="permalink"><a href="#a0607e36e88f38c34c71c663164b76776">&#9670;&nbsp;</a></span>VerifyLayerConnections()</h2>
2523
2524<div class="memitem">
2525<div class="memproto">
2526 <table class="memname">
2527 <tr>
2528 <td class="memname">void VerifyLayerConnections </td>
2529 <td>(</td>
2530 <td class="paramtype">unsigned int&#160;</td>
2531 <td class="paramname"><em>expectedConnections</em>, </td>
2532 </tr>
2533 <tr>
2534 <td class="paramkey"></td>
2535 <td></td>
2536 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;&#160;</td>
2537 <td class="paramname"><em>location</em>&#160;</td>
2538 </tr>
2539 <tr>
2540 <td></td>
2541 <td>)</td>
2542 <td></td><td> const</td>
2543 </tr>
2544 </table>
2545</div><div class="memdoc">
2546
2547<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00410">410</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2548<div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{</div>
2549<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() != expectedConnections)</div>
2550<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
2551<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.html">armnn::Exception</a>(<span class="stringliteral">&quot;input slots must match expected connections.&quot;</span>);</div>
2552<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
2553<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
2554<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;expectedConnections; ++i)</div>
2555<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div>
2556<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(i).GetConnection() == <span class="keyword">nullptr</span>)</div>
2557<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div>
2558<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(</div>
2559<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; fmt::format(<span class="stringliteral">&quot;Input connection #{0} must be connected &quot;</span></div>
2560<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="stringliteral">&quot;for {1} layer {2} {3}&quot;</span>,</div>
2561<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; i,</div>
2562<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="namespacearmnn.html#addb6b14dd1b632263ffe77430259a7c4">GetLayerTypeAsCString</a>(this-&gt;<a class="code" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a>()),</div>
2563<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a>(),</div>
2564<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; location.AsString()));</div>
2565<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
2566<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div>
2567<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;}</div>
2568</div><!-- fragment -->
2569<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00029">CheckLocation::AsString()</a>, <a class="el" href="_layer_8hpp_source.html#l00337">Layer::GetInputSlot()</a>, <a class="el" href="_internal_types_8cpp_source.html#l00013">armnn::GetLayerTypeAsCString()</a>, <a class="el" href="_layer_8hpp_source.html#l00240">Layer::GetNameStr()</a>, <a class="el" href="_layer_8hpp_source.html#l00334">Layer::GetNumInputSlots()</a>, and <a class="el" href="_layer_8hpp_source.html#l00286">Layer::GetType()</a>.</p>
2570
2571<p class="reference">Referenced by <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00039">RankLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unmap_layer_8cpp_source.html#l00037">UnmapLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_map_layer_8cpp_source.html#l00037">MapLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00038">BroadcastToLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
2572
2573</div>
2574</div>
2575<a id="a448afc716fda85394df1e8e5b7d530e8"></a>
2576<h2 class="memtitle"><span class="permalink"><a href="#a448afc716fda85394df1e8e5b7d530e8">&#9670;&nbsp;</a></span>VerifyShapeInferenceType()</h2>
2577
2578<div class="memitem">
2579<div class="memproto">
2580<table class="mlabels">
2581 <tr>
2582 <td class="mlabels-left">
2583 <table class="memname">
2584 <tr>
2585 <td class="memname">void VerifyShapeInferenceType </td>
2586 <td>(</td>
2587 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;&#160;</td>
2588 <td class="paramname"><em>outputShape</em>, </td>
2589 </tr>
2590 <tr>
2591 <td class="paramkey"></td>
2592 <td></td>
2593 <td class="paramtype"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td>
2594 <td class="paramname"><em>shapeInferenceMethod</em>&#160;</td>
2595 </tr>
2596 <tr>
2597 <td></td>
2598 <td>)</td>
2599 <td></td><td></td>
2600 </tr>
2601 </table>
2602 </td>
2603 <td class="mlabels-right">
2604<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2605 </tr>
2606</table>
2607</div><div class="memdoc">
2608
2609<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.html#l00526">526</a> of file <a class="el" href="_layer_8cpp_source.html">Layer.cpp</a>.</p>
2610<div class="fragment"><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;{</div>
2611<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> (shapeInferenceMethod == <a class="code" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">ShapeInferenceMethod::ValidateOnly</a>)</div>
2612<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; {</div>
2613<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; ConditionalThrow&lt;LayerValidationException&gt;(</div>
2614<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; outputShape.GetDimensionality() != <a class="code" href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681a4b7d504abac49ba24b4df86c129d3cbc">Dimensionality::NotSpecified</a>,</div>
2615<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="stringliteral">&quot;Dimensionality can not be NotSpecified while using ShapeInferenceMethod::ValidateOnly&quot;</span>);</div>
2616<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; </div>
2617<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; ConditionalThrow&lt;LayerValidationException&gt;(</div>
2618<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; outputShape.AreAllDimensionsSpecified(),</div>
2619<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="stringliteral">&quot;Unspecified dimension while using ShapeInferenceMethod::ValidateOnly&quot;</span>);</div>
2620<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
2621<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;}</div>
2622</div><!-- fragment -->
2623<p class="reference">References <a class="el" href="_tensor_8cpp_source.html#l00241">TensorShape::AreAllDimensionsSpecified()</a>, <a class="el" href="_tensor_8hpp_source.html#l00092">TensorShape::GetDimensionality()</a>, <a class="el" href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681a4b7d504abac49ba24b4df86c129d3cbc">armnn::NotSpecified</a>, and <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">armnn::ValidateOnly</a>.</p>
2624
2625<p class="reference">Referenced by <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00039">RankLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00053">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00038">BroadcastToLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
2626
2627</div>
2628</div>
2629<h2 class="groupheader">Friends And Related Function Documentation</h2>
2630<a id="afab89afd724f1b07b1aaad6bdc61c47a"></a>
2631<h2 class="memtitle"><span class="permalink"><a href="#afab89afd724f1b07b1aaad6bdc61c47a">&#9670;&nbsp;</a></span>Graph</h2>
2632
2633<div class="memitem">
2634<div class="memproto">
2635<table class="mlabels">
2636 <tr>
2637 <td class="mlabels-left">
2638 <table class="memname">
2639 <tr>
2640 <td class="memname">friend class <a class="el" href="classarmnn_1_1_graph.html">Graph</a></td>
2641 </tr>
2642 </table>
2643 </td>
2644 <td class="mlabels-right">
2645<span class="mlabels"><span class="mlabel">friend</span></span> </td>
2646 </tr>
2647</table>
2648</div><div class="memdoc">
2649
2650<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00382">382</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2651
2652</div>
2653</div>
2654<h2 class="groupheader">Member Data Documentation</h2>
2655<a id="ac7170f79bd0eadb1b6153e359c023cc0"></a>
2656<h2 class="memtitle"><span class="permalink"><a href="#ac7170f79bd0eadb1b6153e359c023cc0">&#9670;&nbsp;</a></span>m_AdditionalInfoObject</h2>
2657
2658<div class="memitem">
2659<div class="memproto">
2660<table class="mlabels">
2661 <tr>
2662 <td class="mlabels-left">
2663 <table class="memname">
2664 <tr>
2665 <td class="memname"><a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a> m_AdditionalInfoObject</td>
2666 </tr>
2667 </table>
2668 </td>
2669 <td class="mlabels-right">
2670<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2671 </tr>
2672</table>
2673</div><div class="memdoc">
2674
2675<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00427">427</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2676
2677<p class="reference">Referenced by <a class="el" href="_fused_layer_8cpp_source.html#l00022">FusedLayer::Clone()</a>, <a class="el" href="_layer_8hpp_source.html#l00368">Layer::GetAdditionalInformation()</a>, <a class="el" href="_layer_8cpp_source.html#l00303">Layer::SetAdditionalInfo()</a>, and <a class="el" href="_layer_8hpp_source.html#l00373">Layer::SetAdditionalInfoForObject()</a>.</p>
2678
2679</div>
2680</div>
2681<a id="aa44d91037bba52ba0dec6577509ade3b"></a>
2682<h2 class="memtitle"><span class="permalink"><a href="#aa44d91037bba52ba0dec6577509ade3b">&#9670;&nbsp;</a></span>m_OutputHandlers</h2>
2683
2684<div class="memitem">
2685<div class="memproto">
2686<table class="mlabels">
2687 <tr>
2688 <td class="mlabels-left">
2689 <table class="memname">
2690 <tr>
2691 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a>&gt; m_OutputHandlers</td>
2692 </tr>
2693 </table>
2694 </td>
2695 <td class="mlabels-right">
2696<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2697 </tr>
2698</table>
2699</div><div class="memdoc">
2700
2701<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00440">440</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2702
2703<p class="reference">Referenced by <a class="el" href="_layer_8hpp_source.html#l00245">Layer::GetOutputHandler()</a>, and <a class="el" href="_layer_8cpp_source.html#l00233">Layer::Layer()</a>.</p>
2704
2705</div>
2706</div>
2707<a id="afe508761cc8318b15329ba4acf7fbfec"></a>
2708<h2 class="memtitle"><span class="permalink"><a href="#afe508761cc8318b15329ba4acf7fbfec">&#9670;&nbsp;</a></span>m_ShapeInferenceMethod</h2>
2709
2710<div class="memitem">
2711<div class="memproto">
2712<table class="mlabels">
2713 <tr>
2714 <td class="mlabels-left">
2715 <table class="memname">
2716 <tr>
2717 <td class="memname"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> m_ShapeInferenceMethod</td>
2718 </tr>
2719 </table>
2720 </td>
2721 <td class="mlabels-right">
2722<span class="mlabels"><span class="mlabel">protected</span></span> </td>
2723 </tr>
2724</table>
2725</div><div class="memdoc">
2726
2727<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.html#l00441">441</a> of file <a class="el" href="_layer_8hpp_source.html">Layer.hpp</a>.</p>
2728
2729<p class="reference">Referenced by <a class="el" href="_layer_clone_base_8hpp_source.html#l00014">Layer::CloneBase()</a>, <a class="el" href="_layer_8hpp_source.html#l00255">Layer::GetShapeInferenceMethod()</a>, <a class="el" href="_layer_8hpp_source.html#l00357">Layer::SetShapeInferenceMethod()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.html#l00068">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.html#l00033">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.html#l00033">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_channel_shuffle_layer_8cpp_source.html#l00035">ChannelShuffleLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.html#l00034">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fill_layer_8cpp_source.html#l00034">FillLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rank_layer_8cpp_source.html#l00039">RankLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.html#l00034">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.html#l00067">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.html#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.html#l00034">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.html#l00032">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.html#l00038">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.html#l00050">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.html#l00045">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.html#l00037">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.html#l00033">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.html#l00037">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.html#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.html#l00034">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00050">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.html#l00115">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_cast_layer_8cpp_source.html#l00034">CastLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling3d_layer_8cpp_source.html#l00119">Pooling3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.html#l00034">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.html#l00067">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.html#l00036">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.html#l00034">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.html#l00036">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_shape_layer_8cpp_source.html#l00037">ShapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.html#l00035">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.html#l00034">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.html#l00034">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.html#l00044">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pad_layer_8cpp_source.html#l00077">PadLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.html#l00041">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.html#l00117">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.html#l00053">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_broadcast_to_layer_8cpp_source.html#l00038">BroadcastToLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.html#l00121">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution3d_layer_8cpp_source.html#l00126">Convolution3dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_scatter_nd_layer_8cpp_source.html#l00052">ScatterNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_nd_layer_8cpp_source.html#l00089">GatherNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_tile_layer_8cpp_source.html#l00062">TileLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_binary_layer_8cpp_source.html#l00076">ElementwiseBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_mat_mul_layer_8cpp_source.html#l00097">BatchMatMulLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.html#l00079">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reverse_v2_layer_8cpp_source.html#l00054">ReverseV2Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.html#l00048">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00084">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.html#l00039">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reduce_layer_8cpp_source.html#l00044">ReduceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.html#l00103">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.html#l00068">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.html#l00063">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.html#l00066">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_logical_binary_layer_8cpp_source.html#l00072">LogicalBinaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.html#l00114">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.html#l00080">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.html#l00104">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_splitter_layer_8cpp_source.html#l00205">SplitterLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.html#l00309">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.html#l00100">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
2730
2731</div>
2732</div>
2733<hr/>The documentation for this class was generated from the following files:<ul>
2734<li>src/armnn/<a class="el" href="_layer_8hpp_source.html">Layer.hpp</a></li>
2735<li>src/armnn/<a class="el" href="_layer_8cpp_source.html">Layer.cpp</a></li>
2736<li>src/armnn/layers/<a class="el" href="_layer_clone_base_8hpp_source.html">LayerCloneBase.hpp</a></li>
2737</ul>
2738</div><!-- contents -->
2739</div><!-- doc-content -->
2740<div class="ttc" id="anamespacearmnn_html_addb6b14dd1b632263ffe77430259a7c4"><div class="ttname"><a href="namespacearmnn.html#addb6b14dd1b632263ffe77430259a7c4">armnn::GetLayerTypeAsCString</a></div><div class="ttdeci">const char * GetLayerTypeAsCString(LayerType type)</div><div class="ttdef"><b>Definition:</b> <a href="_internal_types_8cpp_source.html#l00013">InternalTypes.cpp:13</a></div></div>
2741<div class="ttc" id="aclassarmnn_1_1_output_slot_html_ada2ad7d1caeeb4ef6195c8925fad6a65"><div class="ttname"><a href="classarmnn_1_1_output_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">armnn::OutputSlot::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo &amp; GetTensorInfo() const override</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00100">Layer.cpp:100</a></div></div>
2742<div class="ttc" id="anamespacearmnn_utils_html_ac7f0575b4a8c9ba80c5b0695ada4dd92"><div class="ttname"><a href="namespacearmnn_utils.html#ac7f0575b4a8c9ba80c5b0695ada4dd92">armnnUtils::SqueezeDims</a></div><div class="ttdeci">std::vector&lt; unsigned int &gt; SqueezeDims(const armnn::TensorShape &amp;tensorShape)</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_utils_8cpp_source.html#l00195">TensorUtils.cpp:195</a></div></div>
2743<div class="ttc" id="aclassarmnn_1_1_layer_html_a386acff5f8430245239ce58d00ba7576"><div class="ttname"><a href="classarmnn_1_1_layer.html#a386acff5f8430245239ce58d00ba7576">armnn::Layer::OperateOnConstantTensors</a></div><div class="ttdeci">void OperateOnConstantTensors(Op op)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00319">Layer.hpp:319</a></div></div>
2744<div class="ttc" id="aclassarmnn_1_1_layer_html_a6ff80e440308295056b57e2adaa42888"><div class="ttname"><a href="classarmnn_1_1_layer.html#a6ff80e440308295056b57e2adaa42888">armnn::Layer::GetBackendHint</a></div><div class="ttdeci">Optional&lt; BackendId &gt; GetBackendHint() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00355">Layer.hpp:355</a></div></div>
2745<div class="ttc" id="aclassarmnn_1_1_layer_html_ac7170f79bd0eadb1b6153e359c023cc0"><div class="ttname"><a href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">armnn::Layer::m_AdditionalInfoObject</a></div><div class="ttdeci">AdditionalInfoObjectPtr m_AdditionalInfoObject</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00427">Layer.hpp:427</a></div></div>
2746<div class="ttc" id="aclassarmnn_1_1_output_slot_html_a7e5c5771d741dd5473989047a9314728"><div class="ttname"><a href="classarmnn_1_1_output_slot.html#a7e5c5771d741dd5473989047a9314728">armnn::OutputSlot::SetTensorInfo</a></div><div class="ttdeci">void SetTensorInfo(const TensorInfo &amp;tensorInfo) override</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00095">Layer.cpp:95</a></div></div>
2747<div class="ttc" id="anamespacearmnn_html_a419086ecb4dc9d0f9e5d8933c87e2ea2"><div class="ttname"><a href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">armnn::LayerPriority</a></div><div class="ttdeci">unsigned int LayerPriority</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00227">Layer.hpp:227</a></div></div>
2748<div class="ttc" id="aclassarmnn_1_1_tensor_info_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00152">Tensor.hpp:152</a></div></div>
2749<div class="ttc" id="a_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00203">Exceptions.hpp:203</a></div></div>
2750<div class="ttc" id="aclassarmnn_1_1_i_connectable_layer_html_af978f897fb7e115a901cb7ed95f8e532"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">armnn::IConnectableLayer::ConstantTensors</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; std::shared_ptr&lt; ConstTensorHandle &gt; &gt;&gt; ConstantTensors</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.html#l00136">INetwork.hpp:136</a></div></div>
2751<div class="ttc" id="aclassarmnn_1_1_layer_html_a0e36688a43c35668d8db5257274c68fe"><div class="ttname"><a href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">armnn::Layer::GetOutputSlot</a></div><div class="ttdeci">const OutputSlot &amp; GetOutputSlot(unsigned int index=0) const override</div><div class="ttdoc">Get the const output slot handle by slot index.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00339">Layer.hpp:339</a></div></div>
2752<div class="ttc" id="aclassarmnn_1_1_layer_html_aa44d91037bba52ba0dec6577509ade3b"><div class="ttname"><a href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">armnn::Layer::m_OutputHandlers</a></div><div class="ttdeci">std::vector&lt; OutputHandler &gt; m_OutputHandlers</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00440">Layer.hpp:440</a></div></div>
2753<div class="ttc" id="aclassarmnn_1_1_layer_html_a9114de666bc2d910faa846b04fc26974"><div class="ttname"><a href="classarmnn_1_1_layer.html#a9114de666bc2d910faa846b04fc26974">armnn::Layer::GetConstantTensorsByRef</a></div><div class="ttdeci">virtual ConstantTensors GetConstantTensorsByRef() override final</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00576">Layer.cpp:576</a></div></div>
2754<div class="ttc" id="aclassarmnn_1_1_layer_html_af5f530544d09a44d726f24702b67b35b"><div class="ttname"><a href="classarmnn_1_1_layer.html#af5f530544d09a44d726f24702b67b35b">armnn::Layer::GetInputSlots</a></div><div class="ttdeci">const std::vector&lt; InputSlot &gt; &amp; GetInputSlots() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00258">Layer.hpp:258</a></div></div>
2755<div class="ttc" id="aclassarmnn_1_1_layer_html_acf8b8e23bf647836592982f97088d375"><div class="ttname"><a href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">armnn::Layer::GetInputSlot</a></div><div class="ttdeci">const InputSlot &amp; GetInputSlot(unsigned int index) const override</div><div class="ttdoc">Get a const input slot handle by slot index.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00337">Layer.hpp:337</a></div></div>
2756<div class="ttc" id="aclassarmnn_1_1_layer_html_a5e5ae420d199a0bccae5139d38c30205"><div class="ttname"><a href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">armnn::Layer::Layer</a></div><div class="ttdeci">Layer(unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00260">Layer.cpp:260</a></div></div>
2757<div class="ttc" id="aclassarmnn_1_1_layer_html_a7ddf0cf6f620d59c10e63495ace795d0"><div class="ttname"><a href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">armnn::Layer::GetName</a></div><div class="ttdeci">const char * GetName() const override</div><div class="ttdoc">Returns the name of the layer.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00332">Layer.hpp:332</a></div></div>
2758<div class="ttc" id="aclassarmnn_1_1_i_tensor_handle_factory_html_a9c95f90eb40e31f629e0e2947b8bc6f9"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle_factory.html#a9c95f90eb40e31f629e0e2947b8bc6f9">armnn::ITensorHandleFactory::LegacyFactoryId</a></div><div class="ttdeci">static const FactoryId LegacyFactoryId</div><div class="ttdef"><b>Definition:</b> <a href="_i_tensor_handle_factory_8hpp_source.html#l00050">ITensorHandleFactory.hpp:50</a></div></div>
2759<div class="ttc" id="aclassarmnn_1_1_i_connectable_layer_html_aba5c20cadbebd2e7ba67e20a47e31472"><div class="ttname"><a href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">armnn::IConnectableLayer::ImmutableConstantTensors</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; const std::shared_ptr&lt; ConstTensorHandle &gt; &gt;&gt; ImmutableConstantTensors</div><div class="ttdef"><b>Definition:</b> <a href="_i_network_8hpp_source.html#l00141">INetwork.hpp:141</a></div></div>
2760<div class="ttc" id="aclassarmnn_1_1_input_slot_html_ada2ad7d1caeeb4ef6195c8925fad6a65"><div class="ttname"><a href="classarmnn_1_1_input_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">armnn::InputSlot::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo &amp; GetTensorInfo() const override</div><div class="ttdoc">Gets the TensorInfo for this InputSlot.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00614">Layer.cpp:614</a></div></div>
2761<div class="ttc" id="aclassarmnn_1_1_layer_html_a8dc12f0ee5b232d397bd18ced1a72a64"><div class="ttname"><a href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">armnn::Layer::GetGuid</a></div><div class="ttdeci">LayerGuid GetGuid() const final</div><div class="ttdoc">Returns the unique id of the layer.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00343">Layer.hpp:343</a></div></div>
2762<div class="ttc" id="aclassarmnn_1_1_layer_html_af2c0edc7ea62a8baaec4d3d9b2b09256"><div class="ttname"><a href="classarmnn_1_1_layer.html#af2c0edc7ea62a8baaec4d3d9b2b09256">armnn::Layer::GetOutputHandler</a></div><div class="ttdeci">const OutputHandler &amp; GetOutputHandler(unsigned int i=0) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00245">Layer.hpp:245</a></div></div>
2763<div class="ttc" id="aclassarmnn_1_1_layer_html_afc3239f5fc116259bf5451964e803646"><div class="ttname"><a href="classarmnn_1_1_layer.html#afc3239f5fc116259bf5451964e803646">armnn::Layer::CollectQueueDescriptorInputs</a></div><div class="ttdeci">void CollectQueueDescriptorInputs(QueueDescriptor &amp;descriptor, WorkloadInfo &amp;info) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00386">Layer.hpp:386</a></div></div>
2764<div class="ttc" id="aclassarmnn_1_1_layer_html_a1594bddc87d6477df300317658f566bb"><div class="ttname"><a href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">armnn::Layer::GetNumOutputSlots</a></div><div class="ttdeci">unsigned int GetNumOutputSlots() const override</div><div class="ttdoc">Returns the number of connectable output slots.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00335">Layer.hpp:335</a></div></div>
2765<div class="ttc" id="astructarmnn_1_1_stringify_layer_parameters_html_a84990e31a235f27cd3d7f3fc90fa0035"><div class="ttname"><a href="structarmnn_1_1_stringify_layer_parameters.html#a84990e31a235f27cd3d7f3fc90fa0035">armnn::StringifyLayerParameters::Serialize</a></div><div class="ttdeci">static void Serialize(ParameterStringifyFunction &amp;, const LayerParameter &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="_serialize_layer_parameters_8hpp_source.html#l00025">SerializeLayerParameters.hpp:25</a></div></div>
2766<div class="ttc" id="aclassarmnn_1_1_layer_html_a98cdff4e0b45f4c80bfcedaf926e16e0"><div class="ttname"><a href="classarmnn_1_1_layer.html#a98cdff4e0b45f4c80bfcedaf926e16e0">armnn::Layer::GetOutputSlots</a></div><div class="ttdeci">const std::vector&lt; OutputSlot &gt; &amp; GetOutputSlots() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00259">Layer.hpp:259</a></div></div>
2767<div class="ttc" id="anamespacearmnn_html_a8e1f31031ad31cd8cc22d7c9daa32681a4b7d504abac49ba24b4df86c129d3cbc"><div class="ttname"><a href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681a4b7d504abac49ba24b4df86c129d3cbc">armnn::Dimensionality::NotSpecified</a></div><div class="ttdeci">@ NotSpecified</div></div>
2768<div class="ttc" id="aclassarmnn_1_1_exception_html"><div class="ttname"><a href="classarmnn_1_1_exception.html">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those.</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00046">Exceptions.hpp:46</a></div></div>
2769<div class="ttc" id="anamespacearmnn_html_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.html#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div><div class="ttdeci">@ info</div></div>
2770<div class="ttc" id="aclassarmnn_1_1_tensor_info_html_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00200">Tensor.hpp:200</a></div></div>
2771<div class="ttc" id="aclassarmnn_1_1_layer_html_a9a97cb6d32661a57fc33bd29b8e41ff4"><div class="ttname"><a href="classarmnn_1_1_layer.html#a9a97cb6d32661a57fc33bd29b8e41ff4">armnn::Layer::GetNameStr</a></div><div class="ttdeci">const std::string &amp; GetNameStr() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00240">Layer.hpp:240</a></div></div>
2772<div class="ttc" id="aclassarmnn_1_1_layer_html_abc0660dc440c8a285b456c9ef6383c26"><div class="ttname"><a href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">armnn::Layer::GetNumInputSlots</a></div><div class="ttdeci">unsigned int GetNumInputSlots() const override</div><div class="ttdoc">Returns the number of connectable input slots.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00334">Layer.hpp:334</a></div></div>
2773<div class="ttc" id="anamespacearmnn_html_adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1"><div class="ttname"><a href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9af6486a22a9bb11959bfae60a3e5174b1">armnn::ShapeInferenceMethod::ValidateOnly</a></div><div class="ttdeci">@ ValidateOnly</div><div class="ttdoc">Validate all output shapes.</div></div>
2774<div class="ttc" id="aclassarmnn_1_1_layer_html_ad8e15c530c929ab823d89ae9fd2d3f11"><div class="ttname"><a href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">armnn::Layer::GetType</a></div><div class="ttdeci">LayerType GetType() const override</div><div class="ttdoc">Returns the armnn::LayerType of this layer.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00286">Layer.hpp:286</a></div></div>
2775<div class="ttc" id="anamespacearmnn_html_a8e1f31031ad31cd8cc22d7c9daa32681ab4b379bf7ded74c07595ccb85bc6fdc3"><div class="ttname"><a href="namespacearmnn.html#a8e1f31031ad31cd8cc22d7c9daa32681ab4b379bf7ded74c07595ccb85bc6fdc3">armnn::Dimensionality::Specified</a></div><div class="ttdeci">@ Specified</div></div>
2776<div class="ttc" id="anamespacearmnn_html_a44affeeb090c3c6a3062830562672e84"><div class="ttname"><a href="namespacearmnn.html#a44affeeb090c3c6a3062830562672e84">armnn::IgnoreUnused</a></div><div class="ttdeci">void IgnoreUnused(Ts &amp;&amp;...)</div><div class="ttdef"><b>Definition:</b> <a href="_ignore_unused_8hpp_source.html#l00014">IgnoreUnused.hpp:14</a></div></div>
2777<div class="ttc" id="aclassarmnn_1_1_layer_html_afdb1d37740e7a083b625d669588b6a0e"><div class="ttname"><a href="classarmnn_1_1_layer.html#afdb1d37740e7a083b625d669588b6a0e">armnn::Layer::GetBackendId</a></div><div class="ttdeci">const BackendId &amp; GetBackendId() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00290">Layer.hpp:290</a></div></div>
2778<div class="ttc" id="aclassarmnn_1_1_layer_html_a499ca5a94d0174ed21786b6994b2cd8c"><div class="ttname"><a href="classarmnn_1_1_layer.html#a499ca5a94d0174ed21786b6994b2cd8c">armnn::Layer::CollectQueueDescriptorOutputs</a></div><div class="ttdeci">void CollectQueueDescriptorOutputs(QueueDescriptor &amp;descriptor, WorkloadInfo &amp;info) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00393">Layer.hpp:393</a></div></div>
2779<div class="ttc" id="aclassarmnn_1_1_i_tensor_handle_factory_html_a32f4aa6a7089d877af08928139c2c277"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle_factory.html#a32f4aa6a7089d877af08928139c2c277">armnn::ITensorHandleFactory::FactoryId</a></div><div class="ttdeci">std::string FactoryId</div><div class="ttdef"><b>Definition:</b> <a href="_i_tensor_handle_factory_8hpp_source.html#l00049">ITensorHandleFactory.hpp:49</a></div></div>
2780<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::LayerType::Input</a></div><div class="ttdeci">@ Input</div></div>
2781<div class="ttc" id="aclassarmnn_1_1_null_pointer_exception_html"><div class="ttname"><a href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00146">Exceptions.hpp:146</a></div></div>
2782<div class="ttc" id="aclassarmnn_1_1_layer_html_afe508761cc8318b15329ba4acf7fbfec"><div class="ttname"><a href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">armnn::Layer::m_ShapeInferenceMethod</a></div><div class="ttdeci">ShapeInferenceMethod m_ShapeInferenceMethod</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00441">Layer.hpp:441</a></div></div>
2783<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a></div><div class="ttdeci">LayerType</div><div class="ttdoc">When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00491">Types.hpp:491</a></div></div>
2784<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::LayerType::Output</a></div><div class="ttdeci">@ Output</div></div>
2785<div class="ttc" id="anamespacearmnn_html_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::DataLayout::NCHW</a></div><div class="ttdeci">@ NCHW</div></div>
2786<div class="ttc" id="a_exceptions_8hpp_html_a5b0cd1f24b12298894d6367f186ea6dc"><div class="ttname"><a href="_exceptions_8hpp.html#a5b0cd1f24b12298894d6367f186ea6dc">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a></div><div class="ttdeci">#define ARMNN_THROW_INVALIDARG_MSG_IF_FALSE(_cond, _str)</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00210">Exceptions.hpp:210</a></div></div>
2787<!-- start footer part -->
2788<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
2789 <ul>
2790 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_layer.html">Layer</a></li>
2791 <li class="footer">Generated on Thu May 16 2024 09:31:56 for Arm NN by
2792 <a href="http://www.doxygen.org/index.html">
2793 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
2794 </ul>
2795</div>
2796</body>
2797</html>