blob: b3d6de4903b69471ea7ad63158b26d2de4c04e2a [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!-- Copyright (c) 2020 ARM Limited. -->
2<!-- -->
3<!-- SPDX-License-Identifier: MIT -->
4<!-- -->
5<!-- HTML header for doxygen 1.8.13-->
6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7<html xmlns="http://www.w3.org/1999/xhtml">
8<head>
9<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
10<meta http-equiv="X-UA-Compatible" content="IE=9"/>
11<meta name="generator" content="Doxygen 1.8.13"/>
12<meta name="robots" content="NOINDEX, NOFOLLOW" />
13<meta name="viewport" content="width=device-width, initial-scale=1"/>
14<title>ArmNN: Layer Class Reference</title>
15<link href="tabs.css" rel="stylesheet" type="text/css"/>
16<script type="text/javascript" src="jquery.js"></script>
17<script type="text/javascript" src="dynsections.js"></script>
18<link href="navtree.css" rel="stylesheet" type="text/css"/>
19<script type="text/javascript" src="resize.js"></script>
20<script type="text/javascript" src="navtreedata.js"></script>
21<script type="text/javascript" src="navtree.js"></script>
22<script type="text/javascript">
23 $(document).ready(initResizable);
24</script>
25<link href="search/search.css" rel="stylesheet" type="text/css"/>
26<script type="text/javascript" src="search/searchdata.js"></script>
27<script type="text/javascript" src="search/search.js"></script>
28<script type="text/x-mathjax-config">
29 MathJax.Hub.Config({
30 extensions: ["tex2jax.js"],
31 jax: ["input/TeX","output/HTML-CSS"],
32});
33</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
34<link href="doxygen.css" rel="stylesheet" type="text/css" />
35<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
36</head>
37<body>
38<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
39<div id="titlearea">
40<table cellspacing="0" cellpadding="0">
41 <tbody>
42 <tr style="height: 56px;">
43 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
44 <td style="padding-left: 0.5em;">
45 <div id="projectname">
46 &#160;<span id="projectnumber">20.02</span>
47 </div>
48 </td>
49 </tr>
50 </tbody>
51</table>
52</div>
53<!-- end header part -->
54<!-- Generated by Doxygen 1.8.13 -->
55<script type="text/javascript">
56var searchBox = new SearchBox("searchBox", "search",false,'Search');
57</script>
58<script type="text/javascript" src="menudata.js"></script>
59<script type="text/javascript" src="menu.js"></script>
60<script type="text/javascript">
61$(function() {
62 initMenu('',true,false,'search.php','Search');
63 $(document).ready(function() { init_search(); });
64});
65</script>
66<div id="main-nav"></div>
67</div><!-- top -->
68<div id="side-nav" class="ui-resizable side-nav-resizable">
69 <div id="nav-tree">
70 <div id="nav-tree-contents">
71 <div id="nav-sync" class="sync"></div>
72 </div>
73 </div>
74 <div id="splitbar" style="-moz-user-select:none;"
75 class="ui-resizable-handle">
76 </div>
77</div>
78<script type="text/javascript">
79$(document).ready(function(){initNavTree('classarmnn_1_1_layer.xhtml','');});
80</script>
81<div id="doc-content">
82<!-- window showing the filter options -->
83<div id="MSearchSelectWindow"
84 onmouseover="return searchBox.OnSearchSelectShow()"
85 onmouseout="return searchBox.OnSearchSelectHide()"
86 onkeydown="return searchBox.OnSearchSelectKey(event)">
87</div>
88
89<!-- iframe showing the search results (closed by default) -->
90<div id="MSearchResultsWindow">
91<iframe src="javascript:void(0)" frameborder="0"
92 name="MSearchResults" id="MSearchResults">
93</iframe>
94</div>
95
96<div class="header">
97 <div class="summary">
98<a href="#pub-methods">Public Member Functions</a> &#124;
99<a href="#pro-types">Protected Types</a> &#124;
100<a href="#pro-methods">Protected Member Functions</a> &#124;
101<a href="#pro-attribs">Protected Attributes</a> &#124;
102<a href="#friends">Friends</a> &#124;
103<a href="classarmnn_1_1_layer-members.xhtml">List of all members</a> </div>
104 <div class="headertitle">
105<div class="title">Layer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
106</div><!--header-->
107<div class="contents">
108
109<p><code>#include &lt;<a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>&gt;</code></p>
110<div class="dynheader">
111Inheritance diagram for Layer:</div>
112<div class="dyncontent">
113 <div class="center">
114 <img src="classarmnn_1_1_layer.png" usemap="#Layer_map" alt=""/>
115 <map id="Layer_map" name="Layer_map">
116<area href="classarmnn_1_1_i_connectable_layer.xhtml" title="Interface for a layer that is connectable to other layers via InputSlots and OutputSlots. " alt="IConnectableLayer" shape="rect" coords="0,0,356,24"/>
117<area href="classarmnn_1_1_abs_layer.xhtml" alt="AbsLayer" shape="rect" coords="366,112,722,136"/>
118<area href="classarmnn_1_1_bindable_layer.xhtml" alt="BindableLayer" shape="rect" coords="366,168,722,192"/>
119<area href="classarmnn_1_1_constant_layer.xhtml" title="A layer that the constant data can be bound to. " alt="ConstantLayer" shape="rect" coords="366,224,722,248"/>
120<area href="classarmnn_1_1_convert_fp16_to_fp32_layer.xhtml" title="This layer converts data type Float 16 to Float 32. " alt="ConvertFp16ToFp32Layer" shape="rect" coords="366,280,722,304"/>
121<area href="classarmnn_1_1_convert_fp32_to_fp16_layer.xhtml" title="This layer converts data type Float 32 to Float 16. " alt="ConvertFp32ToFp16Layer" shape="rect" coords="366,336,722,360"/>
122<area href="classarmnn_1_1_debug_layer.xhtml" title="This layer visualizes the data flowing through the network. " alt="DebugLayer" shape="rect" coords="366,392,722,416"/>
123<area href="classarmnn_1_1_dequantize_layer.xhtml" title="This layer dequantizes the input tensor. " alt="DequantizeLayer" shape="rect" coords="366,448,722,472"/>
124<area href="classarmnn_1_1_elementwise_base_layer.xhtml" title="NOTE: this is an abstract class to encapsulate the element wise operations, it does not implement: st..." alt="ElementwiseBaseLayer" shape="rect" coords="366,504,722,528"/>
125<area href="classarmnn_1_1_floor_layer.xhtml" title="This layer represents a floor operation. " alt="FloorLayer" shape="rect" coords="366,560,722,584"/>
126<area href="classarmnn_1_1_gather_layer.xhtml" title="This layer represents a Gather operator. " alt="GatherLayer" shape="rect" coords="366,616,722,640"/>
127<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; Parameters &gt;" shape="rect" coords="366,672,722,696"/>
128<area href="classarmnn_1_1_mem_copy_layer.xhtml" title="This layer represents a memory copy operation. " alt="MemCopyLayer" shape="rect" coords="366,728,722,752"/>
129<area href="classarmnn_1_1_mem_import_layer.xhtml" title="This layer represents a memory import operation. " alt="MemImportLayer" shape="rect" coords="366,784,722,808"/>
130<area href="classarmnn_1_1_merge_layer.xhtml" title="This layer dequantizes the input tensor. " alt="MergeLayer" shape="rect" coords="366,840,722,864"/>
131<area href="classarmnn_1_1_prelu_layer.xhtml" alt="PreluLayer" shape="rect" coords="366,896,722,920"/>
132<area href="classarmnn_1_1_quantized_lstm_layer.xhtml" title="This layer represents a QuantizedLstm operation. " alt="QuantizedLstmLayer" shape="rect" coords="366,952,722,976"/>
133<area href="classarmnn_1_1_quantize_layer.xhtml" alt="QuantizeLayer" shape="rect" coords="366,1008,722,1032"/>
134<area href="classarmnn_1_1_rsqrt_layer.xhtml" alt="RsqrtLayer" shape="rect" coords="366,1064,722,1088"/>
135<area href="classarmnn_1_1_switch_layer.xhtml" title="This layer calculates both true and false outputs for input. " alt="SwitchLayer" shape="rect" coords="366,1120,722,1144"/>
136<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ActivationDescriptor &gt;" shape="rect" coords="366,1176,722,1200"/>
137<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ArgMinMaxDescriptor &gt;" shape="rect" coords="366,1232,722,1256"/>
138<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; BatchNormalizationDescriptor &gt;" shape="rect" coords="366,1288,722,1312"/>
139<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; BatchToSpaceNdDescriptor &gt;" shape="rect" coords="366,1344,722,1368"/>
140<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ComparisonDescriptor &gt;" shape="rect" coords="366,1400,722,1424"/>
141<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; Convolution2dDescriptor &gt;" shape="rect" coords="366,1456,722,1480"/>
142<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; DepthToSpaceDescriptor &gt;" shape="rect" coords="366,1512,722,1536"/>
143<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; DepthwiseConvolution2dDescriptor &gt;" shape="rect" coords="366,1568,722,1592"/>
144<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; DetectionPostProcessDescriptor &gt;" shape="rect" coords="366,1624,722,1648"/>
145<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ElementwiseUnaryDescriptor &gt;" shape="rect" coords="366,1680,722,1704"/>
146<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; FakeQuantizationDescriptor &gt;" shape="rect" coords="366,1736,722,1760"/>
147<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; FullyConnectedDescriptor &gt;" shape="rect" coords="366,1792,722,1816"/>
148<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; InstanceNormalizationDescriptor &gt;" shape="rect" coords="366,1848,722,1872"/>
149<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; L2NormalizationDescriptor &gt;" shape="rect" coords="366,1904,722,1928"/>
150<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; LogSoftmaxDescriptor &gt;" shape="rect" coords="366,1960,722,1984"/>
151<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; LstmDescriptor &gt;" shape="rect" coords="366,2016,722,2040"/>
152<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; MeanDescriptor &gt;" shape="rect" coords="366,2072,722,2096"/>
153<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; NormalizationDescriptor &gt;" shape="rect" coords="366,2128,722,2152"/>
154<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; OriginsDescriptor &gt;" shape="rect" coords="366,2184,722,2208"/>
155<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; PadDescriptor &gt;" shape="rect" coords="366,2240,722,2264"/>
156<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; PermuteDescriptor &gt;" shape="rect" coords="366,2296,722,2320"/>
157<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; Pooling2dDescriptor &gt;" shape="rect" coords="366,2352,722,2376"/>
158<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; PreCompiledDescriptor &gt;" shape="rect" coords="366,2408,722,2432"/>
159<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ReshapeDescriptor &gt;" shape="rect" coords="366,2464,722,2488"/>
160<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ResizeDescriptor &gt;" shape="rect" coords="366,2520,722,2544"/>
161<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; SliceDescriptor &gt;" shape="rect" coords="366,2576,722,2600"/>
162<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; SoftmaxDescriptor &gt;" shape="rect" coords="366,2632,722,2656"/>
163<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; SpaceToBatchNdDescriptor &gt;" shape="rect" coords="366,2688,722,2712"/>
164<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; SpaceToDepthDescriptor &gt;" shape="rect" coords="366,2744,722,2768"/>
165<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; StackDescriptor &gt;" shape="rect" coords="366,2800,722,2824"/>
166<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; StandInDescriptor &gt;" shape="rect" coords="366,2856,722,2880"/>
167<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; StridedSliceDescriptor &gt;" shape="rect" coords="366,2912,722,2936"/>
168<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; TransposeConvolution2dDescriptor &gt;" shape="rect" coords="366,2968,722,2992"/>
169<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; TransposeDescriptor &gt;" shape="rect" coords="366,3024,722,3048"/>
170<area href="classarmnn_1_1_layer_with_parameters.xhtml" alt="LayerWithParameters&lt; ViewsDescriptor &gt;" shape="rect" coords="366,3080,722,3104"/>
171</map>
172 </div></div>
173<table class="memberdecls">
174<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
175Public Member Functions</h2></td></tr>
176<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.xhtml#a5e5ae420d199a0bccae5139d38c30205">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, const char *name)</td></tr>
177<tr class="separator:a5e5ae420d199a0bccae5139d38c30205"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<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.xhtml#a395d070748c18d903705799360088e80">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> layout, const char *name)</td></tr>
179<tr class="separator:a395d070748c18d903705799360088e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<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.xhtml#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a> () const</td></tr>
181<tr class="separator:a9a97cb6d32661a57fc33bd29b8e41ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:af2c0edc7ea62a8baaec4d3d9b2b09256"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a> (unsigned int i=0) const</td></tr>
183<tr class="separator:af2c0edc7ea62a8baaec4d3d9b2b09256"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="memitem:a1d4e05c17647232c514cfe58ca80744a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a1d4e05c17647232c514cfe58ca80744a">GetOutputHandler</a> (unsigned int i=0)</td></tr>
185<tr class="separator:a1d4e05c17647232c514cfe58ca80744a"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:af5f530544d09a44d726f24702b67b35b"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a> () const</td></tr>
187<tr class="separator:af5f530544d09a44d726f24702b67b35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:a98cdff4e0b45f4c80bfcedaf926e16e0"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a98cdff4e0b45f4c80bfcedaf926e16e0">GetOutputSlots</a> () const</td></tr>
189<tr class="separator:a98cdff4e0b45f4c80bfcedaf926e16e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:af6cb8de21ef0da269ec9b67755ae92a0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#af6cb8de21ef0da269ec9b67755ae92a0">BeginInputSlots</a> ()</td></tr>
191<tr class="separator:af6cb8de21ef0da269ec9b67755ae92a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:a9752e12d6b79e18da1a25f76159d2a72"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a9752e12d6b79e18da1a25f76159d2a72">EndInputSlots</a> ()</td></tr>
193<tr class="separator:a9752e12d6b79e18da1a25f76159d2a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:a817d4be6dd88f532d36f51748ec14185"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a817d4be6dd88f532d36f51748ec14185">BeginOutputSlots</a> ()</td></tr>
195<tr class="separator:a817d4be6dd88f532d36f51748ec14185"><td class="memSeparator" colspan="2">&#160;</td></tr>
196<tr class="memitem:a55f76d98fcd2f5cdac3e2b14536cb7ab"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a55f76d98fcd2f5cdac3e2b14536cb7ab">EndOutputSlots</a> ()</td></tr>
197<tr class="separator:a55f76d98fcd2f5cdac3e2b14536cb7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<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.xhtml#a22485f444124128940e798a42f0b76d9">IsOutputUnconnected</a> ()</td></tr>
199<tr class="separator:a22485f444124128940e798a42f0b76d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<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.xhtml#aac329cade047e952621b59a51a5d5f49">ResetPriority</a> () const</td></tr>
201<tr class="separator:aac329cade047e952621b59a51a5d5f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<tr class="memitem:af97a07195a67a638605b3c325763c2dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#af97a07195a67a638605b3c325763c2dd">GetPriority</a> () const</td></tr>
203<tr class="separator:af97a07195a67a638605b3c325763c2dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:aaef29472862381822654ab6cbf7cba2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a> () const</td></tr>
205<tr class="separator:aaef29472862381822654ab6cbf7cba2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<tr class="memitem:aea909c7327109228ef618d459015def3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a> () const</td></tr>
207<tr class="separator:aea909c7327109228ef618d459015def3"><td class="memSeparator" colspan="2">&#160;</td></tr>
208<tr class="memitem:afdb1d37740e7a083b625d669588b6a0e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#afdb1d37740e7a083b625d669588b6a0e">GetBackendId</a> () const</td></tr>
209<tr class="separator:afdb1d37740e7a083b625d669588b6a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
210<tr class="memitem:a3f6ad59212fa8a47c9265162fff8a274"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a3f6ad59212fa8a47c9265162fff8a274">SetBackendId</a> (const <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &amp;id)</td></tr>
211<tr class="separator:a3f6ad59212fa8a47c9265162fff8a274"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<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.xhtml">IWorkload</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a08d1e10a45f15cd0bd02557be35a3864">CreateWorkload</a> (const <a class="el" href="classarmnn_1_1_i_workload_factory.xhtml">IWorkloadFactory</a> &amp;factory) const =0</td></tr>
213<tr class="separator:a08d1e10a45f15cd0bd02557be35a3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<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.xhtml#a3ff62126ec713a2708e5fbaa6146a7de">CreateTensorHandles</a> (const <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.xhtml">TensorHandleFactoryRegistry</a> &amp;registry, const <a class="el" href="classarmnn_1_1_i_workload_factory.xhtml">IWorkloadFactory</a> &amp;factory, const bool IsMemoryManaged=<a class="el" href="_ref_layer_tests_8cpp.xhtml#a37f1c3ccc9fc906be85185350dd83d48">true</a>)</td></tr>
215<tr class="separator:a3ff62126ec713a2708e5fbaa6146a7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:ae89ff455503aa106d00bf34103d2f2e0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#ae89ff455503aa106d00bf34103d2f2e0">Clone</a> (<a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;graph) const =0</td></tr>
217<tr class="memdesc:ae89ff455503aa106d00bf34103d2f2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a dynamically-allocated copy of this layer. <a href="#ae89ff455503aa106d00bf34103d2f2e0">More...</a><br /></td></tr>
218<tr class="separator:ae89ff455503aa106d00bf34103d2f2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<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.xhtml#a0607e36e88f38c34c71c663164b76776">VerifyLayerConnections</a> (unsigned int expectedConnections, const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;location) const</td></tr>
220<tr class="separator:a0607e36e88f38c34c71c663164b76776"><td class="memSeparator" colspan="2">&#160;</td></tr>
221<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.xhtml#a84ff600212ba26e665de9b978ec896a4">ValidateTensorShapesFromInputs</a> ()=0</td></tr>
222<tr class="separator:a84ff600212ba26e665de9b978ec896a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<tr class="memitem:a65ca562c882ad619684445a1402f415a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a65ca562c882ad619684445a1402f415a">InferOutputShapes</a> (const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> &gt; &amp;inputShapes) const override</td></tr>
224<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="#a65ca562c882ad619684445a1402f415a">More...</a><br /></td></tr>
225<tr class="separator:a65ca562c882ad619684445a1402f415a"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<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.xhtml#ac04cd8de9b9185756eb02463ffd432b1">SerializeLayerParameters</a> (<a class="el" href="namespacearmnn.xhtml#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;fn) const</td></tr>
227<tr class="memdesc:ac04cd8de9b9185756eb02463ffd432b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to serialize the layer parameters to string. <a href="#ac04cd8de9b9185756eb02463ffd432b1">More...</a><br /></td></tr>
228<tr class="separator:ac04cd8de9b9185756eb02463ffd432b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
229<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.xhtml#a339bef86bc340c3d1393ed83950fe8af">ReleaseConstantData</a> ()</td></tr>
230<tr class="separator:a339bef86bc340c3d1393ed83950fe8af"><td class="memSeparator" colspan="2">&#160;</td></tr>
231<tr class="memitem:a386acff5f8430245239ce58d00ba7576"><td class="memTemplParams" colspan="2">template&lt;typename Op &gt; </td></tr>
232<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.xhtml#a386acff5f8430245239ce58d00ba7576">OperateOnConstantTensors</a> (Op op)</td></tr>
233<tr class="separator:a386acff5f8430245239ce58d00ba7576"><td class="memSeparator" colspan="2">&#160;</td></tr>
234<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.xhtml#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a> () const override</td></tr>
235<tr class="memdesc:a7ddf0cf6f620d59c10e63495ace795d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the layer. <a href="#a7ddf0cf6f620d59c10e63495ace795d0">More...</a><br /></td></tr>
236<tr class="separator:a7ddf0cf6f620d59c10e63495ace795d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
237<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.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a> () const override</td></tr>
238<tr class="memdesc:abc0660dc440c8a285b456c9ef6383c26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable input slots. <a href="#abc0660dc440c8a285b456c9ef6383c26">More...</a><br /></td></tr>
239<tr class="separator:abc0660dc440c8a285b456c9ef6383c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<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.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a> () const override</td></tr>
241<tr class="memdesc:a1594bddc87d6477df300317658f566bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable output slots. <a href="#a1594bddc87d6477df300317658f566bb">More...</a><br /></td></tr>
242<tr class="separator:a1594bddc87d6477df300317658f566bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
243<tr class="memitem:acf8b8e23bf647836592982f97088d375"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a> (unsigned int index) const override</td></tr>
244<tr class="memdesc:acf8b8e23bf647836592982f97088d375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const input slot handle by slot index. <a href="#acf8b8e23bf647836592982f97088d375">More...</a><br /></td></tr>
245<tr class="separator:acf8b8e23bf647836592982f97088d375"><td class="memSeparator" colspan="2">&#160;</td></tr>
246<tr class="memitem:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a1b50eb1358cdf382f4bc3fc8849f8e8e">GetInputSlot</a> (unsigned int index) override</td></tr>
247<tr class="memdesc:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the input slot handle by slot index. <a href="#a1b50eb1358cdf382f4bc3fc8849f8e8e">More...</a><br /></td></tr>
248<tr class="separator:a1b50eb1358cdf382f4bc3fc8849f8e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
249<tr class="memitem:a0e36688a43c35668d8db5257274c68fe"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a> (unsigned int index=0) const override</td></tr>
250<tr class="memdesc:a0e36688a43c35668d8db5257274c68fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the const output slot handle by slot index. <a href="#a0e36688a43c35668d8db5257274c68fe">More...</a><br /></td></tr>
251<tr class="separator:a0e36688a43c35668d8db5257274c68fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
252<tr class="memitem:abbd71844785bb2f00a81baca30ea5ff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#abbd71844785bb2f00a81baca30ea5ff0">GetOutputSlot</a> (unsigned int index=0) override</td></tr>
253<tr class="memdesc:abbd71844785bb2f00a81baca30ea5ff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output slot handle by slot index. <a href="#abbd71844785bb2f00a81baca30ea5ff0">More...</a><br /></td></tr>
254<tr class="separator:abbd71844785bb2f00a81baca30ea5ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
255<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.xhtml#a6d1024208b672a87ef2c1bfaf93d2b9f">SetGuid</a> (<a class="el" href="namespacearmnn.xhtml#afad4088a9a058114ee5f87246f87bf49">LayerGuid</a> guid)</td></tr>
256<tr class="separator:a6d1024208b672a87ef2c1bfaf93d2b9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
257<tr class="memitem:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#afad4088a9a058114ee5f87246f87bf49">LayerGuid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a8dc12f0ee5b232d397bd18ced1a72a64">GetGuid</a> () const final</td></tr>
258<tr class="memdesc:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique id of the layer. <a href="#a8dc12f0ee5b232d397bd18ced1a72a64">More...</a><br /></td></tr>
259<tr class="separator:a8dc12f0ee5b232d397bd18ced1a72a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
260<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.xhtml#a339248d89d5e21534ecf74b4393ed4d2">AddRelatedLayerName</a> (const std::string layerName)</td></tr>
261<tr class="separator:a339248d89d5e21534ecf74b4393ed4d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
262<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.xhtml#a5e5520194ea4042fe07b0bf53c28f634">GetRelatedLayerNames</a> ()</td></tr>
263<tr class="separator:a5e5520194ea4042fe07b0bf53c28f634"><td class="memSeparator" colspan="2">&#160;</td></tr>
264<tr class="memitem:a72b18e4c5a403bc3fe2fecf20135c8d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a72b18e4c5a403bc3fe2fecf20135c8d6">Reparent</a> (<a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;dest, std::list&lt; <a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> *&gt;::const_iterator iterator)=0</td></tr>
265<tr class="separator:a72b18e4c5a403bc3fe2fecf20135c8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
266<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.xhtml#a43a46eafee5c08787ab17b4342730c20">BackendSelectionHint</a> (<a class="el" href="classarmnn_1_1_optional.xhtml">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &gt; backend) final</td></tr>
267<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="#a43a46eafee5c08787ab17b4342730c20">More...</a><br /></td></tr>
268<tr class="separator:a43a46eafee5c08787ab17b4342730c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
269<tr class="memitem:a6ff80e440308295056b57e2adaa42888"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optional.xhtml">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a6ff80e440308295056b57e2adaa42888">GetBackendHint</a> () const</td></tr>
270<tr class="separator:a6ff80e440308295056b57e2adaa42888"><td class="memSeparator" colspan="2">&#160;</td></tr>
271<tr class="inherit_header pub_methods_classarmnn_1_1_i_connectable_layer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_i_connectable_layer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml">IConnectableLayer</a></td></tr>
272<tr class="memitem:a8c9198a992b02e61a6777329d487dde3 inherit pub_methods_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a8c9198a992b02e61a6777329d487dde3">Accept</a> (<a class="el" href="classarmnn_1_1_i_layer_visitor.xhtml">ILayerVisitor</a> &amp;visitor) const =0</td></tr>
273<tr class="memdesc:a8c9198a992b02e61a6777329d487dde3 inherit pub_methods_classarmnn_1_1_i_connectable_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a visitor to this layer. <a href="classarmnn_1_1_i_connectable_layer.xhtml#a8c9198a992b02e61a6777329d487dde3">More...</a><br /></td></tr>
274<tr class="separator:a8c9198a992b02e61a6777329d487dde3 inherit pub_methods_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
275</table><table class="memberdecls">
276<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
277Protected Types</h2></td></tr>
278<tr class="memitem:a585d59ec610af46a76487fd6c1c55ac1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">ConstantTensors</a> = std::vector&lt; std::reference_wrapper&lt; std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_scoped_cpu_tensor_handle.xhtml">ScopedCpuTensorHandle</a> &gt; &gt;&gt;</td></tr>
279<tr class="separator:a585d59ec610af46a76487fd6c1c55ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
280</table><table class="memberdecls">
281<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
282Protected Member Functions</h2></td></tr>
283<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.xhtml#aacfb208d750bdfce1bbd423e5cac76e2">~Layer</a> ()=default</td></tr>
284<tr class="separator:aacfb208d750bdfce1bbd423e5cac76e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
285<tr class="memitem:afc3239f5fc116259bf5451964e803646"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
286<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.xhtml#afc3239f5fc116259bf5451964e803646">CollectQueueDescriptorInputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> &amp;<a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>) const</td></tr>
287<tr class="separator:afc3239f5fc116259bf5451964e803646"><td class="memSeparator" colspan="2">&#160;</td></tr>
288<tr class="memitem:a499ca5a94d0174ed21786b6994b2cd8c"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
289<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.xhtml#a499ca5a94d0174ed21786b6994b2cd8c">CollectQueueDescriptorOutputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> &amp;<a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>) const</td></tr>
290<tr class="separator:a499ca5a94d0174ed21786b6994b2cd8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
291<tr class="memitem:a30a858b2b26d651a066537e499fbf40d"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
292<tr class="memitem:a30a858b2b26d651a066537e499fbf40d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#a30a858b2b26d651a066537e499fbf40d">PrepInfoAndDesc</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;descriptor) const</td></tr>
293<tr class="memdesc:a30a858b2b26d651a066537e499fbf40d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to reduce duplication in *Layer<a class="el" href="_elementwise_unary_test_impl_8hpp.xhtml#aa50938ed8f91e09acd4af904dcf5543a">CreateWorkload</a>. <a href="#a30a858b2b26d651a066537e499fbf40d">More...</a><br /></td></tr>
294<tr class="separator:a30a858b2b26d651a066537e499fbf40d"><td class="memSeparator" colspan="2">&#160;</td></tr>
295<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memTemplParams" colspan="2">template&lt;typename LayerType , typename ... Params&gt; </td></tr>
296<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#aa10fd205c3f5469a9ecb2aa2a3ffd101">CloneBase</a> (<a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;graph, Params &amp;&amp;... params) const</td></tr>
297<tr class="separator:aa10fd205c3f5469a9ecb2aa2a3ffd101"><td class="memSeparator" colspan="2">&#160;</td></tr>
298<tr class="memitem:afbeac2d77ecaadc3e303a163b4146961"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">ConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#afbeac2d77ecaadc3e303a163b4146961">GetConstantTensorsByRef</a> ()</td></tr>
299<tr class="separator:afbeac2d77ecaadc3e303a163b4146961"><td class="memSeparator" colspan="2">&#160;</td></tr>
300<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.xhtml">IConnectableLayer</a></td></tr>
301<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.xhtml#a8c7faf37c1d965431aaa02ae934d67ee">~IConnectableLayer</a> ()</td></tr>
302<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.xhtml#a8c7faf37c1d965431aaa02ae934d67ee">More...</a><br /></td></tr>
303<tr class="separator:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
304</table><table class="memberdecls">
305<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
306Protected Attributes</h2></td></tr>
307<tr class="memitem:aa44d91037bba52ba0dec6577509ade3b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.xhtml#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a></td></tr>
308<tr class="separator:aa44d91037bba52ba0dec6577509ade3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
309</table><table class="memberdecls">
310<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
311Friends</h2></td></tr>
312<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.xhtml#afab89afd724f1b07b1aaad6bdc61c47a">Graph</a></td></tr>
313<tr class="separator:afab89afd724f1b07b1aaad6bdc61c47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
314</table>
315<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
316<div class="textblock">
317<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00209">209</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
318</div><h2 class="groupheader">Member Typedef Documentation</h2>
319<a id="a585d59ec610af46a76487fd6c1c55ac1"></a>
320<h2 class="memtitle"><span class="permalink"><a href="#a585d59ec610af46a76487fd6c1c55ac1">&#9670;&nbsp;</a></span>ConstantTensors</h2>
321
322<div class="memitem">
323<div class="memproto">
324<table class="mlabels">
325 <tr>
326 <td class="mlabels-left">
327 <table class="memname">
328 <tr>
329 <td class="memname">using <a class="el" href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">ConstantTensors</a> = std::vector&lt;std::reference_wrapper&lt;std::unique_ptr&lt;<a class="el" href="classarmnn_1_1_scoped_cpu_tensor_handle.xhtml">ScopedCpuTensorHandle</a>&gt; &gt;&gt;</td>
330 </tr>
331 </table>
332 </td>
333 <td class="mlabels-right">
334<span class="mlabels"><span class="mlabel">protected</span></span> </td>
335 </tr>
336</table>
337</div><div class="memdoc">
338
339<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00363">363</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
340
341</div>
342</div>
343<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
344<a id="a5e5ae420d199a0bccae5139d38c30205"></a>
345<h2 class="memtitle"><span class="permalink"><a href="#a5e5ae420d199a0bccae5139d38c30205">&#9670;&nbsp;</a></span>Layer() <span class="overload">[1/2]</span></h2>
346
347<div class="memitem">
348<div class="memproto">
349 <table class="memname">
350 <tr>
351 <td class="memname"><a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> </td>
352 <td>(</td>
353 <td class="paramtype">unsigned int&#160;</td>
354 <td class="paramname"><em>numInputSlots</em>, </td>
355 </tr>
356 <tr>
357 <td class="paramkey"></td>
358 <td></td>
359 <td class="paramtype">unsigned int&#160;</td>
360 <td class="paramname"><em>numOutputSlots</em>, </td>
361 </tr>
362 <tr>
363 <td class="paramkey"></td>
364 <td></td>
365 <td class="paramtype"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td>
366 <td class="paramname"><em>type</em>, </td>
367 </tr>
368 <tr>
369 <td class="paramkey"></td>
370 <td></td>
371 <td class="paramtype">const char *&#160;</td>
372 <td class="paramname"><em>name</em>&#160;</td>
373 </tr>
374 <tr>
375 <td></td>
376 <td>)</td>
377 <td></td><td></td>
378 </tr>
379 </table>
380</div><div class="memdoc">
381<dl class="params"><dt>Parameters</dt><dd>
382 <table class="params">
383 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.xhtml">Optional</a> name for the layer (may be nullptr). </td></tr>
384 </table>
385 </dd>
386</dl>
387
388<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00213">213</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
389
390<p class="reference">References <a class="el" href="_layer_8hpp_source.xhtml#l00231">Layer::GetInputSlots()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00371">Layer::m_OutputHandlers</a>, and <a class="el" href="_workload_data_collector_8hpp_source.xhtml#l00024">WorkloadDataCollector::Push()</a>.</p>
391<div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;: <a class="code" href="classarmnn_1_1_layer.xhtml#a5e5ae420d199a0bccae5139d38c30205">Layer</a>(numInputSlots, numOutputSlots, type, <a class="code" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>, name)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a5e5ae420d199a0bccae5139d38c30205"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00213">Layer.cpp:213</a></div></div>
392<div class="ttc" id="namespacearmnn_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::DataLayout::NCHW</a></div></div>
393</div><!-- fragment -->
394</div>
395</div>
396<a id="a395d070748c18d903705799360088e80"></a>
397<h2 class="memtitle"><span class="permalink"><a href="#a395d070748c18d903705799360088e80">&#9670;&nbsp;</a></span>Layer() <span class="overload">[2/2]</span></h2>
398
399<div class="memitem">
400<div class="memproto">
401 <table class="memname">
402 <tr>
403 <td class="memname"><a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> </td>
404 <td>(</td>
405 <td class="paramtype">unsigned int&#160;</td>
406 <td class="paramname"><em>numInputSlots</em>, </td>
407 </tr>
408 <tr>
409 <td class="paramkey"></td>
410 <td></td>
411 <td class="paramtype">unsigned int&#160;</td>
412 <td class="paramname"><em>numOutputSlots</em>, </td>
413 </tr>
414 <tr>
415 <td class="paramkey"></td>
416 <td></td>
417 <td class="paramtype"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td>
418 <td class="paramname"><em>type</em>, </td>
419 </tr>
420 <tr>
421 <td class="paramkey"></td>
422 <td></td>
423 <td class="paramtype"><a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a>&#160;</td>
424 <td class="paramname"><em>layout</em>, </td>
425 </tr>
426 <tr>
427 <td class="paramkey"></td>
428 <td></td>
429 <td class="paramtype">const char *&#160;</td>
430 <td class="paramname"><em>name</em>&#160;</td>
431 </tr>
432 <tr>
433 <td></td>
434 <td>)</td>
435 <td></td><td></td>
436 </tr>
437 </table>
438</div><div class="memdoc">
439
440<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00187">187</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
441
442<p class="reference">References <a class="el" href="_ignore_unused_8hpp_source.xhtml#l00014">armnn::IgnoreUnused()</a>, and <a class="el" href="_layer_8hpp_source.xhtml#l00371">Layer::m_OutputHandlers</a>.</p>
443<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;: <a class="code" href="classarmnn_1_1_layer.xhtml#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>(numOutputSlots)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;, m_LayerName(name ? name : <span class="stringliteral">&quot;&quot;</span>)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;, m_Type(type)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;, m_BackendId()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;, m_BackendHint(EmptyOptional())</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;, m_Guid(<a class="code" href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a6d016886de3596fe67dbabf107168f97">profiling::ProfilingService::Instance</a>().NextGuid())</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(layout);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; m_InputSlots.reserve(numInputSlots);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numInputSlots; ++i)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_InputSlots.emplace_back(*<span class="keyword">this</span>, i);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_OutputSlots.reserve(numOutputSlots);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numOutputSlots; ++i)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_OutputSlots.emplace_back(*<span class="keyword">this</span>, <a class="code" href="classarmnn_1_1_layer.xhtml#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>[i]);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div><div class="ttc" id="classarmnn_1_1profiling_1_1_profiling_service_xhtml_a6d016886de3596fe67dbabf107168f97"><div class="ttname"><a href="classarmnn_1_1profiling_1_1_profiling_service.xhtml#a6d016886de3596fe67dbabf107168f97">armnn::profiling::ProfilingService::Instance</a></div><div class="ttdeci">static ProfilingService &amp; Instance()</div><div class="ttdef"><b>Definition:</b> <a href="_profiling_service_8hpp_source.xhtml#l00052">ProfilingService.hpp:52</a></div></div>
444<div class="ttc" id="namespacearmnn_xhtml_a44affeeb090c3c6a3062830562672e84"><div class="ttname"><a href="namespacearmnn.xhtml#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.xhtml#l00014">IgnoreUnused.hpp:14</a></div></div>
445<div class="ttc" id="classarmnn_1_1_layer_xhtml_aa44d91037bba52ba0dec6577509ade3b"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00371">Layer.hpp:371</a></div></div>
446</div><!-- fragment -->
447</div>
448</div>
449<a id="aacfb208d750bdfce1bbd423e5cac76e2"></a>
450<h2 class="memtitle"><span class="permalink"><a href="#aacfb208d750bdfce1bbd423e5cac76e2">&#9670;&nbsp;</a></span>~Layer()</h2>
451
452<div class="memitem">
453<div class="memproto">
454<table class="mlabels">
455 <tr>
456 <td class="mlabels-left">
457 <table class="memname">
458 <tr>
459 <td class="memname">virtual ~<a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> </td>
460 <td>(</td>
461 <td class="paramname"></td><td>)</td>
462 <td></td>
463 </tr>
464 </table>
465 </td>
466 <td class="mlabels-right">
467<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
468 </tr>
469</table>
470</div><div class="memdoc">
471
472</div>
473</div>
474<h2 class="groupheader">Member Function Documentation</h2>
475<a id="a339248d89d5e21534ecf74b4393ed4d2"></a>
476<h2 class="memtitle"><span class="permalink"><a href="#a339248d89d5e21534ecf74b4393ed4d2">&#9670;&nbsp;</a></span>AddRelatedLayerName()</h2>
477
478<div class="memitem">
479<div class="memproto">
480<table class="mlabels">
481 <tr>
482 <td class="mlabels-left">
483 <table class="memname">
484 <tr>
485 <td class="memname">void AddRelatedLayerName </td>
486 <td>(</td>
487 <td class="paramtype">const std::string&#160;</td>
488 <td class="paramname"><em>layerName</em></td><td>)</td>
489 <td></td>
490 </tr>
491 </table>
492 </td>
493 <td class="mlabels-right">
494<span class="mlabels"><span class="mlabel">inline</span></span> </td>
495 </tr>
496</table>
497</div><div class="memdoc">
498
499<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00318">318</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
500<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{ m_RelatedLayerNames.emplace_back(layerName); }</div></div><!-- fragment -->
501</div>
502</div>
503<a id="a43a46eafee5c08787ab17b4342730c20"></a>
504<h2 class="memtitle"><span class="permalink"><a href="#a43a46eafee5c08787ab17b4342730c20">&#9670;&nbsp;</a></span>BackendSelectionHint()</h2>
505
506<div class="memitem">
507<div class="memproto">
508<table class="mlabels">
509 <tr>
510 <td class="mlabels-left">
511 <table class="memname">
512 <tr>
513 <td class="memname">void BackendSelectionHint </td>
514 <td>(</td>
515 <td class="paramtype"><a class="el" href="classarmnn_1_1_optional.xhtml">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &gt;&#160;</td>
516 <td class="paramname"><em>backend</em></td><td>)</td>
517 <td></td>
518 </tr>
519 </table>
520 </td>
521 <td class="mlabels-right">
522<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">final</span><span class="mlabel">virtual</span></span> </td>
523 </tr>
524</table>
525</div><div class="memdoc">
526
527<p>Provide a hint for the optimizer as to which backend to prefer for this layer. </p>
528
529<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a833170f92e96b3ef414b6cf6e5720d2b">IConnectableLayer</a>.</p>
530
531<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00324">324</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
532
533<p class="reference">Referenced by <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00685">BOOST_AUTO_TEST_CASE()</a>.</p>
534<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; m_BackendHint = backend;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div></div><!-- fragment -->
535</div>
536</div>
537<a id="af6cb8de21ef0da269ec9b67755ae92a0"></a>
538<h2 class="memtitle"><span class="permalink"><a href="#af6cb8de21ef0da269ec9b67755ae92a0">&#9670;&nbsp;</a></span>BeginInputSlots()</h2>
539
540<div class="memitem">
541<div class="memproto">
542<table class="mlabels">
543 <tr>
544 <td class="mlabels-left">
545 <table class="memname">
546 <tr>
547 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a>&gt;::iterator BeginInputSlots </td>
548 <td>(</td>
549 <td class="paramname"></td><td>)</td>
550 <td></td>
551 </tr>
552 </table>
553 </td>
554 <td class="mlabels-right">
555<span class="mlabels"><span class="mlabel">inline</span></span> </td>
556 </tr>
557</table>
558</div><div class="memdoc">
559
560<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00235">235</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
561
562<p class="reference">Referenced by <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>, and <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>.</p>
563<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.begin(); }</div></div><!-- fragment -->
564</div>
565</div>
566<a id="a817d4be6dd88f532d36f51748ec14185"></a>
567<h2 class="memtitle"><span class="permalink"><a href="#a817d4be6dd88f532d36f51748ec14185">&#9670;&nbsp;</a></span>BeginOutputSlots()</h2>
568
569<div class="memitem">
570<div class="memproto">
571<table class="mlabels">
572 <tr>
573 <td class="mlabels-left">
574 <table class="memname">
575 <tr>
576 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a>&gt;::iterator BeginOutputSlots </td>
577 <td>(</td>
578 <td class="paramname"></td><td>)</td>
579 <td></td>
580 </tr>
581 </table>
582 </td>
583 <td class="mlabels-right">
584<span class="mlabels"><span class="mlabel">inline</span></span> </td>
585 </tr>
586</table>
587</div><div class="memdoc">
588
589<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00239">239</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
590
591<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.xhtml#l00028">Graph::Graph()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, and <a class="el" href="_squash_equal_siblings_8hpp_source.xhtml#l00024">SquashEqualSiblingsImpl&lt; Comparable &gt;::Run()</a>.</p>
592<div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.begin(); }</div></div><!-- fragment -->
593</div>
594</div>
595<a id="ae89ff455503aa106d00bf34103d2f2e0"></a>
596<h2 class="memtitle"><span class="permalink"><a href="#ae89ff455503aa106d00bf34103d2f2e0">&#9670;&nbsp;</a></span>Clone()</h2>
597
598<div class="memitem">
599<div class="memproto">
600<table class="mlabels">
601 <tr>
602 <td class="mlabels-left">
603 <table class="memname">
604 <tr>
605 <td class="memname">virtual <a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a>* Clone </td>
606 <td>(</td>
607 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;&#160;</td>
608 <td class="paramname"><em>graph</em></td><td>)</td>
609 <td> const</td>
610 </tr>
611 </table>
612 </td>
613 <td class="mlabels-right">
614<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
615 </tr>
616</table>
617</div><div class="memdoc">
618
619<p>Creates a dynamically-allocated copy of this layer. </p>
620<dl class="params"><dt>Parameters</dt><dd>
621 <table class="params">
622 <tr><td class="paramname">graph</td><td>- The <a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> into which this <a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> is being cloned. </td></tr>
623 </table>
624 </dd>
625</dl>
626
627<p>Implemented in <a class="el" href="classarmnn_1_1_lstm_layer.xhtml#ac6b352652fb2f722e56f5fd62c57ae09">LstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.xhtml#a08edea9423b6da5da174ce5269f6e28b">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.xhtml#a4589aa51155f0836bee3c3ed85f47082">OutputLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.xhtml#a0a42b443052ed2114f9b8d8eac8bd7fd">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.xhtml#a9e2089cbab017e13409f94da71d75770">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.xhtml#aabac24cc08de52926e6bed5ffdc48dd8">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#acf7bec8b795447d4b23e0339a6561044">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#a6f56b4ee567a69e7daf2e9bd3053646c">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.xhtml#ae23412fdfc6726dc1823a18f5e84f8a9">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.xhtml#a0ad3ca858bd49041c1a5ce793312dcf8">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.xhtml#a8d3b0c5e823f04841d74a2647e6a5246">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.xhtml#a3a08acd0b68fad7b8116e35c8702d23e">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.xhtml#a5340a3dbbc84afba95fe19d1c8b5fb04">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.xhtml#a043d6257a58f7fee75b00d10006549b2">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.xhtml#abbb77b1ee8b485ccd194db4c983a6b07">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.xhtml#a284feab21ac5f71ff86b664e3c55c13d">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.xhtml#a1c96a186c37deb90b7f0dd223894fa30">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_division_layer.xhtml#a4b6e34239c98d4c6363c83e0de44c19c">DivisionLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.xhtml#ab25eba589122a31db3433851bdb77d14">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.xhtml#a3a6486888f04bdb311ab04ce752082e4">GatherLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.xhtml#a1ee115ea0c7522119fe3fa919094d856">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_maximum_layer.xhtml#a045edc8bf3182c9763f622d69dcc5f63">MaximumLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.xhtml#a12a07b8514277e7db725c483e3ab6d03">MeanLayer</a>, <a class="el" href="classarmnn_1_1_minimum_layer.xhtml#a3f18bd606ab297e5aa4178c704d25f7c">MinimumLayer</a>, <a class="el" href="classarmnn_1_1_multiplication_layer.xhtml#a84886e4e27e7b3d775f9e5f53ef792d5">MultiplicationLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.xhtml#a3664d3e6f5555f990d8615fc512b1d66">PadLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.xhtml#af5dd85c2adbf7e9f95d9c984157620a9">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.xhtml#aa00f5b65b97ab5d525bcff625e85f2dc">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.xhtml#a63f13ce7bafa57a2505563c83579d414">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.xhtml#a7283be538a107c461d94f3e64d5dda42">StandInLayer</a>, <a class="el" href="classarmnn_1_1_subtraction_layer.xhtml#a8f5e68f921977058e5e1d9287b30b9b6">SubtractionLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.xhtml#a0e4116c410fad8f9412b92919db9f709">AbsLayer</a>, <a class="el" href="classarmnn_1_1_addition_layer.xhtml#a841977670b8ce23be34e2c59b601261d">AdditionLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml#acea3e9bebacf2e28a07c81803d87049a">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.xhtml#a7c7e9daf8cb913b45086170030f387db">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.xhtml#aa516db393d0c0264fd7f5a0fe2d053b7">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.xhtml#a6a9cc35b8905d1a1819225d31a93d020">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.xhtml#a5dbcb10b38be8b8da9507005c970d601">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.xhtml#acd412ed7f96e8b8db66250bba6f3d6ba">FloorLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.xhtml#a55eb3d90093b47ba36a4c6467bbb975d">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.xhtml#adb99489b451c28860024196ef2228700">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.xhtml#a5c7d477f65ced1cd35cb3381d3579393">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.xhtml#a0df281cfac9339574aec2dce1a1631da">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.xhtml#a19f4f800a45aac9473090b85e147acc0">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.xhtml#a1ff5e058af2623a5d1a8a5e1663821bd">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.xhtml#a80b3bd0706d7333aa5f96dba6982b9a9">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.xhtml#af3fc26f602263fd5acbe5ff31e98da5b">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.xhtml#adf1236c5347b7e42a805289ac671e4e3">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.xhtml#a089160274dcda58247b8a22dd1dddfa7">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.xhtml#a4eb20df5c6b827ce8ae0d883d0cebcde">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.xhtml#a71a3d84b5820d9777ed92a570e4fb75b">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.xhtml#af58dcf66fc1339a693e4087791b6a0fc">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.xhtml#a3df177d5eaa4d11373609991930ce3cd">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.xhtml#ae4e60b5523a7a1db08e9c87915b5a88e">StackLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.xhtml#aaa60bec8ce7cb41f20dd031b5e9ece03">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.xhtml#a99c6c028dc7f110a2cc01a9e8e3966d1">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.xhtml#aa5206ffba99e78aa257977c30de096d8">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.xhtml#aeda9204b7b0de5754485ae03b1a7e55f">TransposeLayer</a>, and <a class="el" href="classarmnn_1_1_quantize_layer.xhtml#ab5045fc8d66572ecba03096ced51a994">QuantizeLayer</a>.</p>
628
629<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.xhtml#l00028">Graph::Graph()</a>.</p>
630
631</div>
632</div>
633<a id="aa10fd205c3f5469a9ecb2aa2a3ffd101"></a>
634<h2 class="memtitle"><span class="permalink"><a href="#aa10fd205c3f5469a9ecb2aa2a3ffd101">&#9670;&nbsp;</a></span>CloneBase()</h2>
635
636<div class="memitem">
637<div class="memproto">
638<table class="mlabels">
639 <tr>
640 <td class="mlabels-left">
641 <table class="memname">
642 <tr>
643 <td class="memname"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> * CloneBase </td>
644 <td>(</td>
645 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;&#160;</td>
646 <td class="paramname"><em>graph</em>, </td>
647 </tr>
648 <tr>
649 <td class="paramkey"></td>
650 <td></td>
651 <td class="paramtype">Params &amp;&amp;...&#160;</td>
652 <td class="paramname"><em>params</em>&#160;</td>
653 </tr>
654 <tr>
655 <td></td>
656 <td>)</td>
657 <td></td><td> const</td>
658 </tr>
659 </table>
660 </td>
661 <td class="mlabels-right">
662<span class="mlabels"><span class="mlabel">protected</span></span> </td>
663 </tr>
664</table>
665</div><div class="memdoc">
666
667<p class="definition">Definition at line <a class="el" href="_layer_clone_base_8hpp_source.xhtml#l00014">14</a> of file <a class="el" href="_layer_clone_base_8hpp_source.xhtml">LayerCloneBase.hpp</a>.</p>
668
669<p class="reference">References <a class="el" href="_graph_8hpp_source.xhtml#l00397">Graph::AddLayer()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00263">Layer::GetBackendId()</a>, and <a class="el" href="_layer_8hpp_source.xhtml#l00316">Layer::GetGuid()</a>.</p>
670<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>* <span class="keyword">const</span> layer = graph.AddLayer&lt;<a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&gt;(std::forward&lt;Params&gt;(params)...);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; layer-&gt;SetBackendId(<a class="code" href="classarmnn_1_1_layer.xhtml#afdb1d37740e7a083b625d669588b6a0e">GetBackendId</a>());</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; layer-&gt;SetGuid(<a class="code" href="classarmnn_1_1_layer.xhtml#a8dc12f0ee5b232d397bd18ced1a72a64">GetGuid</a>());</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> layer;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_afdb1d37740e7a083b625d669588b6a0e"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00263">Layer.hpp:263</a></div></div>
671<div class="ttc" id="namespacearmnn_xhtml_a56943a0946e5f15e5e58054b8e7a04a4"><div class="ttname"><a href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">armnn::LayerType</a></div><div class="ttdeci">LayerType</div><div class="ttdef"><b>Definition:</b> <a href="_internal_types_8hpp_source.xhtml#l00014">InternalTypes.hpp:14</a></div></div>
672<div class="ttc" id="classarmnn_1_1_layer_xhtml_a8dc12f0ee5b232d397bd18ced1a72a64"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00316">Layer.hpp:316</a></div></div>
673</div><!-- fragment -->
674</div>
675</div>
676<a id="afc3239f5fc116259bf5451964e803646"></a>
677<h2 class="memtitle"><span class="permalink"><a href="#afc3239f5fc116259bf5451964e803646">&#9670;&nbsp;</a></span>CollectQueueDescriptorInputs()</h2>
678
679<div class="memitem">
680<div class="memproto">
681<table class="mlabels">
682 <tr>
683 <td class="mlabels-left">
684 <table class="memname">
685 <tr>
686 <td class="memname">void CollectQueueDescriptorInputs </td>
687 <td>(</td>
688 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;&#160;</td>
689 <td class="paramname"><em>descriptor</em>, </td>
690 </tr>
691 <tr>
692 <td class="paramkey"></td>
693 <td></td>
694 <td class="paramtype"><a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> &amp;&#160;</td>
695 <td class="paramname"><em>info</em>&#160;</td>
696 </tr>
697 <tr>
698 <td></td>
699 <td>)</td>
700 <td></td><td> const</td>
701 </tr>
702 </table>
703 </td>
704 <td class="mlabels-right">
705<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
706 </tr>
707</table>
708</div><div class="memdoc">
709
710<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00336">336</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
711
712<p class="reference">References <a class="el" href="_workload_data_8hpp_source.xhtml#l00030">QueueDescriptor::m_Inputs</a>, and <a class="el" href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00018">WorkloadInfo::m_InputTensorInfos</a>.</p>
713<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; WorkloadDataCollector dataCollector(descriptor.m_Inputs, <a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.m_InputTensorInfos);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; CollectWorkloadInputs(dataCollector);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div></div>
714</div><!-- fragment -->
715</div>
716</div>
717<a id="a499ca5a94d0174ed21786b6994b2cd8c"></a>
718<h2 class="memtitle"><span class="permalink"><a href="#a499ca5a94d0174ed21786b6994b2cd8c">&#9670;&nbsp;</a></span>CollectQueueDescriptorOutputs()</h2>
719
720<div class="memitem">
721<div class="memproto">
722<table class="mlabels">
723 <tr>
724 <td class="mlabels-left">
725 <table class="memname">
726 <tr>
727 <td class="memname">void CollectQueueDescriptorOutputs </td>
728 <td>(</td>
729 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;&#160;</td>
730 <td class="paramname"><em>descriptor</em>, </td>
731 </tr>
732 <tr>
733 <td class="paramkey"></td>
734 <td></td>
735 <td class="paramtype"><a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> &amp;&#160;</td>
736 <td class="paramname"><em>info</em>&#160;</td>
737 </tr>
738 <tr>
739 <td></td>
740 <td>)</td>
741 <td></td><td> const</td>
742 </tr>
743 </table>
744 </td>
745 <td class="mlabels-right">
746<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
747 </tr>
748</table>
749</div><div class="memdoc">
750
751<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00343">343</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
752
753<p class="reference">References <a class="el" href="_workload_data_8hpp_source.xhtml#l00031">QueueDescriptor::m_Outputs</a>, and <a class="el" href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00019">WorkloadInfo::m_OutputTensorInfos</a>.</p>
754<div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; WorkloadDataCollector dataCollector(descriptor.m_Outputs, <a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>.m_OutputTensorInfos);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; CollectWorkloadOutputs(dataCollector);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div></div>
755</div><!-- fragment -->
756</div>
757</div>
758<a id="a3ff62126ec713a2708e5fbaa6146a7de"></a>
759<h2 class="memtitle"><span class="permalink"><a href="#a3ff62126ec713a2708e5fbaa6146a7de">&#9670;&nbsp;</a></span>CreateTensorHandles()</h2>
760
761<div class="memitem">
762<div class="memproto">
763<table class="mlabels">
764 <tr>
765 <td class="mlabels-left">
766 <table class="memname">
767 <tr>
768 <td class="memname">void CreateTensorHandles </td>
769 <td>(</td>
770 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.xhtml">TensorHandleFactoryRegistry</a> &amp;&#160;</td>
771 <td class="paramname"><em>registry</em>, </td>
772 </tr>
773 <tr>
774 <td class="paramkey"></td>
775 <td></td>
776 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_workload_factory.xhtml">IWorkloadFactory</a> &amp;&#160;</td>
777 <td class="paramname"><em>factory</em>, </td>
778 </tr>
779 <tr>
780 <td class="paramkey"></td>
781 <td></td>
782 <td class="paramtype">const bool&#160;</td>
783 <td class="paramname"><em>IsMemoryManaged</em> = <code><a class="el" href="_ref_layer_tests_8cpp.xhtml#a37f1c3ccc9fc906be85185350dd83d48">true</a></code>&#160;</td>
784 </tr>
785 <tr>
786 <td></td>
787 <td>)</td>
788 <td></td><td></td>
789 </tr>
790 </table>
791 </td>
792 <td class="mlabels-right">
793<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
794 </tr>
795</table>
796</div><div class="memdoc">
797
798<p>Reimplemented in <a class="el" href="classarmnn_1_1_splitter_layer.xhtml#a7763728321afb4eb0d1d00323c3e9121">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.xhtml#a7763728321afb4eb0d1d00323c3e9121">ConcatLayer</a>, and <a class="el" href="classarmnn_1_1_output_layer.xhtml#aa88768cc82b080dddd5737bd91683649">OutputLayer</a>.</p>
799
800<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00240">240</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
801
802<p class="reference">References <a class="el" href="_output_handler_8cpp_source.xhtml#l00023">OutputHandler::CreateTensorHandles()</a>, <a class="el" href="_tensor_handle_factory_registry_8cpp_source.xhtml#l00039">TensorHandleFactoryRegistry::GetFactory()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00308">Layer::GetNumOutputSlots()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00221">Layer::GetOutputHandler()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00312">Layer::GetOutputSlot()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00172">OutputSlot::GetTensorHandleFactoryId()</a>, and <a class="el" href="include_2armnn_2backends_2_i_tensor_handle_factory_8hpp_source.xhtml#l00022">ITensorHandleFactory::LegacyFactoryId</a>.</p>
803<div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</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.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>(); idx++)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; OutputSlot&amp; slot = <a class="code" href="classarmnn_1_1_layer.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(idx);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classarmnn_1_1_i_tensor_handle_factory.xhtml#a32f4aa6a7089d877af08928139c2c277">ITensorHandleFactory::FactoryId</a> factoryId = slot.GetTensorHandleFactoryId();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; OutputHandler&amp; handler = <a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(idx);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (factoryId == <a class="code" href="classarmnn_1_1_i_tensor_handle_factory.xhtml#a9c95f90eb40e31f629e0e2947b8bc6f9">ITensorHandleFactory::LegacyFactoryId</a>)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; handler.CreateTensorHandles(workloadFactory, IsMemoryManaged);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; ITensorHandleFactory* handleFactory = registry.GetFactory(factoryId);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; BOOST_ASSERT(handleFactory);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; handler.CreateTensorHandles(*handleFactory, IsMemoryManaged);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a1594bddc87d6477df300317658f566bb"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00308">Layer.hpp:308</a></div></div>
804<div class="ttc" id="classarmnn_1_1_layer_xhtml_af2c0edc7ea62a8baaec4d3d9b2b09256"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00221">Layer.hpp:221</a></div></div>
805<div class="ttc" id="classarmnn_1_1_i_tensor_handle_factory_xhtml_a32f4aa6a7089d877af08928139c2c277"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle_factory.xhtml#a32f4aa6a7089d877af08928139c2c277">armnn::ITensorHandleFactory::FactoryId</a></div><div class="ttdeci">std::string FactoryId</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_tensor_handle_factory_8hpp_source.xhtml#l00021">ITensorHandleFactory.hpp:21</a></div></div>
806<div class="ttc" id="classarmnn_1_1_layer_xhtml_a0e36688a43c35668d8db5257274c68fe"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00312">Layer.hpp:312</a></div></div>
807<div class="ttc" id="classarmnn_1_1_i_tensor_handle_factory_xhtml_a9c95f90eb40e31f629e0e2947b8bc6f9"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle_factory.xhtml#a9c95f90eb40e31f629e0e2947b8bc6f9">armnn::ITensorHandleFactory::LegacyFactoryId</a></div><div class="ttdeci">static const FactoryId LegacyFactoryId</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_tensor_handle_factory_8hpp_source.xhtml#l00022">ITensorHandleFactory.hpp:22</a></div></div>
808</div><!-- fragment -->
809</div>
810</div>
811<a id="a08d1e10a45f15cd0bd02557be35a3864"></a>
812<h2 class="memtitle"><span class="permalink"><a href="#a08d1e10a45f15cd0bd02557be35a3864">&#9670;&nbsp;</a></span>CreateWorkload()</h2>
813
814<div class="memitem">
815<div class="memproto">
816<table class="mlabels">
817 <tr>
818 <td class="mlabels-left">
819 <table class="memname">
820 <tr>
821 <td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classarmnn_1_1_i_workload.xhtml">IWorkload</a>&gt; CreateWorkload </td>
822 <td>(</td>
823 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_workload_factory.xhtml">IWorkloadFactory</a> &amp;&#160;</td>
824 <td class="paramname"><em>factory</em></td><td>)</td>
825 <td> const</td>
826 </tr>
827 </table>
828 </td>
829 <td class="mlabels-right">
830<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
831 </tr>
832</table>
833</div><div class="memdoc">
834
835<p>Implemented in <a class="el" href="classarmnn_1_1_lstm_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">LstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_division_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DivisionLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_gather_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">GatherLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_maximum_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MaximumLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MeanLayer</a>, <a class="el" href="classarmnn_1_1_minimum_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MinimumLayer</a>, <a class="el" href="classarmnn_1_1_multiplication_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MultiplicationLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">PadLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">StandInLayer</a>, <a class="el" href="classarmnn_1_1_subtraction_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SubtractionLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">AbsLayer</a>, <a class="el" href="classarmnn_1_1_addition_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">AdditionLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">FloorLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">OutputLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_quantize_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">QuantizeLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">StackLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">ActivationLayer</a>, and <a class="el" href="classarmnn_1_1_transpose_layer.xhtml#adfa912d0c4c6c00f1af2cbfa799572b7">TransposeLayer</a>.</p>
836
837</div>
838</div>
839<a id="a9752e12d6b79e18da1a25f76159d2a72"></a>
840<h2 class="memtitle"><span class="permalink"><a href="#a9752e12d6b79e18da1a25f76159d2a72">&#9670;&nbsp;</a></span>EndInputSlots()</h2>
841
842<div class="memitem">
843<div class="memproto">
844<table class="mlabels">
845 <tr>
846 <td class="mlabels-left">
847 <table class="memname">
848 <tr>
849 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a>&gt;::iterator EndInputSlots </td>
850 <td>(</td>
851 <td class="paramname"></td><td>)</td>
852 <td></td>
853 </tr>
854 </table>
855 </td>
856 <td class="mlabels-right">
857<span class="mlabels"><span class="mlabel">inline</span></span> </td>
858 </tr>
859</table>
860</div><div class="memdoc">
861
862<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00236">236</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
863
864<p class="reference">Referenced by <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>, and <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>.</p>
865<div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.end(); }</div></div><!-- fragment -->
866</div>
867</div>
868<a id="a55f76d98fcd2f5cdac3e2b14536cb7ab"></a>
869<h2 class="memtitle"><span class="permalink"><a href="#a55f76d98fcd2f5cdac3e2b14536cb7ab">&#9670;&nbsp;</a></span>EndOutputSlots()</h2>
870
871<div class="memitem">
872<div class="memproto">
873<table class="mlabels">
874 <tr>
875 <td class="mlabels-left">
876 <table class="memname">
877 <tr>
878 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a>&gt;::iterator EndOutputSlots </td>
879 <td>(</td>
880 <td class="paramname"></td><td>)</td>
881 <td></td>
882 </tr>
883 </table>
884 </td>
885 <td class="mlabels-right">
886<span class="mlabels"><span class="mlabel">inline</span></span> </td>
887 </tr>
888</table>
889</div><div class="memdoc">
890
891<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00240">240</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
892
893<p class="reference">Referenced by <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, and <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>.</p>
894<div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.end(); }</div></div><!-- fragment -->
895</div>
896</div>
897<a id="a6ff80e440308295056b57e2adaa42888"></a>
898<h2 class="memtitle"><span class="permalink"><a href="#a6ff80e440308295056b57e2adaa42888">&#9670;&nbsp;</a></span>GetBackendHint()</h2>
899
900<div class="memitem">
901<div class="memproto">
902<table class="mlabels">
903 <tr>
904 <td class="mlabels-left">
905 <table class="memname">
906 <tr>
907 <td class="memname"><a class="el" href="classarmnn_1_1_optional.xhtml">Optional</a>&lt;<a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a>&gt; GetBackendHint </td>
908 <td>(</td>
909 <td class="paramname"></td><td>)</td>
910 <td> const</td>
911 </tr>
912 </table>
913 </td>
914 <td class="mlabels-right">
915<span class="mlabels"><span class="mlabel">inline</span></span> </td>
916 </tr>
917</table>
918</div><div class="memdoc">
919
920<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00328">328</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
921<div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{ <span class="keywordflow">return</span> m_BackendHint; }</div></div><!-- fragment -->
922</div>
923</div>
924<a id="afdb1d37740e7a083b625d669588b6a0e"></a>
925<h2 class="memtitle"><span class="permalink"><a href="#afdb1d37740e7a083b625d669588b6a0e">&#9670;&nbsp;</a></span>GetBackendId()</h2>
926
927<div class="memitem">
928<div class="memproto">
929<table class="mlabels">
930 <tr>
931 <td class="mlabels-left">
932 <table class="memname">
933 <tr>
934 <td class="memname">const <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a>&amp; GetBackendId </td>
935 <td>(</td>
936 <td class="paramname"></td><td>)</td>
937 <td> const</td>
938 </tr>
939 </table>
940 </td>
941 <td class="mlabels-right">
942<span class="mlabels"><span class="mlabel">inline</span></span> </td>
943 </tr>
944</table>
945</div><div class="memdoc">
946
947<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00263">263</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
948
949<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.xhtml#l00263">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00428">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00149">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_subgraph_view_tests_8cpp_source.xhtml#l01337">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00747">armnn::CalculateEdgeStrategy()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00638">armnn::CalculateSlotOption()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00546">armnn::CalculateSlotOptionForInput()</a>, <a class="el" href="_layer_clone_base_8hpp_source.xhtml#l00014">Layer::CloneBase()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00277">LoadedNetwork::GetOutputTensorInfo()</a>, and <a class="el" href="_network_8cpp_source.xhtml#l00824">armnn::SelectTensorHandleStrategy()</a>.</p>
950<div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{ <span class="keywordflow">return</span> m_BackendId; }</div></div><!-- fragment -->
951</div>
952</div>
953<a id="afbeac2d77ecaadc3e303a163b4146961"></a>
954<h2 class="memtitle"><span class="permalink"><a href="#afbeac2d77ecaadc3e303a163b4146961">&#9670;&nbsp;</a></span>GetConstantTensorsByRef()</h2>
955
956<div class="memitem">
957<div class="memproto">
958<table class="mlabels">
959 <tr>
960 <td class="mlabels-left">
961 <table class="memname">
962 <tr>
963 <td class="memname">virtual <a class="el" href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">ConstantTensors</a> GetConstantTensorsByRef </td>
964 <td>(</td>
965 <td class="paramname"></td><td>)</td>
966 <td></td>
967 </tr>
968 </table>
969 </td>
970 <td class="mlabels-right">
971<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
972 </tr>
973</table>
974</div><div class="memdoc">
975
976<p>Reimplemented in <a class="el" href="classarmnn_1_1_lstm_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">LstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.xhtml#a8107df0f1cbbd67eaf174d9459f3669d">ConstantLayer</a>, and <a class="el" href="classarmnn_1_1_detection_post_process_layer.xhtml#abe659a5afa7523f5dbc04bcba9b31f1a">DetectionPostProcessLayer</a>.</p>
977
978<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00364">364</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
979<div class="fragment"><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;{<span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">ConstantTensors</a>(); };</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a585d59ec610af46a76487fd6c1c55ac1"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#a585d59ec610af46a76487fd6c1c55ac1">armnn::Layer::ConstantTensors</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; std::unique_ptr&lt; ScopedCpuTensorHandle &gt; &gt;&gt; ConstantTensors</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00363">Layer.hpp:363</a></div></div>
980</div><!-- fragment -->
981</div>
982</div>
983<a id="aea909c7327109228ef618d459015def3"></a>
984<h2 class="memtitle"><span class="permalink"><a href="#aea909c7327109228ef618d459015def3">&#9670;&nbsp;</a></span>GetDataType()</h2>
985
986<div class="memitem">
987<div class="memproto">
988 <table class="memname">
989 <tr>
990 <td class="memname"><a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> GetDataType </td>
991 <td>(</td>
992 <td class="paramname"></td><td>)</td>
993 <td> const</td>
994 </tr>
995 </table>
996</div><div class="memdoc">
997
998<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00273">273</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
999
1000<p class="reference">References <a class="el" href="_layer_8hpp_source.xhtml#l00199">InputSlot::GetConnection()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00310">Layer::GetInputSlot()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00307">Layer::GetNumInputSlots()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00312">Layer::GetOutputSlot()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.xhtml#a9943775a364fc4ab53b85ac88f311886">IOutputSlot::GetTensorInfo()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00063">OutputSlot::GetTensorInfo()</a>.</p>
1001
1002<p class="reference">Referenced by <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00163">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_convert_constants_8hpp_source.xhtml#l00086">IsFloat32Layer::Test()</a>, and <a class="el" href="_convert_constants_8hpp_source.xhtml#l00094">IsFloat16Layer::Test()</a>.</p>
1003<div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() &gt; 0) <span class="comment">// Ignore the input layer.</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(0).<a class="code" href="classarmnn_1_1_input_slot.xhtml#a3153abb7c0c0a84629079b2fac7db54f">GetConnection</a>()-&gt;<a class="code" href="classarmnn_1_1_i_output_slot.xhtml#a9943775a364fc4ab53b85ac88f311886">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><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.xhtml#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.xhtml#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_abc0660dc440c8a285b456c9ef6383c26"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00307">Layer.hpp:307</a></div></div>
1004<div class="ttc" id="classarmnn_1_1_input_slot_xhtml_a3153abb7c0c0a84629079b2fac7db54f"><div class="ttname"><a href="classarmnn_1_1_input_slot.xhtml#a3153abb7c0c0a84629079b2fac7db54f">armnn::InputSlot::GetConnection</a></div><div class="ttdeci">const IOutputSlot * GetConnection() const override</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00199">Layer.hpp:199</a></div></div>
1005<div class="ttc" id="classarmnn_1_1_layer_xhtml_acf8b8e23bf647836592982f97088d375"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00310">Layer.hpp:310</a></div></div>
1006<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00095">Tensor.hpp:95</a></div></div>
1007<div class="ttc" id="classarmnn_1_1_layer_xhtml_a0e36688a43c35668d8db5257274c68fe"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00312">Layer.hpp:312</a></div></div>
1008<div class="ttc" id="classarmnn_1_1_i_output_slot_xhtml_a9943775a364fc4ab53b85ac88f311886"><div class="ttname"><a href="classarmnn_1_1_i_output_slot.xhtml#a9943775a364fc4ab53b85ac88f311886">armnn::IOutputSlot::GetTensorInfo</a></div><div class="ttdeci">virtual const TensorInfo &amp; GetTensorInfo() const =0</div></div>
1009<div class="ttc" id="classarmnn_1_1_output_slot_xhtml_ada2ad7d1caeeb4ef6195c8925fad6a65"><div class="ttname"><a href="classarmnn_1_1_output_slot.xhtml#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.xhtml#l00063">Layer.cpp:63</a></div></div>
1010</div><!-- fragment -->
1011</div>
1012</div>
1013<a id="a8dc12f0ee5b232d397bd18ced1a72a64"></a>
1014<h2 class="memtitle"><span class="permalink"><a href="#a8dc12f0ee5b232d397bd18ced1a72a64">&#9670;&nbsp;</a></span>GetGuid()</h2>
1015
1016<div class="memitem">
1017<div class="memproto">
1018<table class="mlabels">
1019 <tr>
1020 <td class="mlabels-left">
1021 <table class="memname">
1022 <tr>
1023 <td class="memname"><a class="el" href="namespacearmnn.xhtml#afad4088a9a058114ee5f87246f87bf49">LayerGuid</a> GetGuid </td>
1024 <td>(</td>
1025 <td class="paramname"></td><td>)</td>
1026 <td> const</td>
1027 </tr>
1028 </table>
1029 </td>
1030 <td class="mlabels-right">
1031<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">final</span><span class="mlabel">virtual</span></span> </td>
1032 </tr>
1033</table>
1034</div><div class="memdoc">
1035
1036<p>Returns the unique id of the layer. </p>
1037
1038<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#afb5e65c770f6cee222db8af7581541a6">IConnectableLayer</a>.</p>
1039
1040<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00316">316</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1041
1042<p class="reference">Referenced by <a class="el" href="_layer_clone_base_8hpp_source.xhtml#l00014">Layer::CloneBase()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00020">DebugLayer::CreateWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00162">OutputSlot::GetOwningLayerGuid()</a>, <a class="el" href="_quantizer_visitor_8cpp_source.xhtml#l00014">QuantizerVisitor::QuantizerVisitor()</a>, and <a class="el" href="_graph_8cpp_source.xhtml#l00081">Graph::SerializeToDot()</a>.</p>
1043<div class="fragment"><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;{ <span class="keywordflow">return</span> m_Guid; }</div></div><!-- fragment -->
1044</div>
1045</div>
1046<a id="acf8b8e23bf647836592982f97088d375"></a>
1047<h2 class="memtitle"><span class="permalink"><a href="#acf8b8e23bf647836592982f97088d375">&#9670;&nbsp;</a></span>GetInputSlot() <span class="overload">[1/2]</span></h2>
1048
1049<div class="memitem">
1050<div class="memproto">
1051<table class="mlabels">
1052 <tr>
1053 <td class="mlabels-left">
1054 <table class="memname">
1055 <tr>
1056 <td class="memname">const <a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a>&amp; GetInputSlot </td>
1057 <td>(</td>
1058 <td class="paramtype">unsigned int&#160;</td>
1059 <td class="paramname"><em>index</em></td><td>)</td>
1060 <td> const</td>
1061 </tr>
1062 </table>
1063 </td>
1064 <td class="mlabels-right">
1065<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1066 </tr>
1067</table>
1068</div><div class="memdoc">
1069
1070<p>Get a const input slot handle by slot index. </p>
1071
1072<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer</a>.</p>
1073
1074<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00310">310</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1075
1076<p class="reference">Referenced by <a class="el" href="_graph_tests_8cpp_source.xhtml#l00043">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_graph_tests_8cpp_source.xhtml#l00552">BOOST_FIXTURE_TEST_CASE()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00256">CreateConvolution2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00306">CreateDepthwiseConvolution2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00448">CreateGatherGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00356">CreatePooling2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00404">CreateResizeBilinearGraph()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00020">DebugLayer::CreateWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00273">Layer::GetDataType()</a>, <a class="el" href="_graph_8cpp_source.xhtml#l00028">Graph::Graph()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00020">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_workload_factory_8cpp_source.xhtml#l00045">IWorkloadFactory::IsLayerSupported()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.xhtml#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.xhtml#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_fold_pad_into_convolution2d_8hpp_source.xhtml#l00019">FoldPadIntoConvolution2dImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.xhtml#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.xhtml#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.xhtml#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_optimize_inverse_permutes_8hpp_source.xhtml#l00022">OptimizeInversePermutesImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00029">DepthwiseConvolution2dLayer::SerializeLayerParameters()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00029">Convolution2dLayer::SerializeLayerParameters()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.xhtml#l00051">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00032">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00031">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00043">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00032">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00032">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.xhtml#l00044">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00036">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00036">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00032">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00037">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.xhtml#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00043">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.xhtml#l00103">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00032">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.xhtml#l00056">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00033">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00033">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.xhtml#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.xhtml#l00032">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00061">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00030">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00032">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00032">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00032">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00032">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00032">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.xhtml#l00041">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00033">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.xhtml#l00043">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.xhtml#l00076">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00072">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00097">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.xhtml#l00062">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.xhtml#l00097">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.xhtml#l00060">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00122">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.xhtml#l00058">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.xhtml#l00064">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.xhtml#l00069">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00115">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00244">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00051">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_output_layer_8cpp_source.xhtml#l00032">OutputLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00094">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00160">LstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00338">Layer::VerifyLayerConnections()</a>.</p>
1077<div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.at(index); }</div></div><!-- fragment -->
1078</div>
1079</div>
1080<a id="a1b50eb1358cdf382f4bc3fc8849f8e8e"></a>
1081<h2 class="memtitle"><span class="permalink"><a href="#a1b50eb1358cdf382f4bc3fc8849f8e8e">&#9670;&nbsp;</a></span>GetInputSlot() <span class="overload">[2/2]</span></h2>
1082
1083<div class="memitem">
1084<div class="memproto">
1085<table class="mlabels">
1086 <tr>
1087 <td class="mlabels-left">
1088 <table class="memname">
1089 <tr>
1090 <td class="memname"><a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a>&amp; GetInputSlot </td>
1091 <td>(</td>
1092 <td class="paramtype">unsigned int&#160;</td>
1093 <td class="paramname"><em>index</em></td><td>)</td>
1094 <td></td>
1095 </tr>
1096 </table>
1097 </td>
1098 <td class="mlabels-right">
1099<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1100 </tr>
1101</table>
1102</div><div class="memdoc">
1103
1104<p>Get the input slot handle by slot index. </p>
1105
1106<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#ae3fd4f909aec6a9e150ba82dfad4017f">IConnectableLayer</a>.</p>
1107
1108<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00311">311</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1109<div class="fragment"><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots.at(index); }</div></div><!-- fragment -->
1110</div>
1111</div>
1112<a id="af5f530544d09a44d726f24702b67b35b"></a>
1113<h2 class="memtitle"><span class="permalink"><a href="#af5f530544d09a44d726f24702b67b35b">&#9670;&nbsp;</a></span>GetInputSlots()</h2>
1114
1115<div class="memitem">
1116<div class="memproto">
1117<table class="mlabels">
1118 <tr>
1119 <td class="mlabels-left">
1120 <table class="memname">
1121 <tr>
1122 <td class="memname">const std::vector&lt;<a class="el" href="classarmnn_1_1_input_slot.xhtml">InputSlot</a>&gt;&amp; GetInputSlots </td>
1123 <td>(</td>
1124 <td class="paramname"></td><td>)</td>
1125 <td> const</td>
1126 </tr>
1127 </table>
1128 </td>
1129 <td class="mlabels-right">
1130<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1131 </tr>
1132</table>
1133</div><div class="memdoc">
1134
1135<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00231">231</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1136
1137<p class="reference">Referenced by <a class="el" href="_subgraph_view_tests_8cpp_source.xhtml#l01122">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00021">SplitterLayer::CreateWorkload()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00412">LoadedNetwork::EnqueueWorkload()</a>, <a class="el" href="_subgraph_view_selector_8cpp_source.xhtml#l00262">armnn::ForEachLayerInput()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00288">Layer::GetPriority()</a>, <a class="el" href="_workload_factory_8cpp_source.xhtml#l00045">IWorkloadFactory::IsLayerSupported()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00213">Layer::Layer()</a>.</p>
1138<div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{ <span class="keywordflow">return</span> m_InputSlots; }</div></div><!-- fragment -->
1139</div>
1140</div>
1141<a id="a7ddf0cf6f620d59c10e63495ace795d0"></a>
1142<h2 class="memtitle"><span class="permalink"><a href="#a7ddf0cf6f620d59c10e63495ace795d0">&#9670;&nbsp;</a></span>GetName()</h2>
1143
1144<div class="memitem">
1145<div class="memproto">
1146<table class="mlabels">
1147 <tr>
1148 <td class="mlabels-left">
1149 <table class="memname">
1150 <tr>
1151 <td class="memname">const char* GetName </td>
1152 <td>(</td>
1153 <td class="paramname"></td><td>)</td>
1154 <td> const</td>
1155 </tr>
1156 </table>
1157 </td>
1158 <td class="mlabels-right">
1159<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1160 </tr>
1161</table>
1162</div><div class="memdoc">
1163
1164<p>Returns the name of the layer. </p>
1165
1166<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#afcc1c3a20bd2860e0ddd21674389246f">IConnectableLayer</a>.</p>
1167
1168<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00305">305</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1169
1170<p class="reference">Referenced by <a class="el" href="_addition_layer_8cpp_source.xhtml#l00033">AdditionLayer::Accept()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00044">QuantizeLayer::Accept()</a>, <a class="el" href="_multiplication_layer_8cpp_source.xhtml#l00033">MultiplicationLayer::Accept()</a>, <a class="el" href="_division_layer_8cpp_source.xhtml#l00033">DivisionLayer::Accept()</a>, <a class="el" href="_maximum_layer_8cpp_source.xhtml#l00032">MaximumLayer::Accept()</a>, <a class="el" href="_subtraction_layer_8cpp_source.xhtml#l00033">SubtractionLayer::Accept()</a>, <a class="el" href="_minimum_layer_8cpp_source.xhtml#l00033">MinimumLayer::Accept()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00045">ActivationLayer::Accept()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00047">AbsLayer::Accept()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00046">NormalizationLayer::Accept()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00046">FloorLayer::Accept()</a>, <a class="el" href="_input_layer_8cpp_source.xhtml#l00038">InputLayer::Accept()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00046">InstanceNormalizationLayer::Accept()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00047">RsqrtLayer::Accept()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00046">SoftmaxLayer::Accept()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00046">L2NormalizationLayer::Accept()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00054">SwitchLayer::Accept()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00047">DequantizeLayer::Accept()</a>, <a class="el" href="_pad_layer_8cpp_source.xhtml#l00044">PadLayer::Accept()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00062">GatherLayer::Accept()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00045">LogSoftmaxLayer::Accept()</a>, <a class="el" href="_mean_layer_8cpp_source.xhtml#l00102">MeanLayer::Accept()</a>, <a class="el" href="_merge_layer_8cpp_source.xhtml#l00060">MergeLayer::Accept()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00086">ArgMinMaxLayer::Accept()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.xhtml#l00075">DetectionPostProcessLayer::Accept()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.xhtml#l00117">Pooling2dLayer::Accept()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.xhtml#l00057">ElementwiseUnaryLayer::Accept()</a>, <a class="el" href="_resize_layer_8cpp_source.xhtml#l00070">ResizeLayer::Accept()</a>, <a class="el" href="_slice_layer_8cpp_source.xhtml#l00061">SliceLayer::Accept()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.xhtml#l00095">BatchToSpaceNdLayer::Accept()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00095">StackLayer::Accept()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.xhtml#l00090">StridedSliceLayer::Accept()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00115">PreluLayer::Accept()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.xhtml#l00084">SpaceToBatchNdLayer::Accept()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.xhtml#l00077">SpaceToDepthLayer::Accept()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.xhtml#l00075">DepthToSpaceLayer::Accept()</a>, <a class="el" href="_comparison_layer_8cpp_source.xhtml#l00074">ComparisonLayer::Accept()</a>, <a class="el" href="_stand_in_layer_8cpp_source.xhtml#l00043">StandInLayer::Accept()</a>, <a class="el" href="_constant_layer_8cpp_source.xhtml#l00053">ConstantLayer::Accept()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00071">BatchNormalizationLayer::Accept()</a>, <a class="el" href="_output_layer_8cpp_source.xhtml#l00039">OutputLayer::Accept()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.xhtml#l00120">TransposeConvolution2dLayer::Accept()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.xhtml#l00088">FullyConnectedLayer::Accept()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00147">DepthwiseConvolution2dLayer::Accept()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00139">Convolution2dLayer::Accept()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00270">ConcatLayer::Accept()</a>, <a class="el" href="_reshape_layer_8cpp_source.xhtml#l00053">ReshapeLayer::Accept()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00164">SplitterLayer::Accept()</a>, <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00057">TransposeLayer::Accept()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00057">PermuteLayer::Accept()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00168">QuantizedLstmLayer::Accept()</a>, <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00299">LstmLayer::Accept()</a>, <a class="el" href="_graph_8cpp_source.xhtml#l00263">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_subgraph_view_tests_8cpp_source.xhtml#l00566">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_tf_parser_8cpp_source.xhtml#l00421">armnnTfParser::CalcPadding()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00026">QuantizeLayer::Clone()</a>, <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00031">TransposeLayer::Clone()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00026">ActivationLayer::Clone()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00027">NormalizationLayer::Clone()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00031">PermuteLayer::Clone()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.xhtml#l00033">Pooling2dLayer::Clone()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.xhtml#l00027">FakeQuantizationLayer::Clone()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00028">StackLayer::Clone()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00027">FloorLayer::Clone()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00022">MemImportLayer::Clone()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00028">AbsLayer::Clone()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00027">ConvertFp32ToFp16Layer::Clone()</a>, <a class="el" href="_reshape_layer_8cpp_source.xhtml#l00028">ReshapeLayer::Clone()</a>, <a class="el" href="_resize_layer_8cpp_source.xhtml#l00032">ResizeLayer::Clone()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00027">SoftmaxLayer::Clone()</a>, <a class="el" href="_merge_layer_8cpp_source.xhtml#l00025">MergeLayer::Clone()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00027">L2NormalizationLayer::Clone()</a>, <a class="el" href="_slice_layer_8cpp_source.xhtml#l00032">SliceLayer::Clone()</a>, <a class="el" href="_input_layer_8cpp_source.xhtml#l00026">InputLayer::Clone()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00027">InstanceNormalizationLayer::Clone()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.xhtml#l00038">BatchToSpaceNdLayer::Clone()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00032">DebugLayer::Clone()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.xhtml#l00040">StridedSliceLayer::Clone()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00028">RsqrtLayer::Clone()</a>, <a class="el" href="_addition_layer_8cpp_source.xhtml#l00028">AdditionLayer::Clone()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00025">SwitchLayer::Clone()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00027">DequantizeLayer::Clone()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00022">MemCopyLayer::Clone()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00028">ConvertFp16ToFp32Layer::Clone()</a>, <a class="el" href="_stand_in_layer_8cpp_source.xhtml#l00026">StandInLayer::Clone()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00028">PreluLayer::Clone()</a>, <a class="el" href="_multiplication_layer_8cpp_source.xhtml#l00028">MultiplicationLayer::Clone()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00027">GatherLayer::Clone()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00030">ArgMinMaxLayer::Clone()</a>, <a class="el" href="_pad_layer_8cpp_source.xhtml#l00030">PadLayer::Clone()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.xhtml#l00036">SpaceToDepthLayer::Clone()</a>, <a class="el" href="_division_layer_8cpp_source.xhtml#l00028">DivisionLayer::Clone()</a>, <a class="el" href="_minimum_layer_8cpp_source.xhtml#l00028">MinimumLayer::Clone()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.xhtml#l00029">ElementwiseUnaryLayer::Clone()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.xhtml#l00036">SpaceToBatchNdLayer::Clone()</a>, <a class="el" href="_subtraction_layer_8cpp_source.xhtml#l00028">SubtractionLayer::Clone()</a>, <a class="el" href="_maximum_layer_8cpp_source.xhtml#l00027">MaximumLayer::Clone()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00027">LogSoftmaxLayer::Clone()</a>, <a class="el" href="_mean_layer_8cpp_source.xhtml#l00031">MeanLayer::Clone()</a>, <a class="el" href="_comparison_layer_8cpp_source.xhtml#l00029">ComparisonLayer::Clone()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.xhtml#l00034">DepthToSpaceLayer::Clone()</a>, <a class="el" href="_constant_layer_8cpp_source.xhtml#l00028">ConstantLayer::Clone()</a>, <a class="el" href="_pre_compiled_layer_8cpp_source.xhtml#l00024">PreCompiledLayer::Clone()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.xhtml#l00030">DetectionPostProcessLayer::Clone()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.xhtml#l00043">TransposeConvolution2dLayer::Clone()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.xhtml#l00038">FullyConnectedLayer::Clone()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00068">DepthwiseConvolution2dLayer::Clone()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00066">Convolution2dLayer::Clone()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00149">ConcatLayer::Clone()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00123">SplitterLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00039">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_output_layer_8cpp_source.xhtml#l00027">OutputLayer::Clone()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00045">QuantizedLstmLayer::Clone()</a>, <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00075">LstmLayer::Clone()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.xhtml#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.xhtml#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_fold_pad_into_convolution2d_8hpp_source.xhtml#l00019">FoldPadIntoConvolution2dImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.xhtml#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.xhtml#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, and <a class="el" href="_observable_8cpp_source.xhtml#l00016">ErasedLayerNamesObservable::Update()</a>.</p>
1171<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{ <span class="keywordflow">return</span> m_LayerName.c_str(); }</div></div><!-- fragment -->
1172</div>
1173</div>
1174<a id="a9a97cb6d32661a57fc33bd29b8e41ff4"></a>
1175<h2 class="memtitle"><span class="permalink"><a href="#a9a97cb6d32661a57fc33bd29b8e41ff4">&#9670;&nbsp;</a></span>GetNameStr()</h2>
1176
1177<div class="memitem">
1178<div class="memproto">
1179<table class="mlabels">
1180 <tr>
1181 <td class="mlabels-left">
1182 <table class="memname">
1183 <tr>
1184 <td class="memname">const std::string&amp; GetNameStr </td>
1185 <td>(</td>
1186 <td class="paramname"></td><td>)</td>
1187 <td> const</td>
1188 </tr>
1189 </table>
1190 </td>
1191 <td class="mlabels-right">
1192<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1193 </tr>
1194</table>
1195</div><div class="memdoc">
1196
1197<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00216">216</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1198
1199<p class="reference">Referenced by <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00537">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00114">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00020">DebugLayer::CreateWorkload()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00277">LoadedNetwork::GetOutputTensorInfo()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00371">Layer::InferOutputShapes()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00042">IsConnected()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00338">Layer::VerifyLayerConnections()</a>.</p>
1200<div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> m_LayerName;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div></div><!-- fragment -->
1201</div>
1202</div>
1203<a id="abc0660dc440c8a285b456c9ef6383c26"></a>
1204<h2 class="memtitle"><span class="permalink"><a href="#abc0660dc440c8a285b456c9ef6383c26">&#9670;&nbsp;</a></span>GetNumInputSlots()</h2>
1205
1206<div class="memitem">
1207<div class="memproto">
1208<table class="mlabels">
1209 <tr>
1210 <td class="mlabels-left">
1211 <table class="memname">
1212 <tr>
1213 <td class="memname">unsigned int GetNumInputSlots </td>
1214 <td>(</td>
1215 <td class="paramname"></td><td>)</td>
1216 <td> const</td>
1217 </tr>
1218 </table>
1219 </td>
1220 <td class="mlabels-right">
1221<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1222 </tr>
1223</table>
1224</div><div class="memdoc">
1225
1226<p>Returns the number of connectable input slots. </p>
1227
1228<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer</a>.</p>
1229
1230<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00307">307</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1231
1232<p class="reference">Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00032">CheckNumberOfInputSlot()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00412">LoadedNetwork::EnqueueWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00273">Layer::GetDataType()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00371">Layer::InferOutputShapes()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00020">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00061">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00244">ConcatLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00338">Layer::VerifyLayerConnections()</a>.</p>
1233<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</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></div><!-- fragment -->
1234</div>
1235</div>
1236<a id="a1594bddc87d6477df300317658f566bb"></a>
1237<h2 class="memtitle"><span class="permalink"><a href="#a1594bddc87d6477df300317658f566bb">&#9670;&nbsp;</a></span>GetNumOutputSlots()</h2>
1238
1239<div class="memitem">
1240<div class="memproto">
1241<table class="mlabels">
1242 <tr>
1243 <td class="mlabels-left">
1244 <table class="memname">
1245 <tr>
1246 <td class="memname">unsigned int GetNumOutputSlots </td>
1247 <td>(</td>
1248 <td class="paramname"></td><td>)</td>
1249 <td> const</td>
1250 </tr>
1251 </table>
1252 </td>
1253 <td class="mlabels-right">
1254<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1255 </tr>
1256</table>
1257</div><div class="memdoc">
1258
1259<p>Returns the number of connectable output slots. </p>
1260
1261<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#ac2dac3b61c94de52093616be4ab17f8d">IConnectableLayer</a>.</p>
1262
1263<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00308">308</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1264
1265<p class="reference">Referenced by <a class="el" href="_subgraph_view_tests_8cpp_source.xhtml#l01122">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_tf_parser_8cpp_source.xhtml#l00421">armnnTfParser::CalcPadding()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00125">OutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00037">CheckNumberOfOutputSlot()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00114">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00240">Layer::CreateTensorHandles()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00412">LoadedNetwork::EnqueueWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00371">Layer::InferOutputShapes()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00020">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00824">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00030">SwitchLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_detection_post_process_layer_8cpp_source.xhtml#l00037">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>.</p>
1266<div class="fragment"><div class="line"><a name="l00308"></a><span class="lineno"> 308</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></div><!-- fragment -->
1267</div>
1268</div>
1269<a id="af2c0edc7ea62a8baaec4d3d9b2b09256"></a>
1270<h2 class="memtitle"><span class="permalink"><a href="#af2c0edc7ea62a8baaec4d3d9b2b09256">&#9670;&nbsp;</a></span>GetOutputHandler() <span class="overload">[1/2]</span></h2>
1271
1272<div class="memitem">
1273<div class="memproto">
1274<table class="mlabels">
1275 <tr>
1276 <td class="mlabels-left">
1277 <table class="memname">
1278 <tr>
1279 <td class="memname">const <a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a>&amp; GetOutputHandler </td>
1280 <td>(</td>
1281 <td class="paramtype">unsigned int&#160;</td>
1282 <td class="paramname"><em>i</em> = <code>0</code></td><td>)</td>
1283 <td> const</td>
1284 </tr>
1285 </table>
1286 </td>
1287 <td class="mlabels-right">
1288<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1289 </tr>
1290</table>
1291</div><div class="memdoc">
1292
1293<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00221">221</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1294
1295<p class="reference">Referenced by <a class="el" href="_move_permute_up_tests_8cpp_source.xhtml#l00015">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00240">Layer::CreateTensorHandles()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00412">LoadedNetwork::EnqueueWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00020">InputSlot::Insert()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.xhtml#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.xhtml#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.xhtml#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_fold_pad_into_convolution2d_8hpp_source.xhtml#l00019">FoldPadIntoConvolution2dImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.xhtml#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>, and <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>.</p>
1296<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_layer.xhtml#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a>[i];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_aa44d91037bba52ba0dec6577509ade3b"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00371">Layer.hpp:371</a></div></div>
1297</div><!-- fragment -->
1298</div>
1299</div>
1300<a id="a1d4e05c17647232c514cfe58ca80744a"></a>
1301<h2 class="memtitle"><span class="permalink"><a href="#a1d4e05c17647232c514cfe58ca80744a">&#9670;&nbsp;</a></span>GetOutputHandler() <span class="overload">[2/2]</span></h2>
1302
1303<div class="memitem">
1304<div class="memproto">
1305<table class="mlabels">
1306 <tr>
1307 <td class="mlabels-left">
1308 <table class="memname">
1309 <tr>
1310 <td class="memname"><a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a>&amp; GetOutputHandler </td>
1311 <td>(</td>
1312 <td class="paramtype">unsigned int&#160;</td>
1313 <td class="paramname"><em>i</em> = <code>0</code></td><td>)</td>
1314 <td></td>
1315 </tr>
1316 </table>
1317 </td>
1318 <td class="mlabels-right">
1319<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1320 </tr>
1321</table>
1322</div><div class="memdoc">
1323
1324<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00226">226</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1325<div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</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.xhtml#a5e5ae420d199a0bccae5139d38c30205">Layer</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a>(i));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a5e5ae420d199a0bccae5139d38c30205"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00213">Layer.cpp:213</a></div></div>
1326<div class="ttc" id="classarmnn_1_1_layer_xhtml_af2c0edc7ea62a8baaec4d3d9b2b09256"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00221">Layer.hpp:221</a></div></div>
1327</div><!-- fragment -->
1328</div>
1329</div>
1330<a id="a0e36688a43c35668d8db5257274c68fe"></a>
1331<h2 class="memtitle"><span class="permalink"><a href="#a0e36688a43c35668d8db5257274c68fe">&#9670;&nbsp;</a></span>GetOutputSlot() <span class="overload">[1/2]</span></h2>
1332
1333<div class="memitem">
1334<div class="memproto">
1335<table class="mlabels">
1336 <tr>
1337 <td class="mlabels-left">
1338 <table class="memname">
1339 <tr>
1340 <td class="memname">const <a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a>&amp; GetOutputSlot </td>
1341 <td>(</td>
1342 <td class="paramtype">unsigned int&#160;</td>
1343 <td class="paramname"><em>index</em> = <code>0</code></td><td>)</td>
1344 <td> const</td>
1345 </tr>
1346 </table>
1347 </td>
1348 <td class="mlabels-right">
1349<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1350 </tr>
1351</table>
1352</div><div class="memdoc">
1353
1354<p>Get the const output slot handle by slot index. </p>
1355
1356<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a80ac4eda2e7f2757ec9dd96fc96dbd16">IConnectableLayer</a>.</p>
1357
1358<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00312">312</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1359
1360<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.xhtml#l00263">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_graph_tests_8cpp_source.xhtml#l00043">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_graph_tests_8cpp_source.xhtml#l00552">BOOST_FIXTURE_TEST_CASE()</a>, <a class="el" href="_tf_parser_8cpp_source.xhtml#l00421">armnnTfParser::CalcPadding()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00125">OutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00114">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00256">CreateConvolution2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00306">CreateDepthwiseConvolution2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00448">CreateGatherGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00356">CreatePooling2dGraph()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00404">CreateResizeBilinearGraph()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00129">ConcatLayer::CreateTensorHandles()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00103">SplitterLayer::CreateTensorHandles()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00240">Layer::CreateTensorHandles()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00021">SplitterLayer::CreateWorkload()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00273">Layer::GetDataType()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00020">InputSlot::Insert()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00040">armnn::InsertConvertFp16ToFp32LayersBefore()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00079">armnn::InsertConvertFp32ToFp16LayersAfter()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00042">IsConnected()</a>, <a class="el" href="_workload_factory_8cpp_source.xhtml#l00045">IWorkloadFactory::IsLayerSupported()</a>, <a class="el" href="_permute_as_reshape_8hpp_source.xhtml#l00018">PermuteAsReshapeImpl::Run()</a>, <a class="el" href="_transpose_as_reshape_8hpp_source.xhtml#l00018">TransposeAsReshapeImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.xhtml#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_fold_pad_into_convolution2d_8hpp_source.xhtml#l00019">FoldPadIntoConvolution2dImpl::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.xhtml#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.xhtml#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>, <a class="el" href="_optimize_inverse_permutes_8hpp_source.xhtml#l00022">OptimizeInversePermutesImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00824">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.xhtml#l00051">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00032">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00031">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00043">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00032">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_input_layer_8cpp_source.xhtml#l00031">InputLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00036">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00037">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.xhtml#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00032">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00043">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.xhtml#l00103">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.xhtml#l00044">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00032">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.xhtml#l00039">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.xhtml#l00056">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00033">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.xhtml#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00032">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00032">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00033">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.xhtml#l00032">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00036">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00032">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00061">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00030">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00032">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00032">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00032">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.xhtml#l00041">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00033">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_constant_layer_8cpp_source.xhtml#l00043">ConstantLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00072">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.xhtml#l00037">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.xhtml#l00043">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.xhtml#l00076">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.xhtml#l00097">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00122">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.xhtml#l00062">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.xhtml#l00064">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.xhtml#l00058">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.xhtml#l00060">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.xhtml#l00069">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00097">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00115">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00142">SplitterLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00051">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00094">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00160">LstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
1361<div class="fragment"><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.at(index); }</div></div><!-- fragment -->
1362</div>
1363</div>
1364<a id="abbd71844785bb2f00a81baca30ea5ff0"></a>
1365<h2 class="memtitle"><span class="permalink"><a href="#abbd71844785bb2f00a81baca30ea5ff0">&#9670;&nbsp;</a></span>GetOutputSlot() <span class="overload">[2/2]</span></h2>
1366
1367<div class="memitem">
1368<div class="memproto">
1369<table class="mlabels">
1370 <tr>
1371 <td class="mlabels-left">
1372 <table class="memname">
1373 <tr>
1374 <td class="memname"><a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a>&amp; GetOutputSlot </td>
1375 <td>(</td>
1376 <td class="paramtype">unsigned int&#160;</td>
1377 <td class="paramname"><em>index</em> = <code>0</code></td><td>)</td>
1378 <td></td>
1379 </tr>
1380 </table>
1381 </td>
1382 <td class="mlabels-right">
1383<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1384 </tr>
1385</table>
1386</div><div class="memdoc">
1387
1388<p>Get the output slot handle by slot index. </p>
1389
1390<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#a75bfde3503c1b21c397bb095f55db990">IConnectableLayer</a>.</p>
1391
1392<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00313">313</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1393<div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots.at(index); }</div></div><!-- fragment -->
1394</div>
1395</div>
1396<a id="a98cdff4e0b45f4c80bfcedaf926e16e0"></a>
1397<h2 class="memtitle"><span class="permalink"><a href="#a98cdff4e0b45f4c80bfcedaf926e16e0">&#9670;&nbsp;</a></span>GetOutputSlots()</h2>
1398
1399<div class="memitem">
1400<div class="memproto">
1401<table class="mlabels">
1402 <tr>
1403 <td class="mlabels-left">
1404 <table class="memname">
1405 <tr>
1406 <td class="memname">const std::vector&lt;<a class="el" href="classarmnn_1_1_output_slot.xhtml">OutputSlot</a>&gt;&amp; GetOutputSlots </td>
1407 <td>(</td>
1408 <td class="paramname"></td><td>)</td>
1409 <td> const</td>
1410 </tr>
1411 </table>
1412 </td>
1413 <td class="mlabels-right">
1414<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1415 </tr>
1416</table>
1417</div><div class="memdoc">
1418
1419<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00232">232</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1420
1421<p class="reference">Referenced by <a class="el" href="_graph_8cpp_source.xhtml#l00263">Graph::AddCompatibilityLayers()</a>, <a class="el" href="_subgraph_view_selector_8cpp_source.xhtml#l00283">armnn::ForEachLayerOutput()</a>, and <a class="el" href="_workload_factory_8cpp_source.xhtml#l00045">IWorkloadFactory::IsLayerSupported()</a>.</p>
1422<div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;{ <span class="keywordflow">return</span> m_OutputSlots; }</div></div><!-- fragment -->
1423</div>
1424</div>
1425<a id="af97a07195a67a638605b3c325763c2dd"></a>
1426<h2 class="memtitle"><span class="permalink"><a href="#af97a07195a67a638605b3c325763c2dd">&#9670;&nbsp;</a></span>GetPriority()</h2>
1427
1428<div class="memitem">
1429<div class="memproto">
1430 <table class="memname">
1431 <tr>
1432 <td class="memname"><a class="el" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> GetPriority </td>
1433 <td>(</td>
1434 <td class="paramname"></td><td>)</td>
1435 <td> const</td>
1436 </tr>
1437 </table>
1438</div><div class="memdoc">
1439
1440<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00288">288</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1441
1442<p class="reference">References <a class="el" href="_layer_8hpp_source.xhtml#l00231">Layer::GetInputSlots()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00115">OutputSlot::GetOwningLayer()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00288">Layer::GetPriority()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00259">Layer::GetType()</a>, <a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::Input</a>, and <a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::Output</a>.</p>
1443
1444<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.xhtml#l00288">Layer::GetPriority()</a>, and <a class="el" href="_squash_equal_siblings_8hpp_source.xhtml#l00024">SquashEqualSiblingsImpl&lt; Comparable &gt;::Run()</a>.</p>
1445<div class="fragment"><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; constexpr <a class="code" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> inputPrio = std::numeric_limits&lt;LayerPriority&gt;::lowest();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; constexpr <a class="code" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> outputPrio = std::numeric_limits&lt;LayerPriority&gt;::max();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a>() == <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">LayerType::Input</a>)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; m_Priority = inputPrio;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a>() == <a class="code" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">LayerType::Output</a>)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_Priority = outputPrio;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_Priority == 0)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (m_Visiting)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">throw</span> GraphValidationException(<span class="stringliteral">&quot;Graph has circular dependencies: cannot walk&quot;</span>);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">auto</span> maxPrio = [](<span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> prio, <span class="keyword">const</span> InputSlot&amp; slot) -&gt; <a class="code" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> OutputSlot *outputSlot = slot.GetConnectedOutputSlot();</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (outputSlot)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_layer.xhtml#a5e5ae420d199a0bccae5139d38c30205">Layer</a>&amp; input = outputSlot-&gt;GetOwningLayer();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> std::max(prio, input.GetPriority());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// unconnected input slot</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> prio;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; };</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; m_Visiting = <span class="keyword">true</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a> parentPrio = std::accumulate(<a class="code" href="classarmnn_1_1_layer.xhtml#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a>().cbegin(), <a class="code" href="classarmnn_1_1_layer.xhtml#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a>().cend(), 0U, maxPrio);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; m_Visiting = <span class="keyword">false</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (parentPrio &gt;= outputPrio)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">throw</span> GraphValidationException(<span class="stringliteral">&quot;Graph has too many edges&quot;</span>);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; m_Priority = parentPrio + 1U;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> m_Priority;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div><div class="ttc" id="namespacearmnn_xhtml_a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54"><div class="ttname"><a href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a29c2c02a361c9d7028472e5d92cd4a54">armnn::LayerType::Output</a></div></div>
1446<div class="ttc" id="namespacearmnn_xhtml_a419086ecb4dc9d0f9e5d8933c87e2ea2"><div class="ttname"><a href="namespacearmnn.xhtml#a419086ecb4dc9d0f9e5d8933c87e2ea2">armnn::LayerPriority</a></div><div class="ttdeci">unsigned int LayerPriority</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00207">Layer.hpp:207</a></div></div>
1447<div class="ttc" id="classarmnn_1_1_layer_xhtml_af5f530544d09a44d726f24702b67b35b"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00231">Layer.hpp:231</a></div></div>
1448<div class="ttc" id="classarmnn_1_1_layer_xhtml_a5e5ae420d199a0bccae5139d38c30205"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00213">Layer.cpp:213</a></div></div>
1449<div class="ttc" id="namespacearmnn_xhtml_a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5"><div class="ttname"><a href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4a324118a6721dd6b8a9b9f4e327df2bf5">armnn::LayerType::Input</a></div></div>
1450<div class="ttc" id="classarmnn_1_1_layer_xhtml_aaef29472862381822654ab6cbf7cba2a"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">armnn::Layer::GetType</a></div><div class="ttdeci">LayerType GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00259">Layer.hpp:259</a></div></div>
1451</div><!-- fragment -->
1452</div>
1453</div>
1454<a id="a5e5520194ea4042fe07b0bf53c28f634"></a>
1455<h2 class="memtitle"><span class="permalink"><a href="#a5e5520194ea4042fe07b0bf53c28f634">&#9670;&nbsp;</a></span>GetRelatedLayerNames()</h2>
1456
1457<div class="memitem">
1458<div class="memproto">
1459<table class="mlabels">
1460 <tr>
1461 <td class="mlabels-left">
1462 <table class="memname">
1463 <tr>
1464 <td class="memname">const std::list&lt;std::string&gt;&amp; GetRelatedLayerNames </td>
1465 <td>(</td>
1466 <td class="paramname"></td><td>)</td>
1467 <td></td>
1468 </tr>
1469 </table>
1470 </td>
1471 <td class="mlabels-right">
1472<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1473 </tr>
1474</table>
1475</div><div class="memdoc">
1476
1477<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00320">320</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1478
1479<p class="reference">Referenced by <a class="el" href="_observable_8cpp_source.xhtml#l00016">ErasedLayerNamesObservable::Update()</a>.</p>
1480<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;{ <span class="keywordflow">return</span> m_RelatedLayerNames; }</div></div><!-- fragment -->
1481</div>
1482</div>
1483<a id="aaef29472862381822654ab6cbf7cba2a"></a>
1484<h2 class="memtitle"><span class="permalink"><a href="#aaef29472862381822654ab6cbf7cba2a">&#9670;&nbsp;</a></span>GetType()</h2>
1485
1486<div class="memitem">
1487<div class="memproto">
1488<table class="mlabels">
1489 <tr>
1490 <td class="mlabels-left">
1491 <table class="memname">
1492 <tr>
1493 <td class="memname"><a class="el" href="namespacearmnn.xhtml#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> GetType </td>
1494 <td>(</td>
1495 <td class="paramname"></td><td>)</td>
1496 <td> const</td>
1497 </tr>
1498 </table>
1499 </td>
1500 <td class="mlabels-right">
1501<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1502 </tr>
1503</table>
1504</div><div class="memdoc">
1505
1506<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00259">259</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1507
1508<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.xhtml#l00428">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00149">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_optimizer_tests_8cpp_source.xhtml#l00163">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="armnn_tf_lite_parser_2test_2_detection_post_process_8cpp_source.xhtml#l00226">BOOST_FIXTURE_TEST_CASE()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00747">armnn::CalculateEdgeStrategy()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00638">armnn::CalculateSlotOption()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00546">armnn::CalculateSlotOptionForInput()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00114">armnn::CheckScaleSetOnQuantizedType()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_loaded_network_8cpp_source.xhtml#l00412">LoadedNetwork::EnqueueWorkload()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00288">Layer::GetPriority()</a>, <a class="el" href="_layer_8cpp_source.xhtml#l00371">Layer::InferOutputShapes()</a>, <a class="el" href="_reshape_layer_8hpp_source.xhtml#l00039">ReshapeLayer::IsEqual()</a>, <a class="el" href="_transpose_layer_8hpp_source.xhtml#l00052">TransposeLayer::IsEqual()</a>, <a class="el" href="_permute_layer_8hpp_source.xhtml#l00054">PermuteLayer::IsEqual()</a>, <a class="el" href="_transpose_layer_8hpp_source.xhtml#l00043">TransposeLayer::IsInverse()</a>, <a class="el" href="_permute_layer_8hpp_source.xhtml#l00045">PermuteLayer::IsInverse()</a>, <a class="el" href="_test_utils_8hpp_source.xhtml#l00015">IsLayerOfType()</a>, <a class="el" href="_workload_factory_8cpp_source.xhtml#l00045">IWorkloadFactory::IsLayerSupported()</a>, <a class="el" href="_mock_backend_8cpp_source.xhtml#l00134">MockBackend::OptimizeSubgraphView()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00099">armnn::ReturnWithError()</a>, <a class="el" href="_convert_fp32_network_to_fp16_8hpp_source.xhtml#l00018">ConvertFp32NetworkToFp16Impl::Run()</a>, <a class="el" href="_add_debug_8hpp_source.xhtml#l00019">AddDebugImpl::Run()</a>, <a class="el" href="_fold_pad_into_convolution2d_8hpp_source.xhtml#l00019">FoldPadIntoConvolution2dImpl::Run()</a>, <a class="el" href="_optimize_consecutive_reshapes_8hpp_source.xhtml#l00019">OptimizeConsecutiveReshapesImpl::Run()</a>, <a class="el" href="_permute_and_batch_to_space_as_depth_to_space_8hpp_source.xhtml#l00021">PermuteAndBatchToSpaceAsDepthToSpaceImpl&lt; PermuteType &gt;::Run()</a>, <a class="el" href="_optimize_inverse_conversions_8hpp_source.xhtml#l00021">OptimizeInverseConversionsImpl::Run()</a>, <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>, <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>, <a class="el" href="_optimization_8hpp_source.xhtml#l00036">OptimizeForTypeImpl&lt; BaseType, OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt; &gt;::Run()</a>, <a class="el" href="_network_8cpp_source.xhtml#l00824">armnn::SelectTensorHandleStrategy()</a>, <a class="el" href="_elementwise_base_layer_8cpp_source.xhtml#l00051">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00338">Layer::VerifyLayerConnections()</a>.</p>
1509<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{ <span class="keywordflow">return</span> m_Type; }</div></div><!-- fragment -->
1510</div>
1511</div>
1512<a id="a65ca562c882ad619684445a1402f415a"></a>
1513<h2 class="memtitle"><span class="permalink"><a href="#a65ca562c882ad619684445a1402f415a">&#9670;&nbsp;</a></span>InferOutputShapes()</h2>
1514
1515<div class="memitem">
1516<div class="memproto">
1517<table class="mlabels">
1518 <tr>
1519 <td class="mlabels-left">
1520 <table class="memname">
1521 <tr>
1522 <td class="memname">std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> &gt; InferOutputShapes </td>
1523 <td>(</td>
1524 <td class="paramtype">const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> &gt; &amp;&#160;</td>
1525 <td class="paramname"><em>inputShapes</em></td><td>)</td>
1526 <td> const</td>
1527 </tr>
1528 </table>
1529 </td>
1530 <td class="mlabels-right">
1531<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1532 </tr>
1533</table>
1534</div><div class="memdoc">
1535
1536<p>Infer the shape of the output(s) based on the provided input shape(s) </p>
1537
1538<p>Implements <a class="el" href="classarmnn_1_1_i_connectable_layer.xhtml#aa6e3c075c888e7c16942a468a3aae33c">IConnectableLayer</a>.</p>
1539
1540<p>Reimplemented in <a class="el" href="classarmnn_1_1_lstm_layer.xhtml#a65ca562c882ad619684445a1402f415a">LstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.xhtml#a65ca562c882ad619684445a1402f415a">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.xhtml#a65ca562c882ad619684445a1402f415a">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.xhtml#a65ca562c882ad619684445a1402f415a">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#a65ca562c882ad619684445a1402f415a">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#a65ca562c882ad619684445a1402f415a">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.xhtml#a65ca562c882ad619684445a1402f415a">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.xhtml#a65ca562c882ad619684445a1402f415a">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.xhtml#a65ca562c882ad619684445a1402f415a">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.xhtml#a65ca562c882ad619684445a1402f415a">StandInLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml#a65ca562c882ad619684445a1402f415a">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.xhtml#a65ca562c882ad619684445a1402f415a">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.xhtml#a65ca562c882ad619684445a1402f415a">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.xhtml#a65ca562c882ad619684445a1402f415a">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.xhtml#a65ca562c882ad619684445a1402f415a">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.xhtml#a65ca562c882ad619684445a1402f415a">SliceLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.xhtml#a65ca562c882ad619684445a1402f415a">StackLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.xhtml#a65ca562c882ad619684445a1402f415a">MergeLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.xhtml#a65ca562c882ad619684445a1402f415a">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.xhtml#a65ca562c882ad619684445a1402f415a">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.xhtml#a65ca562c882ad619684445a1402f415a">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.xhtml#a65ca562c882ad619684445a1402f415a">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.xhtml#a65ca562c882ad619684445a1402f415a">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.xhtml#a65ca562c882ad619684445a1402f415a">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.xhtml#a65ca562c882ad619684445a1402f415a">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.xhtml#a65ca562c882ad619684445a1402f415a">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.xhtml#a65ca562c882ad619684445a1402f415a">StridedSliceLayer</a>, and <a class="el" href="classarmnn_1_1_elementwise_base_layer.xhtml#a65ca562c882ad619684445a1402f415a">ElementwiseBaseLayer</a>.</p>
1541
1542<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00371">371</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1543
1544<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_internal_types_8cpp_source.xhtml#l00013">armnn::GetLayerTypeAsCString()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00216">Layer::GetNameStr()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00307">Layer::GetNumInputSlots()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00308">Layer::GetNumOutputSlots()</a>, and <a class="el" href="_layer_8hpp_source.xhtml#l00259">Layer::GetType()</a>.</p>
1545
1546<p class="reference">Referenced by <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00032">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00031">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00032">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00033">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00030">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00032">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00036">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00033">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.xhtml#l00032">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00032">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00032">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00032">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00032">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00032">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00036">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00037">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00033">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00032">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00051">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>.</p>
1547<div class="fragment"><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;{</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; BOOST_ASSERT(<a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() != 0);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; BOOST_ASSERT(<a class="code" href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>() != 0);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</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><div class="line"><a name="l00377"></a><span class="lineno"> 377</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><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// base class, this means the implementation needs to be overridden in the specific layers for</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// the other cases. So the missing implementation justifies the UnimplementedException.</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() != <a class="code" href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>())</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">throw</span> UnimplementedException(</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; boost::str(</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; boost::format(</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="stringliteral">&quot;Default implementation for InferOutputShapes can only be used for &quot;</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="stringliteral">&quot;layers with the same number of input and output slots. This doesn&#39;t &quot;</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="stringliteral">&quot;hold for %1% layer %2% (#inputs=%3% #outputs=%4%) %5%&quot;</span>)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; % <a class="code" href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">GetLayerTypeAsCString</a>(this-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a>())</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; % <a class="code" href="classarmnn_1_1_layer.xhtml#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a>()</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; % <a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>()</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; % <a class="code" href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>()</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; % <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> inputShapes;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_abc0660dc440c8a285b456c9ef6383c26"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00307">Layer.hpp:307</a></div></div>
1548<div class="ttc" id="classarmnn_1_1_layer_xhtml_a1594bddc87d6477df300317658f566bb"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00308">Layer.hpp:308</a></div></div>
1549<div class="ttc" id="namespacearmnn_xhtml_a9da573d7a1fc03726fd41f2130cbcf92"><div class="ttname"><a href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">armnn::GetLayerTypeAsCString</a></div><div class="ttdeci">char const * GetLayerTypeAsCString(LayerType type)</div><div class="ttdef"><b>Definition:</b> <a href="_internal_types_8cpp_source.xhtml#l00013">InternalTypes.cpp:13</a></div></div>
1550<div class="ttc" id="classarmnn_1_1_layer_xhtml_a9a97cb6d32661a57fc33bd29b8e41ff4"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00216">Layer.hpp:216</a></div></div>
1551<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
1552<div class="ttc" id="classarmnn_1_1_layer_xhtml_aaef29472862381822654ab6cbf7cba2a"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">armnn::Layer::GetType</a></div><div class="ttdeci">LayerType GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00259">Layer.hpp:259</a></div></div>
1553</div><!-- fragment -->
1554</div>
1555</div>
1556<a id="a22485f444124128940e798a42f0b76d9"></a>
1557<h2 class="memtitle"><span class="permalink"><a href="#a22485f444124128940e798a42f0b76d9">&#9670;&nbsp;</a></span>IsOutputUnconnected()</h2>
1558
1559<div class="memitem">
1560<div class="memproto">
1561<table class="mlabels">
1562 <tr>
1563 <td class="mlabels-left">
1564 <table class="memname">
1565 <tr>
1566 <td class="memname">bool IsOutputUnconnected </td>
1567 <td>(</td>
1568 <td class="paramname"></td><td>)</td>
1569 <td></td>
1570 </tr>
1571 </table>
1572 </td>
1573 <td class="mlabels-right">
1574<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1575 </tr>
1576</table>
1577</div><div class="memdoc">
1578
1579<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00243">243</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1580
1581<p class="reference">Referenced by <a class="el" href="_optimization_8hpp_source.xhtml#l00082">OptimizeForConnectionImpl&lt; BaseType, ChildType, Wrapped &gt;::Run()</a>.</p>
1582<div class="fragment"><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numConnections = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; output : <a class="code" href="classarmnn_1_1_layer.xhtml#a98cdff4e0b45f4c80bfcedaf926e16e0">GetOutputSlots</a>())</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; numConnections += output.GetNumConnections();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a>() &gt; 0) &amp;&amp; (numConnections == 0);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a1594bddc87d6477df300317658f566bb"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00308">Layer.hpp:308</a></div></div>
1583<div class="ttc" id="classarmnn_1_1_layer_xhtml_a98cdff4e0b45f4c80bfcedaf926e16e0"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00232">Layer.hpp:232</a></div></div>
1584</div><!-- fragment -->
1585</div>
1586</div>
1587<a id="a386acff5f8430245239ce58d00ba7576"></a>
1588<h2 class="memtitle"><span class="permalink"><a href="#a386acff5f8430245239ce58d00ba7576">&#9670;&nbsp;</a></span>OperateOnConstantTensors()</h2>
1589
1590<div class="memitem">
1591<div class="memproto">
1592<table class="mlabels">
1593 <tr>
1594 <td class="mlabels-left">
1595 <table class="memname">
1596 <tr>
1597 <td class="memname">void OperateOnConstantTensors </td>
1598 <td>(</td>
1599 <td class="paramtype">Op&#160;</td>
1600 <td class="paramname"><em>op</em></td><td>)</td>
1601 <td></td>
1602 </tr>
1603 </table>
1604 </td>
1605 <td class="mlabels-right">
1606<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1607 </tr>
1608</table>
1609</div><div class="memdoc">
1610
1611<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00292">292</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1612
1613<p class="reference">Referenced by <a class="el" href="_layer_8cpp_source.xhtml#l00264">Layer::ReleaseConstantData()</a>, and <a class="el" href="_convert_constants_8hpp_source.xhtml#l00073">ConvertConstants&lt; Converter, Predicate &gt;::Run()</a>.</p>
1614<div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> constant : <a class="code" href="classarmnn_1_1_layer.xhtml#afbeac2d77ecaadc3e303a163b4146961">GetConstantTensorsByRef</a>())</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (constant.get())</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; op(constant);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; };</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_afbeac2d77ecaadc3e303a163b4146961"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#afbeac2d77ecaadc3e303a163b4146961">armnn::Layer::GetConstantTensorsByRef</a></div><div class="ttdeci">virtual ConstantTensors GetConstantTensorsByRef()</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00364">Layer.hpp:364</a></div></div>
1615</div><!-- fragment -->
1616</div>
1617</div>
1618<a id="a30a858b2b26d651a066537e499fbf40d"></a>
1619<h2 class="memtitle"><span class="permalink"><a href="#a30a858b2b26d651a066537e499fbf40d">&#9670;&nbsp;</a></span>PrepInfoAndDesc()</h2>
1620
1621<div class="memitem">
1622<div class="memproto">
1623<table class="mlabels">
1624 <tr>
1625 <td class="mlabels-left">
1626 <table class="memname">
1627 <tr>
1628 <td class="memname"><a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> PrepInfoAndDesc </td>
1629 <td>(</td>
1630 <td class="paramtype"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">QueueDescriptor</a> &amp;&#160;</td>
1631 <td class="paramname"><em>descriptor</em></td><td>)</td>
1632 <td> const</td>
1633 </tr>
1634 </table>
1635 </td>
1636 <td class="mlabels-right">
1637<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
1638 </tr>
1639</table>
1640</div><div class="memdoc">
1641
1642<p>Helper function to reduce duplication in *Layer<a class="el" href="_elementwise_unary_test_impl_8hpp.xhtml#aa50938ed8f91e09acd4af904dcf5543a">CreateWorkload</a>. </p>
1643
1644<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00351">351</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1645
1646<p class="reference">References <a class="el" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::info</a>.</p>
1647
1648<p class="reference">Referenced by <a class="el" href="_abs_layer_8cpp_source.xhtml#l00022">AbsLayer::CreateWorkload()</a>, <a class="el" href="_addition_layer_8cpp_source.xhtml#l00022">AdditionLayer::CreateWorkload()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00021">FloorLayer::CreateWorkload()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00019">QuantizeLayer::CreateWorkload()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00021">ConvertFp32ToFp16Layer::CreateWorkload()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00022">RsqrtLayer::CreateWorkload()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00019">SwitchLayer::CreateWorkload()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00020">DebugLayer::CreateWorkload()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00027">MemCopyLayer::CreateWorkload()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00019">DequantizeLayer::CreateWorkload()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00027">MemImportLayer::CreateWorkload()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00021">PreluLayer::CreateWorkload()</a>, <a class="el" href="_subtraction_layer_8cpp_source.xhtml#l00022">SubtractionLayer::CreateWorkload()</a>, <a class="el" href="_division_layer_8cpp_source.xhtml#l00022">DivisionLayer::CreateWorkload()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00022">ConvertFp16ToFp32Layer::CreateWorkload()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00021">GatherLayer::CreateWorkload()</a>, <a class="el" href="_minimum_layer_8cpp_source.xhtml#l00022">MinimumLayer::CreateWorkload()</a>, <a class="el" href="_multiplication_layer_8cpp_source.xhtml#l00022">MultiplicationLayer::CreateWorkload()</a>, <a class="el" href="_maximum_layer_8cpp_source.xhtml#l00021">MaximumLayer::CreateWorkload()</a>, <a class="el" href="_constant_layer_8cpp_source.xhtml#l00021">ConstantLayer::CreateWorkload()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00022">QuantizedLstmLayer::CreateWorkload()</a>, and <a class="el" href="_layer_with_parameters_8hpp_source.xhtml#l00043">LayerWithParameters&lt; ResizeDescriptor &gt;::PrepInfoAndDesc()</a>.</p>
1649<div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; WorkloadInfo <a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classarmnn_1_1_layer.xhtml#afc3239f5fc116259bf5451964e803646">CollectQueueDescriptorInputs</a>(descriptor, info);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="classarmnn_1_1_layer.xhtml#a499ca5a94d0174ed21786b6994b2cd8c">CollectQueueDescriptorOutputs</a>(descriptor, info);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">info</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_afc3239f5fc116259bf5451964e803646"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00336">Layer.hpp:336</a></div></div>
1650<div class="ttc" id="classarmnn_1_1_layer_xhtml_a499ca5a94d0174ed21786b6994b2cd8c"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00343">Layer.hpp:343</a></div></div>
1651<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acaf9b6b99962bf5c2264824231d7a40c">armnn::BoostLogSeverityMapping::info</a></div></div>
1652</div><!-- fragment -->
1653</div>
1654</div>
1655<a id="a339bef86bc340c3d1393ed83950fe8af"></a>
1656<h2 class="memtitle"><span class="permalink"><a href="#a339bef86bc340c3d1393ed83950fe8af">&#9670;&nbsp;</a></span>ReleaseConstantData()</h2>
1657
1658<div class="memitem">
1659<div class="memproto">
1660<table class="mlabels">
1661 <tr>
1662 <td class="mlabels-left">
1663 <table class="memname">
1664 <tr>
1665 <td class="memname">void ReleaseConstantData </td>
1666 <td>(</td>
1667 <td class="paramname"></td><td>)</td>
1668 <td></td>
1669 </tr>
1670 </table>
1671 </td>
1672 <td class="mlabels-right">
1673<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
1674 </tr>
1675</table>
1676</div><div class="memdoc">
1677
1678<p>Reimplemented in <a class="el" href="classarmnn_1_1_constant_layer.xhtml#a49a08bdbd40e6913a9a3e1418aa1f43a">ConstantLayer</a>.</p>
1679
1680<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00264">264</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1681
1682<p class="reference">References <a class="el" href="_layer_8hpp_source.xhtml#l00292">Layer::OperateOnConstantTensors()</a>.</p>
1683
1684<p class="reference">Referenced by <a class="el" href="_layer_release_constant_data_test_8cpp_source.xhtml#l00029">BOOST_AUTO_TEST_CASE()</a>.</p>
1685<div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// Now free up the static data.</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classarmnn_1_1_layer.xhtml#a386acff5f8430245239ce58d00ba7576">OperateOnConstantTensors</a>([](std::unique_ptr&lt;ScopedCpuTensorHandle&gt;&amp; handle)</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; handle.reset(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; });</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_a386acff5f8430245239ce58d00ba7576"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00292">Layer.hpp:292</a></div></div>
1686</div><!-- fragment -->
1687</div>
1688</div>
1689<a id="a72b18e4c5a403bc3fe2fecf20135c8d6"></a>
1690<h2 class="memtitle"><span class="permalink"><a href="#a72b18e4c5a403bc3fe2fecf20135c8d6">&#9670;&nbsp;</a></span>Reparent()</h2>
1691
1692<div class="memitem">
1693<div class="memproto">
1694<table class="mlabels">
1695 <tr>
1696 <td class="mlabels-left">
1697 <table class="memname">
1698 <tr>
1699 <td class="memname">virtual void Reparent </td>
1700 <td>(</td>
1701 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> &amp;&#160;</td>
1702 <td class="paramname"><em>dest</em>, </td>
1703 </tr>
1704 <tr>
1705 <td class="paramkey"></td>
1706 <td></td>
1707 <td class="paramtype">std::list&lt; <a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a> *&gt;::const_iterator&#160;</td>
1708 <td class="paramname"><em>iterator</em>&#160;</td>
1709 </tr>
1710 <tr>
1711 <td></td>
1712 <td>)</td>
1713 <td></td><td></td>
1714 </tr>
1715 </table>
1716 </td>
1717 <td class="mlabels-right">
1718<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
1719 </tr>
1720</table>
1721</div><div class="memdoc">
1722
1723<p class="reference">Referenced by <a class="el" href="_graph_8hpp_source.xhtml#l00106">Graph::operator=()</a>, and <a class="el" href="_graph_8cpp_source.xhtml#l00404">Graph::SubstituteSubgraph()</a>.</p>
1724
1725</div>
1726</div>
1727<a id="aac329cade047e952621b59a51a5d5f49"></a>
1728<h2 class="memtitle"><span class="permalink"><a href="#aac329cade047e952621b59a51a5d5f49">&#9670;&nbsp;</a></span>ResetPriority()</h2>
1729
1730<div class="memitem">
1731<div class="memproto">
1732 <table class="memname">
1733 <tr>
1734 <td class="memname">void ResetPriority </td>
1735 <td>(</td>
1736 <td class="paramname"></td><td>)</td>
1737 <td> const</td>
1738 </tr>
1739 </table>
1740</div><div class="memdoc">
1741
1742<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00282">282</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1743<div class="fragment"><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_Priority = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; m_Visiting = <span class="keyword">false</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;}</div></div><!-- fragment -->
1744</div>
1745</div>
1746<a id="ac04cd8de9b9185756eb02463ffd432b1"></a>
1747<h2 class="memtitle"><span class="permalink"><a href="#ac04cd8de9b9185756eb02463ffd432b1">&#9670;&nbsp;</a></span>SerializeLayerParameters()</h2>
1748
1749<div class="memitem">
1750<div class="memproto">
1751<table class="mlabels">
1752 <tr>
1753 <td class="mlabels-left">
1754 <table class="memname">
1755 <tr>
1756 <td class="memname">void SerializeLayerParameters </td>
1757 <td>(</td>
1758 <td class="paramtype"><a class="el" href="namespacearmnn.xhtml#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;&#160;</td>
1759 <td class="paramname"><em>fn</em></td><td>)</td>
1760 <td> const</td>
1761 </tr>
1762 </table>
1763 </td>
1764 <td class="mlabels-right">
1765<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
1766 </tr>
1767</table>
1768</div><div class="memdoc">
1769
1770<p>Helper to serialize the layer parameters to string. </p>
1771<p>(currently used in DotSerializer and company). </p>
1772
1773<p>Reimplemented in <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#a2ca654770a1890f15e3c7aab98e434a5">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#a2ca654770a1890f15e3c7aab98e434a5">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Parameters &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FakeQuantizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; LstmDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; LogSoftmaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PreCompiledDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BatchToSpaceNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PermuteDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SpaceToBatchNdDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DepthToSpaceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ReshapeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ElementwiseUnaryDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SpaceToDepthDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; OriginsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ViewsDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Pooling2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; Convolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ActivationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StandInDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; TransposeDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StackDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; MeanDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ComparisonDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; InstanceNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; TransposeConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ArgMinMaxDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DetectionPostProcessDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; PadDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; L2NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; SliceDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; DepthwiseConvolution2dDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; NormalizationDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; FullyConnectedDescriptor &gt;</a>, <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; StridedSliceDescriptor &gt;</a>, and <a class="el" href="classarmnn_1_1_layer_with_parameters.xhtml#a2ca654770a1890f15e3c7aab98e434a5">LayerWithParameters&lt; ResizeDescriptor &gt;</a>.</p>
1774
1775<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00398">398</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1776
1777<p class="reference">References <a class="el" href="_internal_types_8cpp_source.xhtml#l00013">armnn::GetLayerTypeAsCString()</a>.</p>
1778
1779<p class="reference">Referenced by <a class="el" href="_layer_with_parameters_8hpp_source.xhtml#l00022">LayerWithParameters&lt; ResizeDescriptor &gt;::SerializeLayerParameters()</a>.</p>
1780<div class="fragment"><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; std::string layerType = <a class="code" href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">GetLayerTypeAsCString</a>(m_Type);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; std::string backendId = std::string(m_BackendId);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span>(!(m_LayerName.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !m_LayerName.empty())</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; fn(<span class="stringliteral">&quot;LayerName&quot;</span>,m_LayerName);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(!(layerType.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !layerType.empty())</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; fn(<span class="stringliteral">&quot;LayerType&quot;</span>,layerType);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(!(backendId.compare(<span class="stringliteral">&quot;&quot;</span>) == 0) &amp;&amp; !backendId.empty())</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; fn(<span class="stringliteral">&quot;BackendID&quot;</span>,backendId);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;}</div><div class="ttc" id="namespacearmnn_xhtml_a9da573d7a1fc03726fd41f2130cbcf92"><div class="ttname"><a href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">armnn::GetLayerTypeAsCString</a></div><div class="ttdeci">char const * GetLayerTypeAsCString(LayerType type)</div><div class="ttdef"><b>Definition:</b> <a href="_internal_types_8cpp_source.xhtml#l00013">InternalTypes.cpp:13</a></div></div>
1781</div><!-- fragment -->
1782</div>
1783</div>
1784<a id="a3f6ad59212fa8a47c9265162fff8a274"></a>
1785<h2 class="memtitle"><span class="permalink"><a href="#a3f6ad59212fa8a47c9265162fff8a274">&#9670;&nbsp;</a></span>SetBackendId()</h2>
1786
1787<div class="memitem">
1788<div class="memproto">
1789<table class="mlabels">
1790 <tr>
1791 <td class="mlabels-left">
1792 <table class="memname">
1793 <tr>
1794 <td class="memname">void SetBackendId </td>
1795 <td>(</td>
1796 <td class="paramtype">const <a class="el" href="classarmnn_1_1_backend_id.xhtml">BackendId</a> &amp;&#160;</td>
1797 <td class="paramname"><em>id</em></td><td>)</td>
1798 <td></td>
1799 </tr>
1800 </table>
1801 </td>
1802 <td class="mlabels-right">
1803<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1804 </tr>
1805</table>
1806</div><div class="memdoc">
1807
1808<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00264">264</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1809
1810<p class="reference">References <a class="el" href="_elementwise_test_impl_8hpp_source.xhtml#l00027">CreateWorkload()</a>.</p>
1811
1812<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.xhtml#l00149">armnn::AttemptBackendAssignment()</a>, <a class="el" href="_graph_tests_8cpp_source.xhtml#l00588">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_graph_tests_8cpp_source.xhtml#l00552">BOOST_FIXTURE_TEST_CASE()</a>, <a class="el" href="_network_utils_8cpp_source.xhtml#l00112">armnn::InsertDebugLayerAfter()</a>, and <a class="el" href="_mock_backend_8cpp_source.xhtml#l00134">MockBackend::OptimizeSubgraphView()</a>.</p>
1813<div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{ m_BackendId = id; }</div></div><!-- fragment -->
1814</div>
1815</div>
1816<a id="a6d1024208b672a87ef2c1bfaf93d2b9f"></a>
1817<h2 class="memtitle"><span class="permalink"><a href="#a6d1024208b672a87ef2c1bfaf93d2b9f">&#9670;&nbsp;</a></span>SetGuid()</h2>
1818
1819<div class="memitem">
1820<div class="memproto">
1821<table class="mlabels">
1822 <tr>
1823 <td class="mlabels-left">
1824 <table class="memname">
1825 <tr>
1826 <td class="memname">void SetGuid </td>
1827 <td>(</td>
1828 <td class="paramtype"><a class="el" href="namespacearmnn.xhtml#afad4088a9a058114ee5f87246f87bf49">LayerGuid</a>&#160;</td>
1829 <td class="paramname"><em>guid</em></td><td>)</td>
1830 <td></td>
1831 </tr>
1832 </table>
1833 </td>
1834 <td class="mlabels-right">
1835<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1836 </tr>
1837</table>
1838</div><div class="memdoc">
1839
1840<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00315">315</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1841<div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;{ m_Guid = guid; }</div></div><!-- fragment -->
1842</div>
1843</div>
1844<a id="a84ff600212ba26e665de9b978ec896a4"></a>
1845<h2 class="memtitle"><span class="permalink"><a href="#a84ff600212ba26e665de9b978ec896a4">&#9670;&nbsp;</a></span>ValidateTensorShapesFromInputs()</h2>
1846
1847<div class="memitem">
1848<div class="memproto">
1849<table class="mlabels">
1850 <tr>
1851 <td class="mlabels-left">
1852 <table class="memname">
1853 <tr>
1854 <td class="memname">virtual void ValidateTensorShapesFromInputs </td>
1855 <td>(</td>
1856 <td class="paramname"></td><td>)</td>
1857 <td></td>
1858 </tr>
1859 </table>
1860 </td>
1861 <td class="mlabels-right">
1862<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
1863 </tr>
1864</table>
1865</div><div class="memdoc">
1866
1867<p>Implemented in <a class="el" href="classarmnn_1_1_lstm_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">LstmLayer</a>, <a class="el" href="classarmnn_1_1_quantized_lstm_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">QuantizedLstmLayer</a>, <a class="el" href="classarmnn_1_1_output_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">OutputLayer</a>, <a class="el" href="classarmnn_1_1_batch_normalization_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">BatchNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_splitter_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SplitterLayer</a>, <a class="el" href="classarmnn_1_1_concat_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ConcatLayer</a>, <a class="el" href="classarmnn_1_1_convolution2d_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">Convolution2dLayer</a>, <a class="el" href="classarmnn_1_1_comparison_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ComparisonLayer</a>, <a class="el" href="classarmnn_1_1_depth_to_space_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">DepthToSpaceLayer</a>, <a class="el" href="classarmnn_1_1_depthwise_convolution2d_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">DepthwiseConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_fully_connected_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">FullyConnectedLayer</a>, <a class="el" href="classarmnn_1_1_prelu_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">PreluLayer</a>, <a class="el" href="classarmnn_1_1_space_to_batch_nd_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SpaceToBatchNdLayer</a>, <a class="el" href="classarmnn_1_1_space_to_depth_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SpaceToDepthLayer</a>, <a class="el" href="classarmnn_1_1_transpose_convolution2d_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">TransposeConvolution2dLayer</a>, <a class="el" href="classarmnn_1_1_arg_min_max_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ArgMinMaxLayer</a>, <a class="el" href="classarmnn_1_1_detection_post_process_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">DetectionPostProcessLayer</a>, <a class="el" href="classarmnn_1_1_elementwise_unary_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ElementwiseUnaryLayer</a>, <a class="el" href="classarmnn_1_1_strided_slice_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">StridedSliceLayer</a>, <a class="el" href="classarmnn_1_1_pre_compiled_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">PreCompiledLayer</a>, <a class="el" href="classarmnn_1_1_constant_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ConstantLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp16_to_fp32_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ConvertFp16ToFp32Layer</a>, <a class="el" href="classarmnn_1_1_gather_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">GatherLayer</a>, <a class="el" href="classarmnn_1_1_log_softmax_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">LogSoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_mean_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">MeanLayer</a>, <a class="el" href="classarmnn_1_1_pad_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">PadLayer</a>, <a class="el" href="classarmnn_1_1_stand_in_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">StandInLayer</a>, <a class="el" href="classarmnn_1_1_abs_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">AbsLayer</a>, <a class="el" href="classarmnn_1_1_batch_to_space_nd_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">BatchToSpaceNdLayer</a>, <a class="el" href="classarmnn_1_1_convert_fp32_to_fp16_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ConvertFp32ToFp16Layer</a>, <a class="el" href="classarmnn_1_1_debug_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">DebugLayer</a>, <a class="el" href="classarmnn_1_1_dequantize_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">DequantizeLayer</a>, <a class="el" href="classarmnn_1_1_fake_quantization_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">FakeQuantizationLayer</a>, <a class="el" href="classarmnn_1_1_floor_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">FloorLayer</a>, <a class="el" href="classarmnn_1_1_input_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">InputLayer</a>, <a class="el" href="classarmnn_1_1_instance_normalization_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">InstanceNormalizationLayer</a>, <a class="el" href="classarmnn_1_1_l2_normalization_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">L2NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_mem_copy_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">MemCopyLayer</a>, <a class="el" href="classarmnn_1_1_mem_import_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">MemImportLayer</a>, <a class="el" href="classarmnn_1_1_merge_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">MergeLayer</a>, <a class="el" href="classarmnn_1_1_normalization_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">NormalizationLayer</a>, <a class="el" href="classarmnn_1_1_permute_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">PermuteLayer</a>, <a class="el" href="classarmnn_1_1_pooling2d_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">Pooling2dLayer</a>, <a class="el" href="classarmnn_1_1_reshape_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ReshapeLayer</a>, <a class="el" href="classarmnn_1_1_resize_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ResizeLayer</a>, <a class="el" href="classarmnn_1_1_rsqrt_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">RsqrtLayer</a>, <a class="el" href="classarmnn_1_1_slice_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SliceLayer</a>, <a class="el" href="classarmnn_1_1_softmax_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SoftmaxLayer</a>, <a class="el" href="classarmnn_1_1_stack_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">StackLayer</a>, <a class="el" href="classarmnn_1_1_switch_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">SwitchLayer</a>, <a class="el" href="classarmnn_1_1_transpose_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">TransposeLayer</a>, <a class="el" href="classarmnn_1_1_activation_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ActivationLayer</a>, <a class="el" href="classarmnn_1_1_quantize_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">QuantizeLayer</a>, and <a class="el" href="classarmnn_1_1_elementwise_base_layer.xhtml#a8c8f543d7e9729362c266d12ec169966">ElementwiseBaseLayer</a>.</p>
1868
1869</div>
1870</div>
1871<a id="a0607e36e88f38c34c71c663164b76776"></a>
1872<h2 class="memtitle"><span class="permalink"><a href="#a0607e36e88f38c34c71c663164b76776">&#9670;&nbsp;</a></span>VerifyLayerConnections()</h2>
1873
1874<div class="memitem">
1875<div class="memproto">
1876 <table class="memname">
1877 <tr>
1878 <td class="memname">void VerifyLayerConnections </td>
1879 <td>(</td>
1880 <td class="paramtype">unsigned int&#160;</td>
1881 <td class="paramname"><em>expectedConnections</em>, </td>
1882 </tr>
1883 <tr>
1884 <td class="paramkey"></td>
1885 <td></td>
1886 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;&#160;</td>
1887 <td class="paramname"><em>location</em>&#160;</td>
1888 </tr>
1889 <tr>
1890 <td></td>
1891 <td>)</td>
1892 <td></td><td> const</td>
1893 </tr>
1894 </table>
1895</div><div class="memdoc">
1896
1897<p class="definition">Definition at line <a class="el" href="_layer_8cpp_source.xhtml#l00338">338</a> of file <a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a>.</p>
1898
1899<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00029">CheckLocation::AsString()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00310">Layer::GetInputSlot()</a>, <a class="el" href="_internal_types_8cpp_source.xhtml#l00013">armnn::GetLayerTypeAsCString()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00216">Layer::GetNameStr()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00307">Layer::GetNumInputSlots()</a>, and <a class="el" href="_layer_8hpp_source.xhtml#l00259">Layer::GetType()</a>.</p>
1900
1901<p class="reference">Referenced by <a class="el" href="_elementwise_base_layer_8cpp_source.xhtml#l00051">ElementwiseBaseLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantize_layer_8cpp_source.xhtml#l00032">QuantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_activation_layer_8cpp_source.xhtml#l00031">ActivationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00043">TransposeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_switch_layer_8cpp_source.xhtml#l00030">SwitchLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_l2_normalization_layer_8cpp_source.xhtml#l00032">L2NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_abs_layer_8cpp_source.xhtml#l00033">AbsLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_pooling2d_layer_8cpp_source.xhtml#l00103">Pooling2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp32_to_fp16_layer_8cpp_source.xhtml#l00032">ConvertFp32ToFp16Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_slice_layer_8cpp_source.xhtml#l00037">SliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_rsqrt_layer_8cpp_source.xhtml#l00033">RsqrtLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fake_quantization_layer_8cpp_source.xhtml#l00032">FakeQuantizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_reshape_layer_8cpp_source.xhtml#l00039">ReshapeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_resize_layer_8cpp_source.xhtml#l00056">ResizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_floor_layer_8cpp_source.xhtml#l00032">FloorLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_softmax_layer_8cpp_source.xhtml#l00032">SoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_stack_layer_8cpp_source.xhtml#l00061">StackLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00043">PermuteLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_to_space_nd_layer_8cpp_source.xhtml#l00044">BatchToSpaceNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_instance_normalization_layer_8cpp_source.xhtml#l00032">InstanceNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_debug_layer_8cpp_source.xhtml#l00037">DebugLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_dequantize_layer_8cpp_source.xhtml#l00032">DequantizeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_copy_layer_8cpp_source.xhtml#l00036">MemCopyLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mem_import_layer_8cpp_source.xhtml#l00036">MemImportLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_merge_layer_8cpp_source.xhtml#l00030">MergeLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_normalization_layer_8cpp_source.xhtml#l00032">NormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convert_fp16_to_fp32_layer_8cpp_source.xhtml#l00033">ConvertFp16ToFp32Layer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_gather_layer_8cpp_source.xhtml#l00032">GatherLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_mean_layer_8cpp_source.xhtml#l00041">MeanLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_log_softmax_layer_8cpp_source.xhtml#l00032">LogSoftmaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_strided_slice_layer_8cpp_source.xhtml#l00076">StridedSliceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_elementwise_unary_layer_8cpp_source.xhtml#l00043">ElementwiseUnaryLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00072">ArgMinMaxLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_detection_post_process_layer_8cpp_source.xhtml#l00037">DetectionPostProcessLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depthwise_convolution2d_layer_8cpp_source.xhtml#l00122">DepthwiseConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_transpose_convolution2d_layer_8cpp_source.xhtml#l00097">TransposeConvolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_depth_layer_8cpp_source.xhtml#l00062">SpaceToDepthLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_fully_connected_layer_8cpp_source.xhtml#l00064">FullyConnectedLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_prelu_layer_8cpp_source.xhtml#l00097">PreluLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_space_to_batch_nd_layer_8cpp_source.xhtml#l00069">SpaceToBatchNdLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_comparison_layer_8cpp_source.xhtml#l00058">ComparisonLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_depth_to_space_layer_8cpp_source.xhtml#l00060">DepthToSpaceLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_convolution2d_layer_8cpp_source.xhtml#l00115">Convolution2dLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_concat_layer_8cpp_source.xhtml#l00244">ConcatLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.xhtml#l00051">BatchNormalizationLayer::ValidateTensorShapesFromInputs()</a>, <a class="el" href="_quantized_lstm_layer_8cpp_source.xhtml#l00094">QuantizedLstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00160">LstmLayer::ValidateTensorShapesFromInputs()</a>.</p>
1902<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;{</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; BOOST_ASSERT(<a class="code" href="classarmnn_1_1_layer.xhtml#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a>() == expectedConnections);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;expectedConnections; ++i)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(i).GetConnection() == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; boost::str(</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; boost::format(</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="stringliteral">&quot;Input connection #%1% must be connected &quot;</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="stringliteral">&quot;for %2% layer %3% %4%&quot;</span>)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; % i</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; % <a class="code" href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">GetLayerTypeAsCString</a>(this-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a>())</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; % <a class="code" href="classarmnn_1_1_layer.xhtml#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a>()</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; % location.AsString()));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(! <a class="code" href="classarmnn_1_1_layer.xhtml#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(i).GetConnection()-&gt;IsTensorInfoSet())</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">throw</span> LayerValidationException(</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; boost::str(</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; boost::format(</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="stringliteral">&quot;TensorInfo of Input connection #%1% must be set on connected OutputSlot for &quot;</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="stringliteral">&quot;%2% layer %3% %4%&quot;</span>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; % i</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; % <a class="code" href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">GetLayerTypeAsCString</a>(this-&gt;<a class="code" href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">GetType</a>())</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; % <a class="code" href="classarmnn_1_1_layer.xhtml#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a>()</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; % location.AsString()));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_layer_xhtml_abc0660dc440c8a285b456c9ef6383c26"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00307">Layer.hpp:307</a></div></div>
1903<div class="ttc" id="classarmnn_1_1_layer_xhtml_acf8b8e23bf647836592982f97088d375"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00310">Layer.hpp:310</a></div></div>
1904<div class="ttc" id="namespacearmnn_xhtml_a9da573d7a1fc03726fd41f2130cbcf92"><div class="ttname"><a href="namespacearmnn.xhtml#a9da573d7a1fc03726fd41f2130cbcf92">armnn::GetLayerTypeAsCString</a></div><div class="ttdeci">char const * GetLayerTypeAsCString(LayerType type)</div><div class="ttdef"><b>Definition:</b> <a href="_internal_types_8cpp_source.xhtml#l00013">InternalTypes.cpp:13</a></div></div>
1905<div class="ttc" id="classarmnn_1_1_layer_xhtml_a9a97cb6d32661a57fc33bd29b8e41ff4"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#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.xhtml#l00216">Layer.hpp:216</a></div></div>
1906<div class="ttc" id="classarmnn_1_1_layer_xhtml_aaef29472862381822654ab6cbf7cba2a"><div class="ttname"><a href="classarmnn_1_1_layer.xhtml#aaef29472862381822654ab6cbf7cba2a">armnn::Layer::GetType</a></div><div class="ttdeci">LayerType GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.xhtml#l00259">Layer.hpp:259</a></div></div>
1907</div><!-- fragment -->
1908</div>
1909</div>
1910<h2 class="groupheader">Friends And Related Function Documentation</h2>
1911<a id="afab89afd724f1b07b1aaad6bdc61c47a"></a>
1912<h2 class="memtitle"><span class="permalink"><a href="#afab89afd724f1b07b1aaad6bdc61c47a">&#9670;&nbsp;</a></span>Graph</h2>
1913
1914<div class="memitem">
1915<div class="memproto">
1916<table class="mlabels">
1917 <tr>
1918 <td class="mlabels-left">
1919 <table class="memname">
1920 <tr>
1921 <td class="memname">friend class <a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a></td>
1922 </tr>
1923 </table>
1924 </td>
1925 <td class="mlabels-right">
1926<span class="mlabels"><span class="mlabel">friend</span></span> </td>
1927 </tr>
1928</table>
1929</div><div class="memdoc">
1930
1931<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00332">332</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1932
1933</div>
1934</div>
1935<h2 class="groupheader">Member Data Documentation</h2>
1936<a id="aa44d91037bba52ba0dec6577509ade3b"></a>
1937<h2 class="memtitle"><span class="permalink"><a href="#aa44d91037bba52ba0dec6577509ade3b">&#9670;&nbsp;</a></span>m_OutputHandlers</h2>
1938
1939<div class="memitem">
1940<div class="memproto">
1941<table class="mlabels">
1942 <tr>
1943 <td class="mlabels-left">
1944 <table class="memname">
1945 <tr>
1946 <td class="memname">std::vector&lt;<a class="el" href="classarmnn_1_1_output_handler.xhtml">OutputHandler</a>&gt; m_OutputHandlers</td>
1947 </tr>
1948 </table>
1949 </td>
1950 <td class="mlabels-right">
1951<span class="mlabels"><span class="mlabel">protected</span></span> </td>
1952 </tr>
1953</table>
1954</div><div class="memdoc">
1955
1956<p class="definition">Definition at line <a class="el" href="_layer_8hpp_source.xhtml#l00371">371</a> of file <a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a>.</p>
1957
1958<p class="reference">Referenced by <a class="el" href="_concat_layer_8cpp_source.xhtml#l00022">ConcatLayer::CreateWorkload()</a>, <a class="el" href="_splitter_layer_8cpp_source.xhtml#l00021">SplitterLayer::CreateWorkload()</a>, and <a class="el" href="_layer_8cpp_source.xhtml#l00187">Layer::Layer()</a>.</p>
1959
1960</div>
1961</div>
1962<hr/>The documentation for this class was generated from the following files:<ul>
1963<li>src/armnn/<a class="el" href="_layer_8hpp_source.xhtml">Layer.hpp</a></li>
1964<li>src/armnn/<a class="el" href="_layer_8cpp_source.xhtml">Layer.cpp</a></li>
1965<li>src/armnn/layers/<a class="el" href="_layer_clone_base_8hpp_source.xhtml">LayerCloneBase.hpp</a></li>
1966</ul>
1967</div><!-- contents -->
1968</div><!-- doc-content -->
1969<!-- start footer part -->
1970<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1971 <ul>
1972 <li class="navelem"><a class="el" href="namespacearmnn.xhtml">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_layer.xhtml">Layer</a></li>
1973 <li class="footer">Generated on Fri Mar 13 2020 16:09:18 for ArmNN by
1974 <a href="http://www.doxygen.org/index.html">
1975 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
1976 </ul>
1977</div>
1978</body>
1979</html>