blob: 352b161ad4f397398f201a15f013956deb47feac [file] [log] [blame]
Nikhil Raj03c7ff32023-08-22 12:00:04 +01001<!-- HTML header for doxygen 1.8.17-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
7<meta name="generator" content="Doxygen 1.8.17"/>
8<meta name="viewport" content="width=device-width, initial-scale=1"/>
9<title>Arm NN: BatchNormalizationLayer Class Reference</title>
10<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
15<script type="text/javascript" src="navtreedata.js"></script>
16<script type="text/javascript" src="navtree.js"></script>
17<link href="search/search.css" rel="stylesheet" type="text/css"/>
18<script type="text/javascript" src="search/searchdata.js"></script>
19<script type="text/javascript" src="search/search.js"></script>
20<script type="text/x-mathjax-config">
21 MathJax.Hub.Config({
22 extensions: ["tex2jax.js"],
23 jax: ["input/TeX","output/HTML-CSS"],
24});
25</script>
26<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
27<link href="doxygen.css" rel="stylesheet" type="text/css" />
28<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
29</head>
30<body>
31<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32<div id="titlearea">
33<table cellspacing="0" cellpadding="0">
34 <tbody>
35 <tr style="height: 56px;">
36 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
37 <td id="projectalign" style="padding-left: 0.9em;">
38 <div id="projectname">
Nikhil Raj1dc83fe2024-05-16 09:47:51 +010039 &#160;<span id="projectnumber">24.05</span>
Nikhil Raj03c7ff32023-08-22 12:00:04 +010040 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
47<!-- Generated by Doxygen 1.8.17 -->
48<script type="text/javascript">
49/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
50var searchBox = new SearchBox("searchBox", "search",false,'Search');
51/* @license-end */
52</script>
53<script type="text/javascript" src="menudata.js"></script>
54<script type="text/javascript" src="menu.js"></script>
55<script type="text/javascript">
56/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
57$(function() {
58 initMenu('',true,false,'search.php','Search');
59 $(document).ready(function() { init_search(); });
60});
61/* @license-end */</script>
62<div id="main-nav"></div>
63</div><!-- top -->
64<div id="side-nav" class="ui-resizable side-nav-resizable">
65 <div id="nav-tree">
66 <div id="nav-tree-contents">
67 <div id="nav-sync" class="sync"></div>
68 </div>
69 </div>
70 <div id="splitbar" style="-moz-user-select:none;"
71 class="ui-resizable-handle">
72 </div>
73</div>
74<script type="text/javascript">
75/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
76$(document).ready(function(){initNavTree('classarmnn_1_1_batch_normalization_layer.html',''); initResizable(); });
77/* @license-end */
78</script>
79<div id="doc-content">
80<!-- window showing the filter options -->
81<div id="MSearchSelectWindow"
82 onmouseover="return searchBox.OnSearchSelectShow()"
83 onmouseout="return searchBox.OnSearchSelectHide()"
84 onkeydown="return searchBox.OnSearchSelectKey(event)">
85</div>
86
87<!-- iframe showing the search results (closed by default) -->
88<div id="MSearchResultsWindow">
89<iframe src="javascript:void(0)" frameborder="0"
90 name="MSearchResults" id="MSearchResults">
91</iframe>
92</div>
93
94<div class="header">
95 <div class="summary">
96<a href="#pub-methods">Public Member Functions</a> &#124;
97<a href="#pub-attribs">Public Attributes</a> &#124;
98<a href="#pro-methods">Protected Member Functions</a> &#124;
99<a href="classarmnn_1_1_batch_normalization_layer-members.html">List of all members</a> </div>
100 <div class="headertitle">
101<div class="title">BatchNormalizationLayer Class Reference</div> </div>
102</div><!--header-->
103<div class="contents">
104
105<p>This layer represents a batch normalization operation.
106 <a href="classarmnn_1_1_batch_normalization_layer.html#details">More...</a></p>
107
108<p><code>#include &lt;<a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>&gt;</code></p>
109<div class="dynheader">
110Inheritance diagram for BatchNormalizationLayer:</div>
111<div class="dyncontent">
112<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_batch_normalization_layer__inherit__graph.svg" width="419" height="384"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
113</div>
114<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
115<div class="dynheader">
116Collaboration diagram for BatchNormalizationLayer:</div>
117<div class="dyncontent">
118<div class="center"><iframe scrolling="no" frameborder="0" src="classarmnn_1_1_batch_normalization_layer__coll__graph.svg" width="510" height="384"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
119</div>
120<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
121<table class="memberdecls">
122<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
123Public Member Functions</h2></td></tr>
124<tr class="memitem:adfa912d0c4c6c00f1af2cbfa799572b7"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_workload.html">IWorkload</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">CreateWorkload</a> (const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;factory) const override</td></tr>
125<tr class="memdesc:adfa912d0c4c6c00f1af2cbfa799572b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes a workload for the BatchNormalization type. <a href="classarmnn_1_1_batch_normalization_layer.html#adfa912d0c4c6c00f1af2cbfa799572b7">More...</a><br /></td></tr>
126<tr class="separator:adfa912d0c4c6c00f1af2cbfa799572b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:a0a42b443052ed2114f9b8d8eac8bd7fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a0a42b443052ed2114f9b8d8eac8bd7fd">Clone</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph) const override</td></tr>
128<tr class="memdesc:a0a42b443052ed2114f9b8d8eac8bd7fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a dynamically-allocated copy of this layer. <a href="classarmnn_1_1_batch_normalization_layer.html#a0a42b443052ed2114f9b8d8eac8bd7fd">More...</a><br /></td></tr>
129<tr class="separator:a0a42b443052ed2114f9b8d8eac8bd7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<tr class="memitem:a8c8f543d7e9729362c266d12ec169966"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">ValidateTensorShapesFromInputs</a> () override</td></tr>
131<tr class="memdesc:a8c8f543d7e9729362c266d12ec169966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the input tensor shape(s) will lead to a valid configuration of <a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a>. <a href="classarmnn_1_1_batch_normalization_layer.html#a8c8f543d7e9729362c266d12ec169966">More...</a><br /></td></tr>
132<tr class="separator:a8c8f543d7e9729362c266d12ec169966"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ExecuteStrategy</a> (<a class="el" href="classarmnn_1_1_i_strategy.html">IStrategy</a> &amp;strategy) const override</td></tr>
134<tr class="memdesc:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a visitor to this layer. <a href="classarmnn_1_1_batch_normalization_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">More...</a><br /></td></tr>
135<tr class="separator:a46fc3fdd4b2a5dd6d184e57983cf20bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
136<tr class="inherit_header pub_methods_classarmnn_1_1_layer_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_layer_with_parameters')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_layer_with_parameters.html">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a></td></tr>
137<tr class="memitem:afa3e8a8f23589b1eaddbe203825bbdcf inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#afa3e8a8f23589b1eaddbe203825bbdcf">GetParameters</a> () const override</td></tr>
138<tr class="memdesc:afa3e8a8f23589b1eaddbe203825bbdcf inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the layer has a descriptor return it. <a href="classarmnn_1_1_layer_with_parameters.html#afa3e8a8f23589b1eaddbe203825bbdcf">More...</a><br /></td></tr>
139<tr class="separator:afa3e8a8f23589b1eaddbe203825bbdcf inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
140<tr class="memitem:a2ca654770a1890f15e3c7aab98e434a5 inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">SerializeLayerParameters</a> (<a class="el" href="namespacearmnn.html#a8c42c6647e31ebe525aeba878d133e45">ParameterStringifyFunction</a> &amp;fn) const override</td></tr>
141<tr class="memdesc:a2ca654770a1890f15e3c7aab98e434a5 inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to serialize the layer parameters to string (currently used in DotSerializer and company). <a href="classarmnn_1_1_layer_with_parameters.html#a2ca654770a1890f15e3c7aab98e434a5">More...</a><br /></td></tr>
142<tr class="separator:a2ca654770a1890f15e3c7aab98e434a5 inherit pub_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="inherit_header pub_methods_classarmnn_1_1_layer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_layer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_layer.html">Layer</a></td></tr>
144<tr class="memitem:a5e5ae420d199a0bccae5139d38c30205 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a5e5ae420d199a0bccae5139d38c30205">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, const char *name)</td></tr>
145<tr class="separator:a5e5ae420d199a0bccae5139d38c30205 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
146<tr class="memitem:a395d070748c18d903705799360088e80 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a395d070748c18d903705799360088e80">Layer</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> layout, const char *name)</td></tr>
147<tr class="separator:a395d070748c18d903705799360088e80 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
148<tr class="memitem:a9a97cb6d32661a57fc33bd29b8e41ff4 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9a97cb6d32661a57fc33bd29b8e41ff4">GetNameStr</a> () const</td></tr>
149<tr class="separator:a9a97cb6d32661a57fc33bd29b8e41ff4 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
150<tr class="memitem:af2c0edc7ea62a8baaec4d3d9b2b09256 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af2c0edc7ea62a8baaec4d3d9b2b09256">GetOutputHandler</a> (unsigned int i=0) const</td></tr>
151<tr class="separator:af2c0edc7ea62a8baaec4d3d9b2b09256 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
152<tr class="memitem:a1d4e05c17647232c514cfe58ca80744a inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1d4e05c17647232c514cfe58ca80744a">GetOutputHandler</a> (unsigned int i=0)</td></tr>
153<tr class="separator:a1d4e05c17647232c514cfe58ca80744a inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
154<tr class="memitem:a3560e0733f829e5194887d014a133144 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a3560e0733f829e5194887d014a133144">GetShapeInferenceMethod</a> () const</td></tr>
155<tr class="separator:a3560e0733f829e5194887d014a133144 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
156<tr class="memitem:ad6f282c92535e2be398a9b350d4e2ee9 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ad6f282c92535e2be398a9b350d4e2ee9">GetAllowExpandedDims</a> () const</td></tr>
157<tr class="separator:ad6f282c92535e2be398a9b350d4e2ee9 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
158<tr class="memitem:af5f530544d09a44d726f24702b67b35b inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af5f530544d09a44d726f24702b67b35b">GetInputSlots</a> () const</td></tr>
159<tr class="separator:af5f530544d09a44d726f24702b67b35b inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:a98cdff4e0b45f4c80bfcedaf926e16e0 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a98cdff4e0b45f4c80bfcedaf926e16e0">GetOutputSlots</a> () const</td></tr>
161<tr class="separator:a98cdff4e0b45f4c80bfcedaf926e16e0 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:af6cb8de21ef0da269ec9b67755ae92a0 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af6cb8de21ef0da269ec9b67755ae92a0">BeginInputSlots</a> ()</td></tr>
163<tr class="separator:af6cb8de21ef0da269ec9b67755ae92a0 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a9752e12d6b79e18da1a25f76159d2a72 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9752e12d6b79e18da1a25f76159d2a72">EndInputSlots</a> ()</td></tr>
165<tr class="separator:a9752e12d6b79e18da1a25f76159d2a72 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:a817d4be6dd88f532d36f51748ec14185 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a817d4be6dd88f532d36f51748ec14185">BeginOutputSlots</a> ()</td></tr>
167<tr class="separator:a817d4be6dd88f532d36f51748ec14185 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:a55f76d98fcd2f5cdac3e2b14536cb7ab inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a55f76d98fcd2f5cdac3e2b14536cb7ab">EndOutputSlots</a> ()</td></tr>
169<tr class="separator:a55f76d98fcd2f5cdac3e2b14536cb7ab inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="memitem:a22485f444124128940e798a42f0b76d9 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a22485f444124128940e798a42f0b76d9">IsOutputUnconnected</a> ()</td></tr>
171<tr class="separator:a22485f444124128940e798a42f0b76d9 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:aac329cade047e952621b59a51a5d5f49 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aac329cade047e952621b59a51a5d5f49">ResetPriority</a> () const</td></tr>
173<tr class="separator:aac329cade047e952621b59a51a5d5f49 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:af97a07195a67a638605b3c325763c2dd inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a419086ecb4dc9d0f9e5d8933c87e2ea2">LayerPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af97a07195a67a638605b3c325763c2dd">GetPriority</a> () const</td></tr>
175<tr class="separator:af97a07195a67a638605b3c325763c2dd inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:ad8e15c530c929ab823d89ae9fd2d3f11 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">GetType</a> () const override</td></tr>
177<tr class="memdesc:ad8e15c530c929ab823d89ae9fd2d3f11 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4" title="When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.">armnn::LayerType</a> of this layer. <a href="classarmnn_1_1_layer.html#ad8e15c530c929ab823d89ae9fd2d3f11">More...</a><br /></td></tr>
178<tr class="separator:ad8e15c530c929ab823d89ae9fd2d3f11 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
179<tr class="memitem:aea909c7327109228ef618d459015def3 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aea909c7327109228ef618d459015def3">GetDataType</a> () const</td></tr>
180<tr class="separator:aea909c7327109228ef618d459015def3 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
181<tr class="memitem:afdb1d37740e7a083b625d669588b6a0e inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afdb1d37740e7a083b625d669588b6a0e">GetBackendId</a> () const</td></tr>
182<tr class="separator:afdb1d37740e7a083b625d669588b6a0e inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
183<tr class="memitem:a316670cb6b65902e017c32ca4bcb4b98 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98">SetBackendId</a> (const <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &amp;id) override</td></tr>
184<tr class="memdesc:a316670cb6b65902e017c32ca4bcb4b98 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the backend of the <a class="el" href="classarmnn_1_1_i_connectable_layer.html" title="Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.">IConnectableLayer</a>. <a href="classarmnn_1_1_layer.html#a316670cb6b65902e017c32ca4bcb4b98">More...</a><br /></td></tr>
185<tr class="separator:a316670cb6b65902e017c32ca4bcb4b98 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:a3ff62126ec713a2708e5fbaa6146a7de inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a3ff62126ec713a2708e5fbaa6146a7de">CreateTensorHandles</a> (const <a class="el" href="classarmnn_1_1_tensor_handle_factory_registry.html">TensorHandleFactoryRegistry</a> &amp;registry, const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;factory, const bool IsMemoryManaged=true)</td></tr>
187<tr class="separator:a3ff62126ec713a2708e5fbaa6146a7de inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:a0607e36e88f38c34c71c663164b76776 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a0607e36e88f38c34c71c663164b76776">VerifyLayerConnections</a> (unsigned int expectedConnections, const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;location) const</td></tr>
189<tr class="separator:a0607e36e88f38c34c71c663164b76776 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:a65ca562c882ad619684445a1402f415a inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">InferOutputShapes</a> (const std::vector&lt; <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &gt; &amp;inputShapes) const override</td></tr>
191<tr class="memdesc:a65ca562c882ad619684445a1402f415a inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Infer the shape of the output(s) based on the provided input shape(s) <a href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">More...</a><br /></td></tr>
192<tr class="separator:a65ca562c882ad619684445a1402f415a inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
193<tr class="memitem:a339bef86bc340c3d1393ed83950fe8af inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a339bef86bc340c3d1393ed83950fe8af">ReleaseConstantData</a> ()</td></tr>
194<tr class="separator:a339bef86bc340c3d1393ed83950fe8af inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<tr class="memitem:a386acff5f8430245239ce58d00ba7576 inherit pub_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename Op &gt; </td></tr>
196<tr class="memitem:a386acff5f8430245239ce58d00ba7576 inherit pub_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a386acff5f8430245239ce58d00ba7576">OperateOnConstantTensors</a> (Op op)</td></tr>
197<tr class="separator:a386acff5f8430245239ce58d00ba7576 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<tr class="memitem:a7ddf0cf6f620d59c10e63495ace795d0 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a> () const override</td></tr>
199<tr class="memdesc:a7ddf0cf6f620d59c10e63495ace795d0 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the layer. <a href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">More...</a><br /></td></tr>
200<tr class="separator:a7ddf0cf6f620d59c10e63495ace795d0 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:abc0660dc440c8a285b456c9ef6383c26 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">GetNumInputSlots</a> () const override</td></tr>
202<tr class="memdesc:abc0660dc440c8a285b456c9ef6383c26 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable input slots. <a href="classarmnn_1_1_layer.html#abc0660dc440c8a285b456c9ef6383c26">More...</a><br /></td></tr>
203<tr class="separator:abc0660dc440c8a285b456c9ef6383c26 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:a1594bddc87d6477df300317658f566bb inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">GetNumOutputSlots</a> () const override</td></tr>
205<tr class="memdesc:a1594bddc87d6477df300317658f566bb inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of connectable output slots. <a href="classarmnn_1_1_layer.html#a1594bddc87d6477df300317658f566bb">More...</a><br /></td></tr>
206<tr class="separator:a1594bddc87d6477df300317658f566bb inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
207<tr class="memitem:acf8b8e23bf647836592982f97088d375 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">GetInputSlot</a> (unsigned int index) const override</td></tr>
208<tr class="memdesc:acf8b8e23bf647836592982f97088d375 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a const input slot handle by slot index. <a href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">More...</a><br /></td></tr>
209<tr class="separator:acf8b8e23bf647836592982f97088d375 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
210<tr class="memitem:a1b50eb1358cdf382f4bc3fc8849f8e8e inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_input_slot.html">InputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a1b50eb1358cdf382f4bc3fc8849f8e8e">GetInputSlot</a> (unsigned int index) override</td></tr>
211<tr class="memdesc:a1b50eb1358cdf382f4bc3fc8849f8e8e inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the input slot handle by slot index. <a href="classarmnn_1_1_layer.html#a1b50eb1358cdf382f4bc3fc8849f8e8e">More...</a><br /></td></tr>
212<tr class="separator:a1b50eb1358cdf382f4bc3fc8849f8e8e inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
213<tr class="memitem:a0e36688a43c35668d8db5257274c68fe inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a> (unsigned int index=0) const override</td></tr>
214<tr class="memdesc:a0e36688a43c35668d8db5257274c68fe inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the const output slot handle by slot index. <a href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">More...</a><br /></td></tr>
215<tr class="separator:a0e36688a43c35668d8db5257274c68fe inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:abbd71844785bb2f00a81baca30ea5ff0 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_output_slot.html">OutputSlot</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#abbd71844785bb2f00a81baca30ea5ff0">GetOutputSlot</a> (unsigned int index=0) override</td></tr>
217<tr class="memdesc:abbd71844785bb2f00a81baca30ea5ff0 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output slot handle by slot index. <a href="classarmnn_1_1_layer.html#abbd71844785bb2f00a81baca30ea5ff0">More...</a><br /></td></tr>
218<tr class="separator:abbd71844785bb2f00a81baca30ea5ff0 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<tr class="memitem:a6d1024208b672a87ef2c1bfaf93d2b9f inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a6d1024208b672a87ef2c1bfaf93d2b9f">SetGuid</a> (<a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a> guid)</td></tr>
220<tr class="separator:a6d1024208b672a87ef2c1bfaf93d2b9f inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
221<tr class="memitem:a8dc12f0ee5b232d397bd18ced1a72a64 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_types_8hpp.html#af22094b802160f09f7c89ad9eee10084">LayerGuid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">GetGuid</a> () const final</td></tr>
222<tr class="memdesc:a8dc12f0ee5b232d397bd18ced1a72a64 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique id of the layer. <a href="classarmnn_1_1_layer.html#a8dc12f0ee5b232d397bd18ced1a72a64">More...</a><br /></td></tr>
223<tr class="separator:a8dc12f0ee5b232d397bd18ced1a72a64 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="memitem:a339248d89d5e21534ecf74b4393ed4d2 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a339248d89d5e21534ecf74b4393ed4d2">AddRelatedLayerName</a> (const std::string layerName)</td></tr>
225<tr class="separator:a339248d89d5e21534ecf74b4393ed4d2 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:a5e5520194ea4042fe07b0bf53c28f634 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">const std::list&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a5e5520194ea4042fe07b0bf53c28f634">GetRelatedLayerNames</a> ()</td></tr>
227<tr class="separator:a5e5520194ea4042fe07b0bf53c28f634 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<tr class="memitem:ae68bb844446f28cf8580ecbe2f516ff6 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ae68bb844446f28cf8580ecbe2f516ff6">Reparent</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;dest, std::list&lt; <a class="el" href="classarmnn_1_1_layer.html">Layer</a> * &gt;::const_iterator iterator)=0</td></tr>
229<tr class="separator:ae68bb844446f28cf8580ecbe2f516ff6 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="memitem:a43a46eafee5c08787ab17b4342730c20 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a43a46eafee5c08787ab17b4342730c20">BackendSelectionHint</a> (<a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &gt; backend) final</td></tr>
231<tr class="memdesc:a43a46eafee5c08787ab17b4342730c20 inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a hint for the optimizer as to which backend to prefer for this layer. <a href="classarmnn_1_1_layer.html#a43a46eafee5c08787ab17b4342730c20">More...</a><br /></td></tr>
232<tr class="separator:a43a46eafee5c08787ab17b4342730c20 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
233<tr class="memitem:a6ff80e440308295056b57e2adaa42888 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_backend_id.html">BackendId</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a6ff80e440308295056b57e2adaa42888">GetBackendHint</a> () const</td></tr>
234<tr class="separator:a6ff80e440308295056b57e2adaa42888 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
235<tr class="memitem:a429abdfa769f4d48268938dcaea00904 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a429abdfa769f4d48268938dcaea00904">SetShapeInferenceMethod</a> (<a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod)</td></tr>
236<tr class="separator:a429abdfa769f4d48268938dcaea00904 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
237<tr class="memitem:a328c9cf1c3abf2febcce4801ba706541 inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a328c9cf1c3abf2febcce4801ba706541">SetAllowExpandedDims</a> (bool allowExpandedDims)</td></tr>
238<tr class="separator:a328c9cf1c3abf2febcce4801ba706541 inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
239<tr class="memitem:aefb14147290b6b928c5fc924ba035acc inherit pub_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
240<tr class="memitem:aefb14147290b6b928c5fc924ba035acc inherit pub_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aefb14147290b6b928c5fc924ba035acc">GetAdditionalInformation</a> () const</td></tr>
241<tr class="separator:aefb14147290b6b928c5fc924ba035acc inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
242<tr class="memitem:aea1c8483ebeabc0dcbd9090b4f648f1d inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aea1c8483ebeabc0dcbd9090b4f648f1d">SetAdditionalInfoForObject</a> (const <a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a> &amp;additionalInfo)</td></tr>
243<tr class="separator:aea1c8483ebeabc0dcbd9090b4f648f1d inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<tr class="memitem:a94a487f29157eeec10e2f9a372487bcc inherit pub_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="structarmnn_1_1_base_descriptor.html">BaseDescriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a94a487f29157eeec10e2f9a372487bcc">GetParameters</a> () const override</td></tr>
245<tr class="memdesc:a94a487f29157eeec10e2f9a372487bcc inherit pub_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the layer has a descriptor return it. <a href="classarmnn_1_1_layer.html#a94a487f29157eeec10e2f9a372487bcc">More...</a><br /></td></tr>
246<tr class="separator:a94a487f29157eeec10e2f9a372487bcc inherit pub_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
247</table><table class="memberdecls">
248<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
249Public Attributes</h2></td></tr>
250<tr class="memitem:a2dfc280952c7939299c304fcbf855b97"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a></td></tr>
251<tr class="memdesc:a2dfc280952c7939299c304fcbf855b97"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to store Mean values. <a href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">More...</a><br /></td></tr>
252<tr class="separator:a2dfc280952c7939299c304fcbf855b97"><td class="memSeparator" colspan="2">&#160;</td></tr>
253<tr class="memitem:a7d38a70f30295f365c3a98fc7fa4a229"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a></td></tr>
254<tr class="memdesc:a7d38a70f30295f365c3a98fc7fa4a229"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to store Variance values. <a href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">More...</a><br /></td></tr>
255<tr class="separator:a7d38a70f30295f365c3a98fc7fa4a229"><td class="memSeparator" colspan="2">&#160;</td></tr>
256<tr class="memitem:a7645e8ead378db5ad17eadbdb9df4da6"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a></td></tr>
257<tr class="memdesc:a7645e8ead378db5ad17eadbdb9df4da6"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to store Beta values. <a href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">More...</a><br /></td></tr>
258<tr class="separator:a7645e8ead378db5ad17eadbdb9df4da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
259<tr class="memitem:a5da51be22147d174ff661810c32675b0"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a></td></tr>
260<tr class="memdesc:a5da51be22147d174ff661810c32675b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to store Gamma values. <a href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">More...</a><br /></td></tr>
261<tr class="separator:a5da51be22147d174ff661810c32675b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
262</table><table class="memberdecls">
263<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
264Protected Member Functions</h2></td></tr>
265<tr class="memitem:a422383d53af27cac50c856a1b97ee5a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a422383d53af27cac50c856a1b97ee5a8">BatchNormalizationLayer</a> (const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;param, const char *name)</td></tr>
266<tr class="memdesc:a422383d53af27cac50c856a1b97ee5a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor to create a <a class="el" href="classarmnn_1_1_batch_normalization_layer.html" title="This layer represents a batch normalization operation.">BatchNormalizationLayer</a>. <a href="classarmnn_1_1_batch_normalization_layer.html#a422383d53af27cac50c856a1b97ee5a8">More...</a><br /></td></tr>
267<tr class="separator:a422383d53af27cac50c856a1b97ee5a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
268<tr class="memitem:a15bb63bb2fb8d760dc022720a7314acf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a15bb63bb2fb8d760dc022720a7314acf">~BatchNormalizationLayer</a> ()=default</td></tr>
269<tr class="memdesc:a15bb63bb2fb8d760dc022720a7314acf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <a href="classarmnn_1_1_batch_normalization_layer.html#a15bb63bb2fb8d760dc022720a7314acf">More...</a><br /></td></tr>
270<tr class="separator:a15bb63bb2fb8d760dc022720a7314acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
271<tr class="memitem:a29cc31172f6ab16ac931f90c667c092d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html#a29cc31172f6ab16ac931f90c667c092d">GetConstantTensorsByRef</a> () const override</td></tr>
272<tr class="memdesc:a29cc31172f6ab16ac931f90c667c092d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the handles to the constant values stored by the layer. <a href="classarmnn_1_1_batch_normalization_layer.html#a29cc31172f6ab16ac931f90c667c092d">More...</a><br /></td></tr>
273<tr class="separator:a29cc31172f6ab16ac931f90c667c092d"><td class="memSeparator" colspan="2">&#160;</td></tr>
274<tr class="inherit_header pro_methods_classarmnn_1_1_layer_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_layer_with_parameters')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_layer_with_parameters.html">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a></td></tr>
275<tr class="memitem:a1f5a1d629b1ef52a0d8e0214a0fb51a1 inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#a1f5a1d629b1ef52a0d8e0214a0fb51a1">LayerWithParameters</a> (unsigned int numInputSlots, unsigned int numOutputSlots, <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> type, const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;param, const char *name)</td></tr>
276<tr class="separator:a1f5a1d629b1ef52a0d8e0214a0fb51a1 inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
277<tr class="memitem:adc0f578e075f63379058f2d2641a509a inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#adc0f578e075f63379058f2d2641a509a">~LayerWithParameters</a> ()=default</td></tr>
278<tr class="separator:adc0f578e075f63379058f2d2641a509a inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
279<tr class="memitem:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#a30a858b2b26d651a066537e499fbf40d">PrepInfoAndDesc</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor) const</td></tr>
280<tr class="memdesc:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to reduce duplication in *Layer::CreateWorkload. <a href="classarmnn_1_1_layer_with_parameters.html#a30a858b2b26d651a066537e499fbf40d">More...</a><br /></td></tr>
281<tr class="separator:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
282<tr class="memitem:a46fc3fdd4b2a5dd6d184e57983cf20bc inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">ExecuteStrategy</a> (<a class="el" href="classarmnn_1_1_i_strategy.html">IStrategy</a> &amp;strategy) const override</td></tr>
283<tr class="memdesc:a46fc3fdd4b2a5dd6d184e57983cf20bc inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a visitor to this layer. <a href="classarmnn_1_1_layer_with_parameters.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">More...</a><br /></td></tr>
284<tr class="separator:a46fc3fdd4b2a5dd6d184e57983cf20bc inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
285<tr class="memitem:ad588423ab0d55c8ec4860a7f0a21f5a0 inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">Layer::ImmutableConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#ad588423ab0d55c8ec4860a7f0a21f5a0">GetConnectedConstantAsInputTensors</a> () const</td></tr>
286<tr class="separator:ad588423ab0d55c8ec4860a7f0a21f5a0 inherit pro_methods_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
287<tr class="inherit_header pro_methods_classarmnn_1_1_layer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_layer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_layer.html">Layer</a></td></tr>
288<tr class="memitem:aacfb208d750bdfce1bbd423e5cac76e2 inherit pro_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aacfb208d750bdfce1bbd423e5cac76e2">~Layer</a> ()=default</td></tr>
289<tr class="separator:aacfb208d750bdfce1bbd423e5cac76e2 inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
290<tr class="memitem:afc3239f5fc116259bf5451964e803646 inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
291<tr class="memitem:afc3239f5fc116259bf5451964e803646 inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afc3239f5fc116259bf5451964e803646">CollectQueueDescriptorInputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;info) const</td></tr>
292<tr class="separator:afc3239f5fc116259bf5451964e803646 inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
293<tr class="memitem:a499ca5a94d0174ed21786b6994b2cd8c inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
294<tr class="memitem:a499ca5a94d0174ed21786b6994b2cd8c inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a499ca5a94d0174ed21786b6994b2cd8c">CollectQueueDescriptorOutputs</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor, <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;info) const</td></tr>
295<tr class="separator:a499ca5a94d0174ed21786b6994b2cd8c inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
296<tr class="memitem:aeb2d638cc0e02c10075e015100996f2d inherit pro_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aeb2d638cc0e02c10075e015100996f2d">ValidateAndCopyShape</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;outputShape, const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;inferredShape, const <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod, const std::string &amp;layerName, const unsigned int outputSlotIndex=0)</td></tr>
297<tr class="separator:aeb2d638cc0e02c10075e015100996f2d inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
298<tr class="memitem:a448afc716fda85394df1e8e5b7d530e8 inherit pro_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a448afc716fda85394df1e8e5b7d530e8">VerifyShapeInferenceType</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> &amp;outputShape, <a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a> shapeInferenceMethod)</td></tr>
299<tr class="separator:a448afc716fda85394df1e8e5b7d530e8 inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
300<tr class="memitem:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename QueueDescriptor &gt; </td></tr>
301<tr class="memitem:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a30a858b2b26d651a066537e499fbf40d">PrepInfoAndDesc</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor) const</td></tr>
302<tr class="memdesc:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to reduce duplication in *Layer::CreateWorkload. <a href="classarmnn_1_1_layer.html#a30a858b2b26d651a066537e499fbf40d">More...</a><br /></td></tr>
303<tr class="separator:a30a858b2b26d651a066537e499fbf40d inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
304<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101 inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplParams" colspan="2">template&lt;typename LayerType , typename ... Params&gt; </td></tr>
305<tr class="memitem:aa10fd205c3f5469a9ecb2aa2a3ffd101 inherit pro_methods_classarmnn_1_1_layer"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4">LayerType</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aa10fd205c3f5469a9ecb2aa2a3ffd101">CloneBase</a> (<a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph, Params &amp;&amp;... params) const</td></tr>
306<tr class="separator:aa10fd205c3f5469a9ecb2aa2a3ffd101 inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
307<tr class="memitem:a9114de666bc2d910faa846b04fc26974 inherit pro_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">ConstantTensors</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#a9114de666bc2d910faa846b04fc26974">GetConstantTensorsByRef</a> () override final</td></tr>
308<tr class="separator:a9114de666bc2d910faa846b04fc26974 inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
309<tr class="memitem:af7f0460d32511de0da525f1817d13e8c inherit pro_methods_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#af7f0460d32511de0da525f1817d13e8c">SetAdditionalInfo</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;descriptor) const</td></tr>
310<tr class="separator:af7f0460d32511de0da525f1817d13e8c inherit pro_methods_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
311<tr class="inherit_header pro_methods_classarmnn_1_1_i_connectable_layer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_connectable_layer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a></td></tr>
312<tr class="memitem:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#a8c7faf37c1d965431aaa02ae934d67ee">~IConnectableLayer</a> ()</td></tr>
313<tr class="memdesc:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Objects are not deletable via the handle. <a href="classarmnn_1_1_i_connectable_layer.html#a8c7faf37c1d965431aaa02ae934d67ee">More...</a><br /></td></tr>
314<tr class="separator:a8c7faf37c1d965431aaa02ae934d67ee inherit pro_methods_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
315</table><table class="memberdecls">
316<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
317Additional Inherited Members</h2></td></tr>
318<tr class="inherit_header pub_types_classarmnn_1_1_layer_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classarmnn_1_1_layer_with_parameters')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classarmnn_1_1_layer_with_parameters.html">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a></td></tr>
319<tr class="memitem:a6b1bd3d5380a0ce8ecb71ddb0261c3fa inherit pub_types_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#a6b1bd3d5380a0ce8ecb71ddb0261c3fa">DescriptorType</a> = <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a></td></tr>
320<tr class="separator:a6b1bd3d5380a0ce8ecb71ddb0261c3fa inherit pub_types_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
321<tr class="inherit_header pub_types_classarmnn_1_1_i_connectable_layer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classarmnn_1_1_i_connectable_layer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a></td></tr>
322<tr class="memitem:af978f897fb7e115a901cb7ed95f8e532 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#af978f897fb7e115a901cb7ed95f8e532">ConstantTensors</a> = std::vector&lt; std::reference_wrapper&lt; std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt; &gt;&gt;</td></tr>
323<tr class="separator:af978f897fb7e115a901cb7ed95f8e532 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
324<tr class="memitem:aba5c20cadbebd2e7ba67e20a47e31472 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">ImmutableConstantTensors</a> = std::vector&lt; std::reference_wrapper&lt; const std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt; &gt;&gt;</td></tr>
325<tr class="separator:aba5c20cadbebd2e7ba67e20a47e31472 inherit pub_types_classarmnn_1_1_i_connectable_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
326<tr class="inherit_header pro_attribs_classarmnn_1_1_layer_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classarmnn_1_1_layer_with_parameters')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classarmnn_1_1_layer_with_parameters.html">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;</a></td></tr>
327<tr class="memitem:ad32ac22bc72e28dfd6b466d143c8e262 inherit pro_attribs_classarmnn_1_1_layer_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_with_parameters.html#ad32ac22bc72e28dfd6b466d143c8e262">m_Param</a></td></tr>
328<tr class="memdesc:ad32ac22bc72e28dfd6b466d143c8e262 inherit pro_attribs_classarmnn_1_1_layer_with_parameters"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parameters for the layer (not including tensor-valued weights etc.). <a href="classarmnn_1_1_layer_with_parameters.html#ad32ac22bc72e28dfd6b466d143c8e262">More...</a><br /></td></tr>
329<tr class="separator:ad32ac22bc72e28dfd6b466d143c8e262 inherit pro_attribs_classarmnn_1_1_layer_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
330<tr class="inherit_header pro_attribs_classarmnn_1_1_layer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classarmnn_1_1_layer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classarmnn_1_1_layer.html">Layer</a></td></tr>
331<tr class="memitem:ac7170f79bd0eadb1b6153e359c023cc0 inherit pro_attribs_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a2a5caf3721af872f43c7642fec9449bc">AdditionalInfoObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#ac7170f79bd0eadb1b6153e359c023cc0">m_AdditionalInfoObject</a></td></tr>
332<tr class="separator:ac7170f79bd0eadb1b6153e359c023cc0 inherit pro_attribs_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
333<tr class="memitem:aa44d91037bba52ba0dec6577509ade3b inherit pro_attribs_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_output_handler.html">OutputHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#aa44d91037bba52ba0dec6577509ade3b">m_OutputHandlers</a></td></tr>
334<tr class="separator:aa44d91037bba52ba0dec6577509ade3b inherit pro_attribs_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
335<tr class="memitem:afe508761cc8318b15329ba4acf7fbfec inherit pro_attribs_classarmnn_1_1_layer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#adf57837d00e8352d9b5cc5ab1fb5fee9">ShapeInferenceMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a></td></tr>
336<tr class="separator:afe508761cc8318b15329ba4acf7fbfec inherit pro_attribs_classarmnn_1_1_layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
337</table>
338<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
339<div class="textblock"><p>This layer represents a batch normalization operation. </p>
340
341<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00015">15</a> of file <a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>.</p>
342</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
343<a id="a422383d53af27cac50c856a1b97ee5a8"></a>
344<h2 class="memtitle"><span class="permalink"><a href="#a422383d53af27cac50c856a1b97ee5a8">&#9670;&nbsp;</a></span>BatchNormalizationLayer()</h2>
345
346<div class="memitem">
347<div class="memproto">
348<table class="mlabels">
349 <tr>
350 <td class="mlabels-left">
351 <table class="memname">
352 <tr>
353 <td class="memname"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a> </td>
354 <td>(</td>
355 <td class="paramtype">const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;&#160;</td>
356 <td class="paramname"><em>param</em>, </td>
357 </tr>
358 <tr>
359 <td class="paramkey"></td>
360 <td></td>
361 <td class="paramtype">const char *&#160;</td>
362 <td class="paramname"><em>name</em>&#160;</td>
363 </tr>
364 <tr>
365 <td></td>
366 <td>)</td>
367 <td></td><td></td>
368 </tr>
369 </table>
370 </td>
371 <td class="mlabels-right">
372<span class="mlabels"><span class="mlabel">protected</span></span> </td>
373 </tr>
374</table>
375</div><div class="memdoc">
376
377<p>Constructor to create a <a class="el" href="classarmnn_1_1_batch_normalization_layer.html" title="This layer represents a batch normalization operation.">BatchNormalizationLayer</a>. </p>
378<dl class="params"><dt>Parameters</dt><dd>
379 <table class="params">
380 <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td><a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html" title="A BatchNormalizationDescriptor for the BatchNormalizationLayer.">BatchNormalizationDescriptor</a> to configure the batch normalization operation. </td></tr>
381 <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td><a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
382 </table>
383 </dd>
384</dl>
385
386<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00016">16</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
387<div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; : <a class="code" href="classarmnn_1_1_layer_with_parameters.html#a1f5a1d629b1ef52a0d8e0214a0fb51a1">LayerWithParameters</a>(1, 1, <a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e">LayerType::BatchNormalization</a>, param, name)</div>
388<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
389<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div>
390</div><!-- fragment -->
391<p class="reference">References <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e">armnn::BatchNormalization</a>.</p>
392
393</div>
394</div>
395<a id="a15bb63bb2fb8d760dc022720a7314acf"></a>
396<h2 class="memtitle"><span class="permalink"><a href="#a15bb63bb2fb8d760dc022720a7314acf">&#9670;&nbsp;</a></span>~BatchNormalizationLayer()</h2>
397
398<div class="memitem">
399<div class="memproto">
400<table class="mlabels">
401 <tr>
402 <td class="mlabels-left">
403 <table class="memname">
404 <tr>
405 <td class="memname">~<a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a> </td>
406 <td>(</td>
407 <td class="paramname"></td><td>)</td>
408 <td></td>
409 </tr>
410 </table>
411 </td>
412 <td class="mlabels-right">
413<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
414 </tr>
415</table>
416</div><div class="memdoc">
417
418<p>Default destructor. </p>
419
420</div>
421</div>
422<h2 class="groupheader">Member Function Documentation</h2>
423<a id="a0a42b443052ed2114f9b8d8eac8bd7fd"></a>
424<h2 class="memtitle"><span class="permalink"><a href="#a0a42b443052ed2114f9b8d8eac8bd7fd">&#9670;&nbsp;</a></span>Clone()</h2>
425
426<div class="memitem">
427<div class="memproto">
428<table class="mlabels">
429 <tr>
430 <td class="mlabels-left">
431 <table class="memname">
432 <tr>
433 <td class="memname"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a> * Clone </td>
434 <td>(</td>
435 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td>
436 <td class="paramname"><em>graph</em></td><td>)</td>
437 <td> const</td>
438 </tr>
439 </table>
440 </td>
441 <td class="mlabels-right">
442<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
443 </tr>
444</table>
445</div><div class="memdoc">
446
447<p>Creates a dynamically-allocated copy of this layer. </p>
448<dl class="params"><dt>Parameters</dt><dd>
449 <table class="params">
450 <tr><td class="paramdir">[in]</td><td class="paramname">graph</td><td>The graph into which this layer is being cloned. </td></tr>
451 </table>
452 </dd>
453</dl>
454
455<p>Implements <a class="el" href="classarmnn_1_1_layer.html#ae89ff455503aa106d00bf34103d2f2e0">Layer</a>.</p>
456
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100457<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">55</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
458<div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
459<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">auto</span> layer = CloneBase&lt;BatchNormalizationLayer&gt;(graph, <a class="code" href="classarmnn_1_1_layer_with_parameters.html#ad32ac22bc72e28dfd6b466d143c8e262">m_Param</a>, <a class="code" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a>());</div>
460<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
461<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; layer-&gt;m_Mean = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a> ? <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a> : <span class="keyword">nullptr</span>;</div>
462<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; layer-&gt;m_Variance = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a> ? <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a> : <span class="keyword">nullptr</span>;</div>
463<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; layer-&gt;m_Beta = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a> ? <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a> : <span class="keyword">nullptr</span>;</div>
464<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; layer-&gt;m_Gamma = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a> ? <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a> : <span class="keyword">nullptr</span>;</div>
465<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
466<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> std::move(layer);</div>
467<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100468</div><!-- fragment -->
469<p class="reference">References <a class="el" href="_layer_8hpp_source.html#l00332">Layer::GetName()</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00023">BatchNormalizationLayer::m_Beta</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00025">BatchNormalizationLayer::m_Gamma</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00019">BatchNormalizationLayer::m_Mean</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00052">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::m_Param</a>, and <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00021">BatchNormalizationLayer::m_Variance</a>.</p>
470
471</div>
472</div>
473<a id="adfa912d0c4c6c00f1af2cbfa799572b7"></a>
474<h2 class="memtitle"><span class="permalink"><a href="#adfa912d0c4c6c00f1af2cbfa799572b7">&#9670;&nbsp;</a></span>CreateWorkload()</h2>
475
476<div class="memitem">
477<div class="memproto">
478<table class="mlabels">
479 <tr>
480 <td class="mlabels-left">
481 <table class="memname">
482 <tr>
483 <td class="memname">std::unique_ptr&lt; <a class="el" href="classarmnn_1_1_i_workload.html">IWorkload</a> &gt; CreateWorkload </td>
484 <td>(</td>
485 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_workload_factory.html">IWorkloadFactory</a> &amp;&#160;</td>
486 <td class="paramname"><em>factory</em></td><td>)</td>
487 <td> const</td>
488 </tr>
489 </table>
490 </td>
491 <td class="mlabels-right">
492<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
493 </tr>
494</table>
495</div><div class="memdoc">
496
497<p>Makes a workload for the BatchNormalization type. </p>
498<dl class="params"><dt>Parameters</dt><dd>
499 <table class="params">
500 <tr><td class="paramdir">[in]</td><td class="paramname">graph</td><td>The graph where this layer can be found. </td></tr>
501 <tr><td class="paramdir">[in]</td><td class="paramname">factory</td><td>The workload factory which will create the workload. </td></tr>
502 </table>
503 </dd>
504</dl>
505<dl class="section return"><dt>Returns</dt><dd>A pointer to the created workload, or nullptr if not created. </dd></dl>
506
507<p>Implements <a class="el" href="classarmnn_1_1_layer.html#a08d1e10a45f15cd0bd02557be35a3864">Layer</a>.</p>
508
509<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">21</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
510<div class="fragment"><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div>
511<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// on this level constant data should not be released..</span></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100512<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a>)</div>
513<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div>
514<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a>(<span class="stringliteral">&quot;BatchNormalizationLayer: Mean data should not be null.&quot;</span>);</div>
515<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100516<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100517<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a>)</div>
518<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
519<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a>(<span class="stringliteral">&quot;BatchNormalizationLayer: Variance data should not be null.&quot;</span>);</div>
520<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
521<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
522<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a>)</div>
523<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; {</div>
524<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a>(<span class="stringliteral">&quot;BatchNormalizationLayer: Beta data should not be null.&quot;</span>);</div>
525<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div>
526<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
527<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a>)</div>
528<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
529<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a>(<span class="stringliteral">&quot;BatchNormalizationLayer: Gamma data should not be null.&quot;</span>);</div>
530<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
531<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
532<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; BatchNormalizationQueueDescriptor descriptor;</div>
533<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#af7f0460d32511de0da525f1817d13e8c">SetAdditionalInfo</a>(descriptor);</div>
534<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
535<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; descriptor.m_Mean = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a>.get();</div>
536<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; descriptor.m_Variance = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a>.get();</div>
537<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; descriptor.m_Beta = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a>.get();</div>
538<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; descriptor.m_Gamma = <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a>.get();</div>
539<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
540<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> factory.CreateWorkload(<a class="code" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e">LayerType::BatchNormalization</a>, descriptor, <a class="code" href="classarmnn_1_1_layer_with_parameters.html#a30a858b2b26d651a066537e499fbf40d">PrepInfoAndDesc</a>(descriptor));</div>
541<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100542</div><!-- fragment -->
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100543<p class="reference">References <a class="el" href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e">armnn::BatchNormalization</a>, <a class="el" href="classarmnn_1_1_i_workload_factory.html#a694a8411c8c799da95306034d274930b">IWorkloadFactory::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00023">BatchNormalizationLayer::m_Beta</a>, <a class="el" href="_workload_data_8hpp_source.html#l00323">BatchNormalizationQueueDescriptor::m_Beta</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00025">BatchNormalizationLayer::m_Gamma</a>, <a class="el" href="_workload_data_8hpp_source.html#l00324">BatchNormalizationQueueDescriptor::m_Gamma</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00019">BatchNormalizationLayer::m_Mean</a>, <a class="el" href="_workload_data_8hpp_source.html#l00321">BatchNormalizationQueueDescriptor::m_Mean</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00021">BatchNormalizationLayer::m_Variance</a>, <a class="el" href="_workload_data_8hpp_source.html#l00322">BatchNormalizationQueueDescriptor::m_Variance</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00044">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::PrepInfoAndDesc()</a>, and <a class="el" href="_layer_8cpp_source.html#l00303">Layer::SetAdditionalInfo()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100544
545</div>
546</div>
547<a id="a46fc3fdd4b2a5dd6d184e57983cf20bc"></a>
548<h2 class="memtitle"><span class="permalink"><a href="#a46fc3fdd4b2a5dd6d184e57983cf20bc">&#9670;&nbsp;</a></span>ExecuteStrategy()</h2>
549
550<div class="memitem">
551<div class="memproto">
552<table class="mlabels">
553 <tr>
554 <td class="mlabels-left">
555 <table class="memname">
556 <tr>
557 <td class="memname">void ExecuteStrategy </td>
558 <td>(</td>
559 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_strategy.html">IStrategy</a> &amp;&#160;</td>
560 <td class="paramname"><em>strategy</em></td><td>)</td>
561 <td> const</td>
562 </tr>
563 </table>
564 </td>
565 <td class="mlabels-right">
566<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
567 </tr>
568</table>
569</div><div class="memdoc">
570
571<p>Apply a visitor to this layer. </p>
572
573<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer.html#a46fc3fdd4b2a5dd6d184e57983cf20bc">Layer</a>.</p>
574
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100575<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">94</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
576<div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div>
577<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; ManagedConstTensorHandle managedMean(<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a>);</div>
578<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; ManagedConstTensorHandle managedVariance(<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a>);</div>
579<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; ManagedConstTensorHandle managedBeta(<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a>);</div>
580<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; ManagedConstTensorHandle managedGamma(<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a>);</div>
581<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
582<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; std::vector&lt;armnn::ConstTensor&gt; constTensors { { managedMean.GetTensorInfo(), managedMean.Map() },</div>
583<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; { managedVariance.GetTensorInfo(), managedVariance.Map() },</div>
584<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; { managedBeta.GetTensorInfo(), managedBeta.Map() },</div>
585<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; { managedGamma.GetTensorInfo(), managedGamma.Map() } };</div>
586<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
587<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; strategy.ExecuteStrategy(<span class="keyword">this</span>, <a class="code" href="classarmnn_1_1_layer_with_parameters.html#afa3e8a8f23589b1eaddbe203825bbdcf">GetParameters</a>(), constTensors, <a class="code" href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">GetName</a>());</div>
588<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100589</div><!-- fragment -->
590<p class="reference">References <a class="el" href="classarmnn_1_1_i_strategy.html#ad4f8c9ff973cf6a603d26b56c5b34967">IStrategy::ExecuteStrategy()</a>, <a class="el" href="_layer_8hpp_source.html#l00332">Layer::GetName()</a>, <a class="el" href="_layer_with_parameters_8hpp_source.html#l00019">LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::GetParameters()</a>, <a class="el" href="_tensor_handle_8hpp_source.html#l00239">ManagedConstTensorHandle::GetTensorInfo()</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00023">BatchNormalizationLayer::m_Beta</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00025">BatchNormalizationLayer::m_Gamma</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00019">BatchNormalizationLayer::m_Mean</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00021">BatchNormalizationLayer::m_Variance</a>, and <a class="el" href="_tensor_handle_8hpp_source.html#l00196">ManagedConstTensorHandle::Map()</a>.</p>
591
592</div>
593</div>
594<a id="a29cc31172f6ab16ac931f90c667c092d"></a>
595<h2 class="memtitle"><span class="permalink"><a href="#a29cc31172f6ab16ac931f90c667c092d">&#9670;&nbsp;</a></span>GetConstantTensorsByRef()</h2>
596
597<div class="memitem">
598<div class="memproto">
599<table class="mlabels">
600 <tr>
601 <td class="mlabels-left">
602 <table class="memname">
603 <tr>
604 <td class="memname"><a class="el" href="classarmnn_1_1_i_connectable_layer.html#aba5c20cadbebd2e7ba67e20a47e31472">Layer::ImmutableConstantTensors</a> GetConstantTensorsByRef </td>
605 <td>(</td>
606 <td class="paramname"></td><td>)</td>
607 <td> const</td>
608 </tr>
609 </table>
610 </td>
611 <td class="mlabels-right">
612<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
613 </tr>
614</table>
615</div><div class="memdoc">
616
617<p>Retrieve the handles to the constant values stored by the layer. </p>
618<dl class="section return"><dt>Returns</dt><dd>A vector of the constant tensors stored by this layer. </dd></dl>
619
620<p>Reimplemented from <a class="el" href="classarmnn_1_1_layer.html#a45544992c89527fa4d51498a91401640">Layer</a>.</p>
621
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100622<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00088">88</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
623<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div>
624<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// For API stability DO NOT ALTER order and add new members to the end of vector</span></div>
625<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">m_Mean</a>, <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">m_Variance</a>, <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">m_Beta</a>, <a class="code" href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">m_Gamma</a>};</div>
626<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100627</div><!-- fragment -->
628<p class="reference">References <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00023">BatchNormalizationLayer::m_Beta</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00025">BatchNormalizationLayer::m_Gamma</a>, <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00019">BatchNormalizationLayer::m_Mean</a>, and <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00021">BatchNormalizationLayer::m_Variance</a>.</p>
629
630</div>
631</div>
632<a id="a8c8f543d7e9729362c266d12ec169966"></a>
633<h2 class="memtitle"><span class="permalink"><a href="#a8c8f543d7e9729362c266d12ec169966">&#9670;&nbsp;</a></span>ValidateTensorShapesFromInputs()</h2>
634
635<div class="memitem">
636<div class="memproto">
637<table class="mlabels">
638 <tr>
639 <td class="mlabels-left">
640 <table class="memname">
641 <tr>
642 <td class="memname">void ValidateTensorShapesFromInputs </td>
643 <td>(</td>
644 <td class="paramname"></td><td>)</td>
645 <td></td>
646 </tr>
647 </table>
648 </td>
649 <td class="mlabels-right">
650<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
651 </tr>
652</table>
653</div><div class="memdoc">
654
655<p>Check if the input tensor shape(s) will lead to a valid configuration of <a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a>. </p>
656<dl class="params"><dt>Parameters</dt><dd>
657 <table class="params">
658 <tr><td class="paramdir">[in]</td><td class="paramname">shapeInferenceMethod</td><td>Indicates if output shape shall be overwritten or just validated. </td></tr>
659 </table>
660 </dd>
661</dl>
662
663<p>Implements <a class="el" href="classarmnn_1_1_layer.html#a84ff600212ba26e665de9b978ec896a4">Layer</a>.</p>
664
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100665<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00067">67</a> of file <a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a>.</p>
666<div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div>
667<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a0607e36e88f38c34c71c663164b76776">VerifyLayerConnections</a>(1, <a class="code" href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>());</div>
668<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
669<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> TensorShape&amp; outputShape = <a class="code" href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">GetOutputSlot</a>(0).<a class="code" href="classarmnn_1_1_output_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>();</div>
670<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
671<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#a448afc716fda85394df1e8e5b7d530e8">VerifyShapeInferenceType</a>(outputShape, <a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a>);</div>
672<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
673<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">auto</span> inferredShapes = <a class="code" href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">InferOutputShapes</a>({ <a class="code" href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">GetInputSlot</a>(0).<a class="code" href="classarmnn_1_1_input_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">GetTensorInfo</a>().<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>() });</div>
674<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
675<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (inferredShapes.size() != 1)</div>
676<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
677<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_layer_validation_exception.html">armnn::LayerValidationException</a>(<span class="stringliteral">&quot;inferredShapes has &quot;</span></div>
678<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; + std::to_string(inferredShapes.size()) +</div>
679<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="stringliteral">&quot; elements - should only have 1.&quot;</span>);</div>
680<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
681<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
682<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classarmnn_1_1_layer.html#aeb2d638cc0e02c10075e015100996f2d">ValidateAndCopyShape</a>(outputShape, inferredShapes[0], <a class="code" href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">m_ShapeInferenceMethod</a>, <span class="stringliteral">&quot;BatchNormalizationLayer&quot;</span>);</div>
683<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
684<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100685</div><!-- fragment -->
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100686<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00203">CHECK_LOCATION</a>, <a class="el" href="_layer_8hpp_source.html#l00337">Layer::GetInputSlot()</a>, <a class="el" href="_layer_8hpp_source.html#l00339">Layer::GetOutputSlot()</a>, <a class="el" href="_tensor_8hpp_source.html#l00193">TensorInfo::GetShape()</a>, <a class="el" href="_layer_8cpp_source.html#l00614">InputSlot::GetTensorInfo()</a>, <a class="el" href="_layer_8cpp_source.html#l00100">OutputSlot::GetTensorInfo()</a>, <a class="el" href="_layer_8cpp_source.html#l00432">Layer::InferOutputShapes()</a>, <a class="el" href="_layer_8hpp_source.html#l00441">Layer::m_ShapeInferenceMethod</a>, <a class="el" href="_layer_8cpp_source.html#l00457">Layer::ValidateAndCopyShape()</a>, <a class="el" href="_layer_8cpp_source.html#l00410">Layer::VerifyLayerConnections()</a>, and <a class="el" href="_layer_8cpp_source.html#l00526">Layer::VerifyShapeInferenceType()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100687
688</div>
689</div>
690<h2 class="groupheader">Member Data Documentation</h2>
691<a id="a7645e8ead378db5ad17eadbdb9df4da6"></a>
692<h2 class="memtitle"><span class="permalink"><a href="#a7645e8ead378db5ad17eadbdb9df4da6">&#9670;&nbsp;</a></span>m_Beta</h2>
693
694<div class="memitem">
695<div class="memproto">
696 <table class="memname">
697 <tr>
698 <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_Beta</td>
699 </tr>
700 </table>
701</div><div class="memdoc">
702
703<p>A unique pointer to store Beta values. </p>
704
705<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00023">23</a> of file <a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>.</p>
706
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100707<p class="reference">Referenced by <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">BatchNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">BatchNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00088">BatchNormalizationLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100708
709</div>
710</div>
711<a id="a5da51be22147d174ff661810c32675b0"></a>
712<h2 class="memtitle"><span class="permalink"><a href="#a5da51be22147d174ff661810c32675b0">&#9670;&nbsp;</a></span>m_Gamma</h2>
713
714<div class="memitem">
715<div class="memproto">
716 <table class="memname">
717 <tr>
718 <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_Gamma</td>
719 </tr>
720 </table>
721</div><div class="memdoc">
722
723<p>A unique pointer to store Gamma values. </p>
724
725<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00025">25</a> of file <a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>.</p>
726
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100727<p class="reference">Referenced by <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">BatchNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">BatchNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00088">BatchNormalizationLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100728
729</div>
730</div>
731<a id="a2dfc280952c7939299c304fcbf855b97"></a>
732<h2 class="memtitle"><span class="permalink"><a href="#a2dfc280952c7939299c304fcbf855b97">&#9670;&nbsp;</a></span>m_Mean</h2>
733
734<div class="memitem">
735<div class="memproto">
736 <table class="memname">
737 <tr>
738 <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_Mean</td>
739 </tr>
740 </table>
741</div><div class="memdoc">
742
743<p>A unique pointer to store Mean values. </p>
744
745<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00019">19</a> of file <a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>.</p>
746
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100747<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l02388">NetworkImpl::AddBatchNormalizationLayer()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">BatchNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">BatchNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00088">BatchNormalizationLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100748
749</div>
750</div>
751<a id="a7d38a70f30295f365c3a98fc7fa4a229"></a>
752<h2 class="memtitle"><span class="permalink"><a href="#a7d38a70f30295f365c3a98fc7fa4a229">&#9670;&nbsp;</a></span>m_Variance</h2>
753
754<div class="memitem">
755<div class="memproto">
756 <table class="memname">
757 <tr>
758 <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_Variance</td>
759 </tr>
760 </table>
761</div><div class="memdoc">
762
763<p>A unique pointer to store Variance values. </p>
764
765<p class="definition">Definition at line <a class="el" href="_batch_normalization_layer_8hpp_source.html#l00021">21</a> of file <a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a>.</p>
766
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100767<p class="reference">Referenced by <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00055">BatchNormalizationLayer::Clone()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00021">BatchNormalizationLayer::CreateWorkload()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00094">BatchNormalizationLayer::ExecuteStrategy()</a>, <a class="el" href="_batch_normalization_layer_8cpp_source.html#l00088">BatchNormalizationLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00144">NeonBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_cl_backend_8cpp_source.html#l00292">ClBackend::OptimizeSubgraphView()</a>.</p>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100768
769</div>
770</div>
771<hr/>The documentation for this class was generated from the following files:<ul>
772<li>src/armnn/layers/<a class="el" href="_batch_normalization_layer_8hpp_source.html">BatchNormalizationLayer.hpp</a></li>
773<li>src/armnn/layers/<a class="el" href="_batch_normalization_layer_8cpp_source.html">BatchNormalizationLayer.cpp</a></li>
774</ul>
775</div><!-- contents -->
776</div><!-- doc-content -->
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100777<div class="ttc" id="anamespacearmnn_html_a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e"><div class="ttname"><a href="namespacearmnn.html#a56943a0946e5f15e5e58054b8e7a04a4ae4743c3ec15d1d84169b17264634692e">armnn::LayerType::BatchNormalization</a></div><div class="ttdeci">@ BatchNormalization</div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100778<div class="ttc" id="aclassarmnn_1_1_output_slot_html_ada2ad7d1caeeb4ef6195c8925fad6a65"><div class="ttname"><a href="classarmnn_1_1_output_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">armnn::OutputSlot::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo &amp; GetTensorInfo() const override</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00100">Layer.cpp:100</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100779<div class="ttc" id="aclassarmnn_1_1_batch_normalization_layer_html_a2dfc280952c7939299c304fcbf855b97"><div class="ttname"><a href="classarmnn_1_1_batch_normalization_layer.html#a2dfc280952c7939299c304fcbf855b97">armnn::BatchNormalizationLayer::m_Mean</a></div><div class="ttdeci">std::shared_ptr&lt; ConstTensorHandle &gt; m_Mean</div><div class="ttdoc">A unique pointer to store Mean values.</div><div class="ttdef"><b>Definition:</b> <a href="_batch_normalization_layer_8hpp_source.html#l00019">BatchNormalizationLayer.hpp:19</a></div></div>
780<div class="ttc" id="a_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00203">Exceptions.hpp:203</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100781<div class="ttc" id="aclassarmnn_1_1_layer_html_aeb2d638cc0e02c10075e015100996f2d"><div class="ttname"><a href="classarmnn_1_1_layer.html#aeb2d638cc0e02c10075e015100996f2d">armnn::Layer::ValidateAndCopyShape</a></div><div class="ttdeci">void ValidateAndCopyShape(const TensorShape &amp;outputShape, const TensorShape &amp;inferredShape, const ShapeInferenceMethod shapeInferenceMethod, const std::string &amp;layerName, const unsigned int outputSlotIndex=0)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00457">Layer.cpp:457</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100782<div class="ttc" id="aclassarmnn_1_1_layer_html_a0e36688a43c35668d8db5257274c68fe"><div class="ttname"><a href="classarmnn_1_1_layer.html#a0e36688a43c35668d8db5257274c68fe">armnn::Layer::GetOutputSlot</a></div><div class="ttdeci">const OutputSlot &amp; GetOutputSlot(unsigned int index=0) const override</div><div class="ttdoc">Get the const output slot handle by slot index.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00339">Layer.hpp:339</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100783<div class="ttc" id="aclassarmnn_1_1_layer_html_acf8b8e23bf647836592982f97088d375"><div class="ttname"><a href="classarmnn_1_1_layer.html#acf8b8e23bf647836592982f97088d375">armnn::Layer::GetInputSlot</a></div><div class="ttdeci">const InputSlot &amp; GetInputSlot(unsigned int index) const override</div><div class="ttdoc">Get a const input slot handle by slot index.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00337">Layer.hpp:337</a></div></div>
784<div class="ttc" id="aclassarmnn_1_1_layer_with_parameters_html_afa3e8a8f23589b1eaddbe203825bbdcf"><div class="ttname"><a href="classarmnn_1_1_layer_with_parameters.html#afa3e8a8f23589b1eaddbe203825bbdcf">armnn::LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::GetParameters</a></div><div class="ttdeci">const BatchNormalizationDescriptor &amp; GetParameters() const override</div><div class="ttdef"><b>Definition:</b> <a href="_layer_with_parameters_8hpp_source.html#l00019">LayerWithParameters.hpp:19</a></div></div>
785<div class="ttc" id="aclassarmnn_1_1_layer_html_a7ddf0cf6f620d59c10e63495ace795d0"><div class="ttname"><a href="classarmnn_1_1_layer.html#a7ddf0cf6f620d59c10e63495ace795d0">armnn::Layer::GetName</a></div><div class="ttdeci">const char * GetName() const override</div><div class="ttdoc">Returns the name of the layer.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00332">Layer.hpp:332</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100786<div class="ttc" id="aclassarmnn_1_1_input_slot_html_ada2ad7d1caeeb4ef6195c8925fad6a65"><div class="ttname"><a href="classarmnn_1_1_input_slot.html#ada2ad7d1caeeb4ef6195c8925fad6a65">armnn::InputSlot::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo &amp; GetTensorInfo() const override</div><div class="ttdoc">Gets the TensorInfo for this InputSlot.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00614">Layer.cpp:614</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100787<div class="ttc" id="aclassarmnn_1_1_batch_normalization_layer_html_a5da51be22147d174ff661810c32675b0"><div class="ttname"><a href="classarmnn_1_1_batch_normalization_layer.html#a5da51be22147d174ff661810c32675b0">armnn::BatchNormalizationLayer::m_Gamma</a></div><div class="ttdeci">std::shared_ptr&lt; ConstTensorHandle &gt; m_Gamma</div><div class="ttdoc">A unique pointer to store Gamma values.</div><div class="ttdef"><b>Definition:</b> <a href="_batch_normalization_layer_8hpp_source.html#l00025">BatchNormalizationLayer.hpp:25</a></div></div>
788<div class="ttc" id="aclassarmnn_1_1_layer_with_parameters_html_ad32ac22bc72e28dfd6b466d143c8e262"><div class="ttname"><a href="classarmnn_1_1_layer_with_parameters.html#ad32ac22bc72e28dfd6b466d143c8e262">armnn::LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::m_Param</a></div><div class="ttdeci">BatchNormalizationDescriptor m_Param</div><div class="ttdoc">The parameters for the layer (not including tensor-valued weights etc.).</div><div class="ttdef"><b>Definition:</b> <a href="_layer_with_parameters_8hpp_source.html#l00052">LayerWithParameters.hpp:52</a></div></div>
789<div class="ttc" id="aclassarmnn_1_1_batch_normalization_layer_html_a7d38a70f30295f365c3a98fc7fa4a229"><div class="ttname"><a href="classarmnn_1_1_batch_normalization_layer.html#a7d38a70f30295f365c3a98fc7fa4a229">armnn::BatchNormalizationLayer::m_Variance</a></div><div class="ttdeci">std::shared_ptr&lt; ConstTensorHandle &gt; m_Variance</div><div class="ttdoc">A unique pointer to store Variance values.</div><div class="ttdef"><b>Definition:</b> <a href="_batch_normalization_layer_8hpp_source.html#l00021">BatchNormalizationLayer.hpp:21</a></div></div>
790<div class="ttc" id="aclassarmnn_1_1_layer_with_parameters_html_a30a858b2b26d651a066537e499fbf40d"><div class="ttname"><a href="classarmnn_1_1_layer_with_parameters.html#a30a858b2b26d651a066537e499fbf40d">armnn::LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::PrepInfoAndDesc</a></div><div class="ttdeci">WorkloadInfo PrepInfoAndDesc(QueueDescriptor &amp;descriptor) const</div><div class="ttdoc">Helper function to reduce duplication in *Layer::CreateWorkload.</div><div class="ttdef"><b>Definition:</b> <a href="_layer_with_parameters_8hpp_source.html#l00044">LayerWithParameters.hpp:44</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100791<div class="ttc" id="aclassarmnn_1_1_layer_validation_exception_html"><div class="ttname"><a href="classarmnn_1_1_layer_validation_exception.html">armnn::LayerValidationException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00105">Exceptions.hpp:105</a></div></div>
792<div class="ttc" id="aclassarmnn_1_1_layer_html_a448afc716fda85394df1e8e5b7d530e8"><div class="ttname"><a href="classarmnn_1_1_layer.html#a448afc716fda85394df1e8e5b7d530e8">armnn::Layer::VerifyShapeInferenceType</a></div><div class="ttdeci">void VerifyShapeInferenceType(const TensorShape &amp;outputShape, ShapeInferenceMethod shapeInferenceMethod)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00526">Layer.cpp:526</a></div></div>
793<div class="ttc" id="aclassarmnn_1_1_layer_html_af7f0460d32511de0da525f1817d13e8c"><div class="ttname"><a href="classarmnn_1_1_layer.html#af7f0460d32511de0da525f1817d13e8c">armnn::Layer::SetAdditionalInfo</a></div><div class="ttdeci">void SetAdditionalInfo(QueueDescriptor &amp;descriptor) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00303">Layer.cpp:303</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100794<div class="ttc" id="aclassarmnn_1_1_batch_normalization_layer_html_a7645e8ead378db5ad17eadbdb9df4da6"><div class="ttname"><a href="classarmnn_1_1_batch_normalization_layer.html#a7645e8ead378db5ad17eadbdb9df4da6">armnn::BatchNormalizationLayer::m_Beta</a></div><div class="ttdeci">std::shared_ptr&lt; ConstTensorHandle &gt; m_Beta</div><div class="ttdoc">A unique pointer to store Beta values.</div><div class="ttdef"><b>Definition:</b> <a href="_batch_normalization_layer_8hpp_source.html#l00023">BatchNormalizationLayer.hpp:23</a></div></div>
Nikhil Raj38b600d2024-02-15 15:02:19 +0000795<div class="ttc" id="aclassarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00193">Tensor.hpp:193</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100796<div class="ttc" id="aclassarmnn_1_1_layer_html_a65ca562c882ad619684445a1402f415a"><div class="ttname"><a href="classarmnn_1_1_layer.html#a65ca562c882ad619684445a1402f415a">armnn::Layer::InferOutputShapes</a></div><div class="ttdeci">std::vector&lt; TensorShape &gt; InferOutputShapes(const std::vector&lt; TensorShape &gt; &amp;inputShapes) const override</div><div class="ttdoc">Infer the shape of the output(s) based on the provided input shape(s)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00432">Layer.cpp:432</a></div></div>
797<div class="ttc" id="aclassarmnn_1_1_layer_html_a0607e36e88f38c34c71c663164b76776"><div class="ttname"><a href="classarmnn_1_1_layer.html#a0607e36e88f38c34c71c663164b76776">armnn::Layer::VerifyLayerConnections</a></div><div class="ttdeci">void VerifyLayerConnections(unsigned int expectedConnections, const CheckLocation &amp;location) const</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8cpp_source.html#l00410">Layer.cpp:410</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100798<div class="ttc" id="aclassarmnn_1_1_layer_with_parameters_html_a1f5a1d629b1ef52a0d8e0214a0fb51a1"><div class="ttname"><a href="classarmnn_1_1_layer_with_parameters.html#a1f5a1d629b1ef52a0d8e0214a0fb51a1">armnn::LayerWithParameters&lt; BatchNormalizationDescriptor &gt;::LayerWithParameters</a></div><div class="ttdeci">LayerWithParameters(unsigned int numInputSlots, unsigned int numOutputSlots, LayerType type, const BatchNormalizationDescriptor &amp;param, const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="_layer_with_parameters_8hpp_source.html#l00030">LayerWithParameters.hpp:30</a></div></div>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100799<div class="ttc" id="aclassarmnn_1_1_null_pointer_exception_html"><div class="ttname"><a href="classarmnn_1_1_null_pointer_exception.html">armnn::NullPointerException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00146">Exceptions.hpp:146</a></div></div>
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100800<div class="ttc" id="aclassarmnn_1_1_layer_html_afe508761cc8318b15329ba4acf7fbfec"><div class="ttname"><a href="classarmnn_1_1_layer.html#afe508761cc8318b15329ba4acf7fbfec">armnn::Layer::m_ShapeInferenceMethod</a></div><div class="ttdeci">ShapeInferenceMethod m_ShapeInferenceMethod</div><div class="ttdef"><b>Definition:</b> <a href="_layer_8hpp_source.html#l00441">Layer.hpp:441</a></div></div>
801<!-- start footer part -->
802<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
803 <ul>
804 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_batch_normalization_layer.html">BatchNormalizationLayer</a></li>
Nikhil Raj1dc83fe2024-05-16 09:47:51 +0100805 <li class="footer">Generated on Thu May 16 2024 09:31:54 for Arm NN by
Nikhil Raj03c7ff32023-08-22 12:00:04 +0100806 <a href="http://www.doxygen.org/index.html">
807 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
808 </ul>
809</div>
810</body>
811</html>