blob: 2ec85a5baf3e9919c8cc88ba1d16614bf48084d1 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: DynamicQuantizationVisitor Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('classarmnn_1_1_dynamic_quantization_visitor.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#pub-methods">Public Member Functions</a> &#124;
85<a href="classarmnn_1_1_dynamic_quantization_visitor-members.html">List of all members</a> </div>
86 <div class="headertitle">
87<div class="title">DynamicQuantizationVisitor Class Reference</div> </div>
88</div><!--header-->
89<div class="contents">
90
91<p>Visitor class to establish min/max ranges based on the type of the layer.
92 <a href="classarmnn_1_1_dynamic_quantization_visitor.html#details">More...</a></p>
93
94<p><code>#include &lt;<a class="el" href="_dynamic_quantization_visitor_8hpp_source.html">DynamicQuantizationVisitor.hpp</a>&gt;</code></p>
95<div class="dynheader">
96Inheritance diagram for DynamicQuantizationVisitor:</div>
97<div class="dyncontent">
98 <div class="center">
99 <img src="classarmnn_1_1_dynamic_quantization_visitor.png" usemap="#DynamicQuantizationVisitor_map" alt=""/>
100 <map id="DynamicQuantizationVisitor_map" name="DynamicQuantizationVisitor_map">
101<area href="classarmnn_1_1_layer_visitor_base.html" alt="LayerVisitorBase&lt; VisitorNoThrowPolicy &gt;" shape="rect" coords="0,56,255,80"/>
102<area href="classarmnn_1_1_i_layer_visitor.html" alt="ILayerVisitor" shape="rect" coords="0,0,255,24"/>
103</map>
104 </div></div>
105<table class="memberdecls">
106<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
107Public Member Functions</h2></td></tr>
108<tr class="memitem:af377247c8cdc9bf91e9e5edd87331fef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#af377247c8cdc9bf91e9e5edd87331fef">DynamicQuantizationVisitor</a> (<a class="el" href="classarmnn_1_1_range_tracker.html">RangeTracker</a> &amp;rangeTracker, <a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;graph)</td></tr>
109<tr class="separator:af377247c8cdc9bf91e9e5edd87331fef"><td class="memSeparator" colspan="2">&#160;</td></tr>
110<tr class="memitem:a4f083823a44ede4d3482361dcb61bebe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a4f083823a44ede4d3482361dcb61bebe">~DynamicQuantizationVisitor</a> ()=default</td></tr>
111<tr class="separator:a4f083823a44ede4d3482361dcb61bebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:a7cb4ef1bc9588c4319144460c288022f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a7cb4ef1bc9588c4319144460c288022f">VisitAdditionLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const char *name=nullptr) override</td></tr>
113<tr class="memdesc:a7cb4ef1bc9588c4319144460c288022f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions to set the Range on a per-layer-type basis. <a href="#a7cb4ef1bc9588c4319144460c288022f">More...</a><br /></td></tr>
114<tr class="separator:a7cb4ef1bc9588c4319144460c288022f"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:a1532cb8f551812e784ccc14faae407b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a1532cb8f551812e784ccc14faae407b9">VisitBatchNormalizationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;desc, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;mean, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;variance, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;beta, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;gamma, const char *name=nullptr) override</td></tr>
116<tr class="separator:a1532cb8f551812e784ccc14faae407b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:ac2f379ba77b06095e0c024e232ec1fd4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#ac2f379ba77b06095e0c024e232ec1fd4">VisitConvolution2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_convolution2d_descriptor.html">Convolution2dDescriptor</a> &amp;convolution2dDescriptor, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;biases, const char *name=nullptr) override</td></tr>
118<tr class="separator:ac2f379ba77b06095e0c024e232ec1fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<tr class="memitem:a554e88817e6fd98645388873a108f868"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a554e88817e6fd98645388873a108f868">VisitDepthwiseConvolution2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;desc, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;biases, const char *name=nullptr) override</td></tr>
120<tr class="separator:a554e88817e6fd98645388873a108f868"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:af493528dec93f39f5081dbefb40bff75"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#af493528dec93f39f5081dbefb40bff75">VisitActivationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_activation_descriptor.html">ActivationDescriptor</a> &amp;activationDescriptor, const char *name=nullptr) override</td></tr>
122<tr class="separator:af493528dec93f39f5081dbefb40bff75"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:ac98eae261af6c8d5f7161a01a1959e72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#ac98eae261af6c8d5f7161a01a1959e72">VisitFullyConnectedLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_fully_connected_descriptor.html">FullyConnectedDescriptor</a> &amp;desc, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;weights, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;biases, const char *name) override</td></tr>
124<tr class="separator:ac98eae261af6c8d5f7161a01a1959e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:ad5532a4626c0228acc7b01fa0f5515eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#ad5532a4626c0228acc7b01fa0f5515eb">VisitPermuteLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_permute_descriptor.html">PermuteDescriptor</a> &amp;permuteDescriptor, const char *name) override</td></tr>
126<tr class="separator:ad5532a4626c0228acc7b01fa0f5515eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:a8e327cc6432697fd55d6b91e554360d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a8e327cc6432697fd55d6b91e554360d9">VisitSpaceToBatchNdLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_space_to_batch_nd_descriptor.html">SpaceToBatchNdDescriptor</a> &amp;spaceToBatchNdDescriptor, const char *name=nullptr) override</td></tr>
128<tr class="separator:a8e327cc6432697fd55d6b91e554360d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:aaca77d69321f5ba94d639fe40dbd0b1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#aaca77d69321f5ba94d639fe40dbd0b1c">VisitPooling2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</a> &amp;pooling2dDescriptor, const char *name) override</td></tr>
130<tr class="separator:aaca77d69321f5ba94d639fe40dbd0b1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:a98f34d2511f43324833060154cbdba8d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a98f34d2511f43324833060154cbdba8d">VisitSoftmaxLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_softmax_descriptor.html">SoftmaxDescriptor</a> &amp;softmaxDescriptor, const char *name=nullptr) override</td></tr>
132<tr class="separator:a98f34d2511f43324833060154cbdba8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:a8a3cd0b0d46a765ad2b0652c72a31d0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a8a3cd0b0d46a765ad2b0652c72a31d0c">VisitConcatLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="namespacearmnn.html#a7863c179ff92feec660c48ab7b95ae55">ConcatDescriptor</a> &amp;originsDescriptor, const char *name=nullptr) override</td></tr>
134<tr class="separator:a8a3cd0b0d46a765ad2b0652c72a31d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:aeb652d74e4b3596e85b22c2d52144f73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#aeb652d74e4b3596e85b22c2d52144f73">VisitConstantLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;input, const char *name=nullptr) override</td></tr>
136<tr class="separator:aeb652d74e4b3596e85b22c2d52144f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:a4a7f7f33591fd91e8fb1c08d06c0733a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a4a7f7f33591fd91e8fb1c08d06c0733a">VisitReshapeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_reshape_descriptor.html">ReshapeDescriptor</a> &amp;reshapeDescriptor, const char *name=nullptr) override</td></tr>
138<tr class="separator:a4a7f7f33591fd91e8fb1c08d06c0733a"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:afbea8aa2295f2ab71ea5bb64ccd47871"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#afbea8aa2295f2ab71ea5bb64ccd47871">VisitSplitterLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="namespacearmnn.html#a60291543fe872b795e71e05bcd835fd1">SplitterDescriptor</a> &amp;splitterDescriptor, const char *name=nullptr) override</td></tr>
140<tr class="separator:afbea8aa2295f2ab71ea5bb64ccd47871"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:a5abbca55c908440acecfa6e0f921092d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a5abbca55c908440acecfa6e0f921092d">VisitResizeBilinearLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_resize_bilinear_descriptor.html">ResizeBilinearDescriptor</a> &amp;resizeDesc, const char *name=nullptr) override</td></tr>
142<tr class="separator:a5abbca55c908440acecfa6e0f921092d"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:a61b7aa0305e7c45a625f7835fa26b9b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a61b7aa0305e7c45a625f7835fa26b9b6">VisitStridedSliceLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">StridedSliceDescriptor</a> &amp;stridedSliceDescriptor, const char *name=nullptr) override</td></tr>
144<tr class="separator:a61b7aa0305e7c45a625f7835fa26b9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<tr class="memitem:af5d09e03a578afa9c0bb8afd11c65485"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#af5d09e03a578afa9c0bb8afd11c65485">VisitBatchToSpaceNdLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, const <a class="el" href="structarmnn_1_1_batch_to_space_nd_descriptor.html">BatchToSpaceNdDescriptor</a> &amp;batchToSpaceNdDescriptor, const char *name=nullptr) override</td></tr>
146<tr class="separator:af5d09e03a578afa9c0bb8afd11c65485"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="memitem:a2ca539d734553e606c0134940e444298"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a2ca539d734553e606c0134940e444298">VisitInputLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a> id, const char *name=nullptr) override</td></tr>
148<tr class="separator:a2ca539d734553e606c0134940e444298"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="memitem:ac75d60924c52b96ea6f9567fcfa2db10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#ac75d60924c52b96ea6f9567fcfa2db10">VisitOutputLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *layer, <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a> id, const char *name=nullptr) override</td></tr>
150<tr class="separator:ac75d60924c52b96ea6f9567fcfa2db10"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:a65ad16db7d3eab9c6bfc2cdb7271ef3b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a65ad16db7d3eab9c6bfc2cdb7271ef3b">FinishVisit</a> () override</td></tr>
152<tr class="separator:a65ad16db7d3eab9c6bfc2cdb7271ef3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:a795e9253dab52825add51ffc569eb81e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a795e9253dab52825add51ffc569eb81e">VisitNonCalibratedLayers</a> ()</td></tr>
154<tr class="separator:a795e9253dab52825add51ffc569eb81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:a2004cc285dba7f2d4e69352e60a9a7a0"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">armnn::LayerBindingId</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html#a2004cc285dba7f2d4e69352e60a9a7a0">GetOutputLayers</a> ()</td></tr>
156<tr class="separator:a2004cc285dba7f2d4e69352e60a9a7a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="inherit_header pub_methods_classarmnn_1_1_layer_visitor_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_layer_visitor_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_layer_visitor_base.html">LayerVisitorBase&lt; VisitorNoThrowPolicy &gt;</a></td></tr>
158<tr class="memitem:acb663f7919f9566c3dcc8b6478999d34 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#acb663f7919f9566c3dcc8b6478999d34">VisitAbsLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
159<tr class="separator:acb663f7919f9566c3dcc8b6478999d34 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:a30b99e5202fc77b02f92d5c44e5ca86d inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a30b99e5202fc77b02f92d5c44e5ca86d">VisitActivationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_activation_descriptor.html">ActivationDescriptor</a> &amp;, const char *) override</td></tr>
161<tr class="separator:a30b99e5202fc77b02f92d5c44e5ca86d inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:a0c9f3396207de48925016a2eee6aa12b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a0c9f3396207de48925016a2eee6aa12b">VisitAdditionLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
163<tr class="separator:a0c9f3396207de48925016a2eee6aa12b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a719076848950255b929636c97aaaede4 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a719076848950255b929636c97aaaede4">VisitArgMinMaxLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_arg_min_max_descriptor.html">ArgMinMaxDescriptor</a> &amp;, const char *) override</td></tr>
165<tr class="separator:a719076848950255b929636c97aaaede4 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:ab0ae25ba5f3c494d1fb32f06cd57af10 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ab0ae25ba5f3c494d1fb32f06cd57af10">VisitBatchNormalizationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const char *) override</td></tr>
167<tr class="separator:ab0ae25ba5f3c494d1fb32f06cd57af10 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:a62aac266e23bd680633e62832f56bc11 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a62aac266e23bd680633e62832f56bc11">VisitBatchToSpaceNdLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_batch_to_space_nd_descriptor.html">BatchToSpaceNdDescriptor</a> &amp;, const char *) override</td></tr>
169<tr class="separator:a62aac266e23bd680633e62832f56bc11 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="memitem:a95dc828296e6d05c0bf0b691d4dc6a3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a95dc828296e6d05c0bf0b691d4dc6a3f">VisitComparisonLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_comparison_descriptor.html">ComparisonDescriptor</a> &amp;, const char *) override</td></tr>
171<tr class="separator:a95dc828296e6d05c0bf0b691d4dc6a3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:a2d4f84683c4a00dfb5eecb6b165d41b9 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a2d4f84683c4a00dfb5eecb6b165d41b9">VisitConcatLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="namespacearmnn.html#a7863c179ff92feec660c48ab7b95ae55">ConcatDescriptor</a> &amp;, const char *) override</td></tr>
173<tr class="separator:a2d4f84683c4a00dfb5eecb6b165d41b9 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a90698dba3e90ced6f562cda146bf15e3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a90698dba3e90ced6f562cda146bf15e3">VisitConstantLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const char *) override</td></tr>
175<tr class="separator:a90698dba3e90ced6f562cda146bf15e3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:aff3099f516e132f4d8818a54fa1ee767 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#aff3099f516e132f4d8818a54fa1ee767">VisitConvolution2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_convolution2d_descriptor.html">Convolution2dDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;, const char *) override</td></tr>
177<tr class="separator:aff3099f516e132f4d8818a54fa1ee767 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:ad3aaff3b6165f8de16522bc4a1ed32a0 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ad3aaff3b6165f8de16522bc4a1ed32a0">VisitDepthToSpaceLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="namespacearmnn.html#a3647f60510bc8ddaced01c51b0ee8714">DepthToSpaceDescriptor</a> &amp;, const char *) override</td></tr>
179<tr class="separator:ad3aaff3b6165f8de16522bc4a1ed32a0 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:a70050fc50ee44a439665f914d5fe9684 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a70050fc50ee44a439665f914d5fe9684">VisitDepthwiseConvolution2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;, const char *) override</td></tr>
181<tr class="separator:a70050fc50ee44a439665f914d5fe9684 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:aa27cc900d32dcc4a92f59e3bab4f4653 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#aa27cc900d32dcc4a92f59e3bab4f4653">VisitDequantizeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
183<tr class="separator:aa27cc900d32dcc4a92f59e3bab4f4653 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="memitem:a88bad2eef809ccf6f2129f9ed4a6f3a7 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a88bad2eef809ccf6f2129f9ed4a6f3a7">VisitDetectionPostProcessLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_detection_post_process_descriptor.html">DetectionPostProcessDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const char *) override</td></tr>
185<tr class="separator:a88bad2eef809ccf6f2129f9ed4a6f3a7 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:a7450859464a381eafaedb33adc582f75 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a7450859464a381eafaedb33adc582f75">VisitDivisionLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
187<tr class="separator:a7450859464a381eafaedb33adc582f75 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:a9d02f4bfaffcb16e340e9b8c20bc5e35 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a9d02f4bfaffcb16e340e9b8c20bc5e35">VisitElementwiseUnaryLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_elementwise_unary_descriptor.html">ElementwiseUnaryDescriptor</a> &amp;, const char *) override</td></tr>
189<tr class="separator:a9d02f4bfaffcb16e340e9b8c20bc5e35 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:a3249cd1186dc7e700a0ec0884fb9d5fa inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a3249cd1186dc7e700a0ec0884fb9d5fa">VisitEqualLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
191<tr class="separator:a3249cd1186dc7e700a0ec0884fb9d5fa inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:a060c3a3f978fec03212afaff1fe1648d inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a060c3a3f978fec03212afaff1fe1648d">VisitFloorLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
193<tr class="separator:a060c3a3f978fec03212afaff1fe1648d inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:a9049cf6d72d4b67fff93670f21c09da3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a9049cf6d72d4b67fff93670f21c09da3">VisitFullyConnectedLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_fully_connected_descriptor.html">FullyConnectedDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;, const char *) override</td></tr>
195<tr class="separator:a9049cf6d72d4b67fff93670f21c09da3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
196<tr class="memitem:ae7639178bd8c29ffa83162dfd108b725 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ae7639178bd8c29ffa83162dfd108b725">VisitGatherLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
197<tr class="separator:ae7639178bd8c29ffa83162dfd108b725 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<tr class="memitem:a2a28dbfcd1e83bc8158d78feb93d4a0c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a2a28dbfcd1e83bc8158d78feb93d4a0c">VisitGreaterLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
199<tr class="separator:a2a28dbfcd1e83bc8158d78feb93d4a0c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<tr class="memitem:a6c23f9e9d8427775925d071feee5dbd1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a6c23f9e9d8427775925d071feee5dbd1">VisitInputLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a>, const char *) override</td></tr>
201<tr class="separator:a6c23f9e9d8427775925d071feee5dbd1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<tr class="memitem:a58f90a911e6827702c478cabaeac57fe inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a58f90a911e6827702c478cabaeac57fe">VisitInstanceNormalizationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_instance_normalization_descriptor.html">InstanceNormalizationDescriptor</a> &amp;, const char *) override</td></tr>
203<tr class="separator:a58f90a911e6827702c478cabaeac57fe inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:ae68e2b431ea3d2822f19ad4ac806fdaa inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ae68e2b431ea3d2822f19ad4ac806fdaa">VisitL2NormalizationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_l2_normalization_descriptor.html">L2NormalizationDescriptor</a> &amp;, const char *) override</td></tr>
205<tr class="separator:ae68e2b431ea3d2822f19ad4ac806fdaa inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<tr class="memitem:a8d4d2e5580385ee664830720698d112c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8d4d2e5580385ee664830720698d112c">VisitLogSoftmaxLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="namespacearmnn.html#ac14705405cbcdd580df613de6766fe65">LogSoftmaxDescriptor</a> &amp;, const char *) override</td></tr>
207<tr class="separator:a8d4d2e5580385ee664830720698d112c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
208<tr class="memitem:aaf1a238ec5b6bb172bc4cd3811f08b28 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#aaf1a238ec5b6bb172bc4cd3811f08b28">VisitLstmLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_lstm_descriptor.html">LstmDescriptor</a> &amp;, const <a class="el" href="structarmnn_1_1_lstm_input_params.html">LstmInputParams</a> &amp;, const char *) override</td></tr>
209<tr class="separator:aaf1a238ec5b6bb172bc4cd3811f08b28 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
210<tr class="memitem:a778e1b2219e3eb2d790d6e6e653a9f25 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a778e1b2219e3eb2d790d6e6e653a9f25">VisitMaximumLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
211<tr class="separator:a778e1b2219e3eb2d790d6e6e653a9f25 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<tr class="memitem:a0180a15e542f4ef240fadc09fe4b2e3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a0180a15e542f4ef240fadc09fe4b2e3f">VisitMeanLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_mean_descriptor.html">MeanDescriptor</a> &amp;, const char *) override</td></tr>
213<tr class="separator:a0180a15e542f4ef240fadc09fe4b2e3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<tr class="memitem:aafb62c879f0c78bfdc3c4e4f2cb82e68 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#aafb62c879f0c78bfdc3c4e4f2cb82e68">VisitMergeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
215<tr class="separator:aafb62c879f0c78bfdc3c4e4f2cb82e68 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:acef69a3870409ca9a6130db91047e729 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#acef69a3870409ca9a6130db91047e729">VisitMergerLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="namespacearmnn.html#a003d213dd28b0b8c0f26fbf268ccb975">MergerDescriptor</a> &amp;, const char *) override</td></tr>
217<tr class="separator:acef69a3870409ca9a6130db91047e729 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
218<tr class="memitem:a1e24e9a7bf52efc1699c126435574e95 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a1e24e9a7bf52efc1699c126435574e95">VisitMinimumLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
219<tr class="separator:a1e24e9a7bf52efc1699c126435574e95 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<tr class="memitem:ac57d22126a9131108214df9177addade inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ac57d22126a9131108214df9177addade">VisitMultiplicationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
221<tr class="separator:ac57d22126a9131108214df9177addade inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
222<tr class="memitem:a3150ff2299a2e193952300b8c9edd1e1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a3150ff2299a2e193952300b8c9edd1e1">VisitNormalizationLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_normalization_descriptor.html">NormalizationDescriptor</a> &amp;, const char *) override</td></tr>
223<tr class="separator:a3150ff2299a2e193952300b8c9edd1e1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="memitem:acc39ddb06acfd91cf3cfb0fcd9337005 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#acc39ddb06acfd91cf3cfb0fcd9337005">VisitOutputLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a>, const char *) override</td></tr>
225<tr class="separator:acc39ddb06acfd91cf3cfb0fcd9337005 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:a8a240e1b725cc204bb468b6b402e1670 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8a240e1b725cc204bb468b6b402e1670">VisitPadLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_pad_descriptor.html">PadDescriptor</a> &amp;, const char *) override</td></tr>
227<tr class="separator:a8a240e1b725cc204bb468b6b402e1670 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<tr class="memitem:a275f4c270ce472abc8701f6475ff7f38 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a275f4c270ce472abc8701f6475ff7f38">VisitPermuteLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_permute_descriptor.html">PermuteDescriptor</a> &amp;, const char *) override</td></tr>
229<tr class="separator:a275f4c270ce472abc8701f6475ff7f38 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="memitem:a5e369658cb00178eeb9136f1c912fd3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a5e369658cb00178eeb9136f1c912fd3f">VisitPooling2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</a> &amp;, const char *) override</td></tr>
231<tr class="separator:a5e369658cb00178eeb9136f1c912fd3f inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<tr class="memitem:a79c933bea6fb9986c3baa171be98da5c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a79c933bea6fb9986c3baa171be98da5c">VisitPreluLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
233<tr class="separator:a79c933bea6fb9986c3baa171be98da5c inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
234<tr class="memitem:a8a6db421f0be147916cb4894ad3885d1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8a6db421f0be147916cb4894ad3885d1">VisitQuantizeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
235<tr class="separator:a8a6db421f0be147916cb4894ad3885d1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
236<tr class="memitem:a2fdb21a22a95af72177b4e909741b5c7 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a2fdb21a22a95af72177b4e909741b5c7">VisitQuantizedLstmLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_quantized_lstm_input_params.html">QuantizedLstmInputParams</a> &amp;, const char *) override</td></tr>
237<tr class="separator:a2fdb21a22a95af72177b4e909741b5c7 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
238<tr class="memitem:a9ebd504c48864d63917836e0dc335725 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a9ebd504c48864d63917836e0dc335725">VisitReshapeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_reshape_descriptor.html">ReshapeDescriptor</a> &amp;, const char *) override</td></tr>
239<tr class="separator:a9ebd504c48864d63917836e0dc335725 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<tr class="memitem:a8d4c5571a4b3db2badf7f1dce3467391 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8d4c5571a4b3db2badf7f1dce3467391">VisitResizeBilinearLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_resize_bilinear_descriptor.html">ResizeBilinearDescriptor</a> &amp;, const char *) override</td></tr>
241<tr class="separator:a8d4c5571a4b3db2badf7f1dce3467391 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
242<tr class="memitem:a49c296c5d0f9efb76f165954cf40c281 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a49c296c5d0f9efb76f165954cf40c281">VisitResizeLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_resize_descriptor.html">ResizeDescriptor</a> &amp;, const char *) override</td></tr>
243<tr class="separator:a49c296c5d0f9efb76f165954cf40c281 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<tr class="memitem:a6a62605ac51992ce0913cc119b59546b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a6a62605ac51992ce0913cc119b59546b">VisitRsqrtLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
245<tr class="separator:a6a62605ac51992ce0913cc119b59546b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
246<tr class="memitem:a1c023b3170bed9368b65730bc7fff60b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a1c023b3170bed9368b65730bc7fff60b">VisitSliceLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_slice_descriptor.html">SliceDescriptor</a> &amp;, const char *) override</td></tr>
247<tr class="separator:a1c023b3170bed9368b65730bc7fff60b inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
248<tr class="memitem:abd8b0b2e365bbeabceddc35a1cb52916 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#abd8b0b2e365bbeabceddc35a1cb52916">VisitSoftmaxLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_softmax_descriptor.html">SoftmaxDescriptor</a> &amp;, const char *) override</td></tr>
249<tr class="separator:abd8b0b2e365bbeabceddc35a1cb52916 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
250<tr class="memitem:a9478c4f41840a2e2c12b7f336e725a8a inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a9478c4f41840a2e2c12b7f336e725a8a">VisitSpaceToBatchNdLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_space_to_batch_nd_descriptor.html">SpaceToBatchNdDescriptor</a> &amp;, const char *) override</td></tr>
251<tr class="separator:a9478c4f41840a2e2c12b7f336e725a8a inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
252<tr class="memitem:acdedda623455cc7a0f982d6f4e96d53a inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#acdedda623455cc7a0f982d6f4e96d53a">VisitSpaceToDepthLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_space_to_depth_descriptor.html">SpaceToDepthDescriptor</a> &amp;, const char *) override</td></tr>
253<tr class="separator:acdedda623455cc7a0f982d6f4e96d53a inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
254<tr class="memitem:a8689a80f8939de6323319aba5806ee9e inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8689a80f8939de6323319aba5806ee9e">VisitSplitterLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_views_descriptor.html">ViewsDescriptor</a> &amp;, const char *) override</td></tr>
255<tr class="separator:a8689a80f8939de6323319aba5806ee9e inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
256<tr class="memitem:a8b47d411d147aa420f7a69356d84fb80 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a8b47d411d147aa420f7a69356d84fb80">VisitStackLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_stack_descriptor.html">StackDescriptor</a> &amp;, const char *) override</td></tr>
257<tr class="separator:a8b47d411d147aa420f7a69356d84fb80 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
258<tr class="memitem:a3c15053a7e295099a1a34c4add5a03b8 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a3c15053a7e295099a1a34c4add5a03b8">VisitStandInLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_stand_in_descriptor.html">StandInDescriptor</a> &amp;, const char *) override</td></tr>
259<tr class="separator:a3c15053a7e295099a1a34c4add5a03b8 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
260<tr class="memitem:a31862ce4ffaddde96ebe0afcf04f3577 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a31862ce4ffaddde96ebe0afcf04f3577">VisitStridedSliceLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">StridedSliceDescriptor</a> &amp;, const char *) override</td></tr>
261<tr class="separator:a31862ce4ffaddde96ebe0afcf04f3577 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
262<tr class="memitem:ac42c3a57a82260c8315d4f0320620934 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ac42c3a57a82260c8315d4f0320620934">VisitSubtractionLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
263<tr class="separator:ac42c3a57a82260c8315d4f0320620934 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
264<tr class="memitem:a877d400155151a5afba9f0b17fbcf8f3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a877d400155151a5afba9f0b17fbcf8f3">VisitSwitchLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const char *) override</td></tr>
265<tr class="separator:a877d400155151a5afba9f0b17fbcf8f3 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
266<tr class="memitem:a4dfb04de9aa0b8b55c70fe96af13e1e1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#a4dfb04de9aa0b8b55c70fe96af13e1e1">VisitTransposeConvolution2dLayer</a> (const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *, const <a class="el" href="structarmnn_1_1_transpose_convolution2d_descriptor.html">TransposeConvolution2dDescriptor</a> &amp;, const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;, const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;, const char *) override</td></tr>
267<tr class="separator:a4dfb04de9aa0b8b55c70fe96af13e1e1 inherit pub_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
268<tr class="inherit_header pub_methods_classarmnn_1_1_i_layer_visitor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_i_layer_visitor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_i_layer_visitor.html">ILayerVisitor</a></td></tr>
269<tr class="memitem:a463965a96896bf0d261b44eea5172c7b inherit pub_methods_classarmnn_1_1_i_layer_visitor"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_layer_visitor.html#a463965a96896bf0d261b44eea5172c7b">StartVisit</a> ()</td></tr>
270<tr class="separator:a463965a96896bf0d261b44eea5172c7b inherit pub_methods_classarmnn_1_1_i_layer_visitor"><td class="memSeparator" colspan="2">&#160;</td></tr>
271</table><table class="memberdecls">
272<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
273Additional Inherited Members</h2></td></tr>
274<tr class="inherit_header pro_methods_classarmnn_1_1_layer_visitor_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_layer_visitor_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_layer_visitor_base.html">LayerVisitorBase&lt; VisitorNoThrowPolicy &gt;</a></td></tr>
275<tr class="memitem:aec6644c81f84f086262dfd06088acd99 inherit pro_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#aec6644c81f84f086262dfd06088acd99">LayerVisitorBase</a> ()</td></tr>
276<tr class="separator:aec6644c81f84f086262dfd06088acd99 inherit pro_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
277<tr class="memitem:ab59e5e8c65aa44857c27db70fc412baa inherit pro_methods_classarmnn_1_1_layer_visitor_base"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_layer_visitor_base.html#ab59e5e8c65aa44857c27db70fc412baa">~LayerVisitorBase</a> ()</td></tr>
278<tr class="separator:ab59e5e8c65aa44857c27db70fc412baa inherit pro_methods_classarmnn_1_1_layer_visitor_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
279<tr class="inherit_header pro_methods_classarmnn_1_1_i_layer_visitor"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classarmnn_1_1_i_layer_visitor')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classarmnn_1_1_i_layer_visitor.html">ILayerVisitor</a></td></tr>
280<tr class="memitem:a27fa880bce96ac7355284a7681f2377e inherit pro_methods_classarmnn_1_1_i_layer_visitor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_layer_visitor.html#a27fa880bce96ac7355284a7681f2377e">ILayerVisitor</a> ()</td></tr>
281<tr class="separator:a27fa880bce96ac7355284a7681f2377e inherit pro_methods_classarmnn_1_1_i_layer_visitor"><td class="memSeparator" colspan="2">&#160;</td></tr>
282<tr class="memitem:a7ad7aeeaf26228ef11c15fa5d4507d8a inherit pro_methods_classarmnn_1_1_i_layer_visitor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_i_layer_visitor.html#a7ad7aeeaf26228ef11c15fa5d4507d8a">~ILayerVisitor</a> ()</td></tr>
283<tr class="separator:a7ad7aeeaf26228ef11c15fa5d4507d8a inherit pro_methods_classarmnn_1_1_i_layer_visitor"><td class="memSeparator" colspan="2">&#160;</td></tr>
284</table>
285<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
286<div class="textblock"><p>Visitor class to establish min/max ranges based on the type of the layer. </p>
287
288<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8hpp_source.html#l00019">19</a> of file <a class="el" href="_dynamic_quantization_visitor_8hpp_source.html">DynamicQuantizationVisitor.hpp</a>.</p>
289</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
290<a id="af377247c8cdc9bf91e9e5edd87331fef"></a>
291<h2 class="memtitle"><span class="permalink"><a href="#af377247c8cdc9bf91e9e5edd87331fef">&#9670;&nbsp;</a></span>DynamicQuantizationVisitor()</h2>
292
293<div class="memitem">
294<div class="memproto">
295 <table class="memname">
296 <tr>
297 <td class="memname"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html">DynamicQuantizationVisitor</a> </td>
298 <td>(</td>
299 <td class="paramtype"><a class="el" href="classarmnn_1_1_range_tracker.html">RangeTracker</a> &amp;&#160;</td>
300 <td class="paramname"><em>rangeTracker</em>, </td>
301 </tr>
302 <tr>
303 <td class="paramkey"></td>
304 <td></td>
305 <td class="paramtype"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td>
306 <td class="paramname"><em>graph</em>&#160;</td>
307 </tr>
308 <tr>
309 <td></td>
310 <td>)</td>
311 <td></td><td></td>
312 </tr>
313 </table>
314</div><div class="memdoc">
315
316<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00018">18</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
317
318<p class="reference">References <a class="el" href="classarmnn_1_1_i_output_slot.html#a41d30a9cd272e05986d71a69d6ad618b">IOutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="classarmnn_1_1_i_input_slot.html#a81fbf6103761e55061b62ba989b00f10">IInputSlot::GetConnection()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer::GetInputSlot()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer::GetNumInputSlots()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.html#ad0c3555b126975ad6b3e250fe2a59534">IOutputSlot::GetOwningLayerGuid()</a>, <a class="el" href="_range_tracker_8cpp_source.html#l00029">RangeTracker::GetRange()</a>, and <a class="el" href="_range_tracker_8cpp_source.html#l00012">RangeTracker::SetRange()</a>.</p>
319<div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; : m_RangeTracker(rangeTracker),</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_Graph(graph)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{}</div></div><!-- fragment -->
320</div>
321</div>
322<a id="a4f083823a44ede4d3482361dcb61bebe"></a>
323<h2 class="memtitle"><span class="permalink"><a href="#a4f083823a44ede4d3482361dcb61bebe">&#9670;&nbsp;</a></span>~DynamicQuantizationVisitor()</h2>
324
325<div class="memitem">
326<div class="memproto">
327<table class="mlabels">
328 <tr>
329 <td class="mlabels-left">
330 <table class="memname">
331 <tr>
332 <td class="memname">~<a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html">DynamicQuantizationVisitor</a> </td>
333 <td>(</td>
334 <td class="paramname"></td><td>)</td>
335 <td></td>
336 </tr>
337 </table>
338 </td>
339 <td class="mlabels-right">
340<span class="mlabels"><span class="mlabel">default</span></span> </td>
341 </tr>
342</table>
343</div><div class="memdoc">
344
345</div>
346</div>
347<h2 class="groupheader">Member Function Documentation</h2>
348<a id="a65ad16db7d3eab9c6bfc2cdb7271ef3b"></a>
349<h2 class="memtitle"><span class="permalink"><a href="#a65ad16db7d3eab9c6bfc2cdb7271ef3b">&#9670;&nbsp;</a></span>FinishVisit()</h2>
350
351<div class="memitem">
352<div class="memproto">
353<table class="mlabels">
354 <tr>
355 <td class="mlabels-left">
356 <table class="memname">
357 <tr>
358 <td class="memname">void FinishVisit </td>
359 <td>(</td>
360 <td class="paramname"></td><td>)</td>
361 <td></td>
362 </tr>
363 </table>
364 </td>
365 <td class="mlabels-right">
366<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
367 </tr>
368</table>
369</div><div class="memdoc">
370
371<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a4549b1bbb63fa26700d74854e388784f">ILayerVisitor</a>.</p>
372
373<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00050">50</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
374
375<p class="reference">References <a class="el" href="_layer_8cpp_source.html#l00079">OutputSlot::Connect()</a>, <a class="el" href="_layer_8cpp_source.html#l00087">OutputSlot::Disconnect()</a>, <a class="el" href="_graph_8hpp_source.html#l00442">Graph::EraseLayer()</a>, and <a class="el" href="_network_utils_8cpp_source.html#l00112">armnn::InsertDebugLayerAfter()</a>.</p>
376<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> IConnectableLayer* layer : m_LayersToCalibrate)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; std::vector&lt;DebugLayer*&gt; newDebugLayers = <a class="code" href="namespacearmnn.html#a2616ffdae2db993af5c08019fb61860a">InsertDebugLayerAfter</a>(</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_Graph, *boost::polymorphic_downcast&lt;Layer*&gt;(const_cast&lt;IConnectableLayer*&gt;(layer)));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// record them so we can take them out again efficiently afterward</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_DebugLayers.insert(std::end(m_DebugLayers), std::begin(newDebugLayers), std::end(newDebugLayers));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a2616ffdae2db993af5c08019fb61860a"><div class="ttname"><a href="namespacearmnn.html#a2616ffdae2db993af5c08019fb61860a">armnn::InsertDebugLayerAfter</a></div><div class="ttdeci">std::vector&lt; DebugLayer * &gt; InsertDebugLayerAfter(Graph &amp;graph, Layer &amp;layer)</div><div class="ttdef"><b>Definition:</b> <a href="_network_utils_8cpp_source.html#l00112">NetworkUtils.cpp:112</a></div></div>
377</div><!-- fragment -->
378</div>
379</div>
380<a id="a2004cc285dba7f2d4e69352e60a9a7a0"></a>
381<h2 class="memtitle"><span class="permalink"><a href="#a2004cc285dba7f2d4e69352e60a9a7a0">&#9670;&nbsp;</a></span>GetOutputLayers()</h2>
382
383<div class="memitem">
384<div class="memproto">
385 <table class="memname">
386 <tr>
387 <td class="memname">const std::vector&lt; <a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a> &gt; &amp; GetOutputLayers </td>
388 <td>(</td>
389 <td class="paramname"></td><td>)</td>
390 <td></td>
391 </tr>
392 </table>
393</div><div class="memdoc">
394
395<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00330">330</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
396<div class="fragment"><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> m_OutputLayers;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div></div><!-- fragment -->
397</div>
398</div>
399<a id="af493528dec93f39f5081dbefb40bff75"></a>
400<h2 class="memtitle"><span class="permalink"><a href="#af493528dec93f39f5081dbefb40bff75">&#9670;&nbsp;</a></span>VisitActivationLayer()</h2>
401
402<div class="memitem">
403<div class="memproto">
404<table class="mlabels">
405 <tr>
406 <td class="mlabels-left">
407 <table class="memname">
408 <tr>
409 <td class="memname">void VisitActivationLayer </td>
410 <td>(</td>
411 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
412 <td class="paramname"><em>layer</em>, </td>
413 </tr>
414 <tr>
415 <td class="paramkey"></td>
416 <td></td>
417 <td class="paramtype">const <a class="el" href="structarmnn_1_1_activation_descriptor.html">ActivationDescriptor</a> &amp;&#160;</td>
418 <td class="paramname"><em>activationDescriptor</em>, </td>
419 </tr>
420 <tr>
421 <td class="paramkey"></td>
422 <td></td>
423 <td class="paramtype">const char *&#160;</td>
424 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
425 </tr>
426 <tr>
427 <td></td>
428 <td>)</td>
429 <td></td><td></td>
430 </tr>
431 </table>
432 </td>
433 <td class="mlabels-right">
434<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
435 </tr>
436</table>
437</div><div class="memdoc">
438<p>Function that an activation layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
439 <table class="params">
440 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
441 <tr><td class="paramname">activationDescriptor</td><td>- <a class="el" href="structarmnn_1_1_activation_descriptor.html" title="An ActivationDescriptor for the ActivationLayer. ">ActivationDescriptor</a> to configure the activation. </td></tr>
442 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
443 </table>
444 </dd>
445</dl>
446
447<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ab2a1e493b983a932792bc5d0c1a20127">ILayerVisitor</a>.</p>
448
449<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00139">139</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
450
451<p class="reference">References <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">armnn::Abs</a>, <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">armnn::BoundedReLu</a>, <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735">armnn::LeakyReLu</a>, <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b">armnn::Linear</a>, <a class="el" href="_descriptors_8hpp_source.html#l00037">ActivationDescriptor::m_A</a>, <a class="el" href="_descriptors_8hpp_source.html#l00035">ActivationDescriptor::m_Function</a>, <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559">armnn::ReLu</a>, <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef">armnn::SoftReLu</a>, and <a class="el" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e">armnn::TanH</a>.</p>
452<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; boost::ignore_unused(name, activationDescriptor);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">switch</span> (activationDescriptor.m_Function)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Range is 0, 15 for Abs, Linear, ReLu and Soft ReLu</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">ActivationFunction::Abs</a>:</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b">ActivationFunction::Linear</a>:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559">ActivationFunction::ReLu</a>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef">ActivationFunction::SoftReLu</a>:</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; SetRange(layer, 0, 0.f, 15.f);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">ActivationFunction::BoundedReLu</a>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; SetRange(layer, 0, 0.f, activationDescriptor.m_A);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e">ActivationFunction::TanH</a>:</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; SetRange(layer, 0, -1.f, 1.f);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> <a class="code" href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735">ActivationFunction::LeakyReLu</a>:</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; SetRange(layer, 0, -5.f, 15.f);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; SetRange(layer, 0, -15.f, 15.f);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaacb7667f5ec2f6e8a5943b781ba6c2735">armnn::ActivationFunction::LeakyReLu</a></div></div>
453<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa3d90c0a5ab3fcf8e6f6608cb3d3a1559">armnn::ActivationFunction::ReLu</a></div></div>
454<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa1e34af023adeb7d5f484f8eb4b9826b6">armnn::ActivationFunction::Abs</a></div></div>
455<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa6bba7052636d1740303b1b2ef3b53fef">armnn::ActivationFunction::SoftReLu</a></div></div>
456<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaabc5a0f0d6e7cf7fca73299dcd46c0f0d">armnn::ActivationFunction::BoundedReLu</a></div><div class="ttdoc">min(a, max(b, input)) </div></div>
457<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa23b68da1de2b77d74da9da2635722a3e">armnn::ActivationFunction::TanH</a></div></div>
458<div class="ttc" id="namespacearmnn_html_a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b"><div class="ttname"><a href="namespacearmnn.html#a56297e0f7b215eea46c818cb7528d9eaa32a843da6ea40ab3b17a3421ccdf671b">armnn::ActivationFunction::Linear</a></div></div>
459</div><!-- fragment -->
460</div>
461</div>
462<a id="a7cb4ef1bc9588c4319144460c288022f"></a>
463<h2 class="memtitle"><span class="permalink"><a href="#a7cb4ef1bc9588c4319144460c288022f">&#9670;&nbsp;</a></span>VisitAdditionLayer()</h2>
464
465<div class="memitem">
466<div class="memproto">
467<table class="mlabels">
468 <tr>
469 <td class="mlabels-left">
470 <table class="memname">
471 <tr>
472 <td class="memname">void VisitAdditionLayer </td>
473 <td>(</td>
474 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
475 <td class="paramname"><em>layer</em>, </td>
476 </tr>
477 <tr>
478 <td class="paramkey"></td>
479 <td></td>
480 <td class="paramtype">const char *&#160;</td>
481 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
482 </tr>
483 <tr>
484 <td></td>
485 <td>)</td>
486 <td></td><td></td>
487 </tr>
488 </table>
489 </td>
490 <td class="mlabels-right">
491<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
492 </tr>
493</table>
494</div><div class="memdoc">
495
496<p>Functions to set the Range on a per-layer-type basis. </p>
497
498<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a2d20b94b7de822f3d29ab12e47e3be4e">ILayerVisitor</a>.</p>
499
500<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00086">86</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
501<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; SetRange(layer, 0, -20.f, 20.f);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div></div><!-- fragment -->
502</div>
503</div>
504<a id="a1532cb8f551812e784ccc14faae407b9"></a>
505<h2 class="memtitle"><span class="permalink"><a href="#a1532cb8f551812e784ccc14faae407b9">&#9670;&nbsp;</a></span>VisitBatchNormalizationLayer()</h2>
506
507<div class="memitem">
508<div class="memproto">
509<table class="mlabels">
510 <tr>
511 <td class="mlabels-left">
512 <table class="memname">
513 <tr>
514 <td class="memname">void VisitBatchNormalizationLayer </td>
515 <td>(</td>
516 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
517 <td class="paramname"><em>layer</em>, </td>
518 </tr>
519 <tr>
520 <td class="paramkey"></td>
521 <td></td>
522 <td class="paramtype">const <a class="el" href="structarmnn_1_1_batch_normalization_descriptor.html">BatchNormalizationDescriptor</a> &amp;&#160;</td>
523 <td class="paramname"><em>desc</em>, </td>
524 </tr>
525 <tr>
526 <td class="paramkey"></td>
527 <td></td>
528 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
529 <td class="paramname"><em>mean</em>, </td>
530 </tr>
531 <tr>
532 <td class="paramkey"></td>
533 <td></td>
534 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
535 <td class="paramname"><em>variance</em>, </td>
536 </tr>
537 <tr>
538 <td class="paramkey"></td>
539 <td></td>
540 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
541 <td class="paramname"><em>beta</em>, </td>
542 </tr>
543 <tr>
544 <td class="paramkey"></td>
545 <td></td>
546 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
547 <td class="paramname"><em>gamma</em>, </td>
548 </tr>
549 <tr>
550 <td class="paramkey"></td>
551 <td></td>
552 <td class="paramtype">const char *&#160;</td>
553 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
554 </tr>
555 <tr>
556 <td></td>
557 <td>)</td>
558 <td></td><td></td>
559 </tr>
560 </table>
561 </td>
562 <td class="mlabels-right">
563<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
564 </tr>
565</table>
566</div><div class="memdoc">
567<p>Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
568 <table class="params">
569 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
570 <tr><td class="paramname">mean</td><td>- Pre-calculated mean for each channel. </td></tr>
571 <tr><td class="paramname">variance</td><td>- Pre-calculated variance for each channel. </td></tr>
572 <tr><td class="paramname">beta</td><td>- Per-channel additive factor. </td></tr>
573 <tr><td class="paramname">gamma</td><td>- Per-channel multiplicative factor. </td></tr>
574 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
575 </table>
576 </dd>
577</dl>
578
579<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a9e642355474f31268e66a404e6c1b81d">ILayerVisitor</a>.</p>
580
581<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00093">93</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
582<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; boost::ignore_unused(desc);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; boost::ignore_unused(mean);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; boost::ignore_unused(variance);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; boost::ignore_unused(beta);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; boost::ignore_unused(gamma);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; SetRange(layer, 0, -15.0f, 15.0f);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div></div><!-- fragment -->
583</div>
584</div>
585<a id="af5d09e03a578afa9c0bb8afd11c65485"></a>
586<h2 class="memtitle"><span class="permalink"><a href="#af5d09e03a578afa9c0bb8afd11c65485">&#9670;&nbsp;</a></span>VisitBatchToSpaceNdLayer()</h2>
587
588<div class="memitem">
589<div class="memproto">
590<table class="mlabels">
591 <tr>
592 <td class="mlabels-left">
593 <table class="memname">
594 <tr>
595 <td class="memname">void VisitBatchToSpaceNdLayer </td>
596 <td>(</td>
597 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
598 <td class="paramname"><em>layer</em>, </td>
599 </tr>
600 <tr>
601 <td class="paramkey"></td>
602 <td></td>
603 <td class="paramtype">const <a class="el" href="structarmnn_1_1_batch_to_space_nd_descriptor.html">BatchToSpaceNdDescriptor</a> &amp;&#160;</td>
604 <td class="paramname"><em>batchToSpaceNdDescriptor</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">const char *&#160;</td>
610 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
611 </tr>
612 <tr>
613 <td></td>
614 <td>)</td>
615 <td></td><td></td>
616 </tr>
617 </table>
618 </td>
619 <td class="mlabels-right">
620<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
621 </tr>
622</table>
623</div><div class="memdoc">
624<p>Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
625 <table class="params">
626 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
627 <tr><td class="paramname">batchToSpaceNdDescriptor</td><td>- Description of the layer. </td></tr>
628 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
629 </table>
630 </dd>
631</dl>
632
633<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a1cee693185bcda15bd777008e60c7cf7">ILayerVisitor</a>.</p>
634
635<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00305">305</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
636<div class="fragment"><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; boost::ignore_unused(batchToSpaceNdDescriptor);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div></div><!-- fragment -->
637</div>
638</div>
639<a id="a8a3cd0b0d46a765ad2b0652c72a31d0c"></a>
640<h2 class="memtitle"><span class="permalink"><a href="#a8a3cd0b0d46a765ad2b0652c72a31d0c">&#9670;&nbsp;</a></span>VisitConcatLayer()</h2>
641
642<div class="memitem">
643<div class="memproto">
644<table class="mlabels">
645 <tr>
646 <td class="mlabels-left">
647 <table class="memname">
648 <tr>
649 <td class="memname">void VisitConcatLayer </td>
650 <td>(</td>
651 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
652 <td class="paramname"><em>layer</em>, </td>
653 </tr>
654 <tr>
655 <td class="paramkey"></td>
656 <td></td>
657 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a7863c179ff92feec660c48ab7b95ae55">ConcatDescriptor</a> &amp;&#160;</td>
658 <td class="paramname"><em>concatDescriptor</em>, </td>
659 </tr>
660 <tr>
661 <td class="paramkey"></td>
662 <td></td>
663 <td class="paramtype">const char *&#160;</td>
664 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
665 </tr>
666 <tr>
667 <td></td>
668 <td>)</td>
669 <td></td><td></td>
670 </tr>
671 </table>
672 </td>
673 <td class="mlabels-right">
674<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
675 </tr>
676</table>
677</div><div class="memdoc">
678<p>Function that a concat layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
679 <table class="params">
680 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
681 <tr><td class="paramname">concatDescriptor</td><td>- ConcatDescriptor (synonym for <a class="el" href="structarmnn_1_1_origins_descriptor.html" title="An OriginsDescriptor for the ConcatLayer. Descriptor to configure the concatenation process...">OriginsDescriptor</a>) to configure the concatenation process. Number of Views must be equal to the number of inputs, and their order must match - e.g. first view corresponds to the first input, second view to the second input, etc.... </td></tr>
682 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
683 </table>
684 </dd>
685</dl>
686
687<p>Reimplemented from <a class="el" href="classarmnn_1_1_i_layer_visitor.html#aeb90d7587f7887aee1f2b43261d4ee5c">ILayerVisitor</a>.</p>
688
689<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00248">248</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
690
691<p class="reference">References <a class="el" href="classarmnn_1_1_i_output_slot.html#a41d30a9cd272e05986d71a69d6ad618b">IOutputSlot::CalculateIndexOnOwner()</a>, <a class="el" href="classarmnn_1_1_i_input_slot.html#a81fbf6103761e55061b62ba989b00f10">IInputSlot::GetConnection()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a6ec9e0eb66d7d6a01240492a0b18104c">IConnectableLayer::GetInputSlot()</a>, <a class="el" href="classarmnn_1_1_i_connectable_layer.html#a9c2cba04b6d7ace4fc2a2436b82a5a63">IConnectableLayer::GetNumInputSlots()</a>, <a class="el" href="classarmnn_1_1_i_output_slot.html#ad0c3555b126975ad6b3e250fe2a59534">IOutputSlot::GetOwningLayerGuid()</a>, and <a class="el" href="_range_tracker_8cpp_source.html#l00029">RangeTracker::GetRange()</a>.</p>
692<div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;{</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; boost::ignore_unused(originsDescriptor);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">float</span> min = std::numeric_limits&lt;float&gt;::max();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">float</span> max = std::numeric_limits&lt;float&gt;::lowest();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; layer-&gt;GetNumInputSlots(); ++i)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">const</span> IOutputSlot* outputSlot = layer-&gt;GetInputSlot(i).GetConnection();</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="namespacearmnn.html#afad4088a9a058114ee5f87246f87bf49">LayerGuid</a> layerId = outputSlot-&gt;GetOwningLayerGuid();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slotIndex = outputSlot-&gt;CalculateIndexOnOwner();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="classarmnn_1_1_range_tracker.html#a997e96288bdb106c922202e3f33d5d7b">RangeTracker::MinMaxRange</a> range = m_RangeTracker.<a class="code" href="classarmnn_1_1_range_tracker.html#a507bae23f59e94b4161886ebe663cdf4">GetRange</a>(layerId, slotIndex);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; min = std::min(min, range.first);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; max = std::max(max, range.second);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; SetRange(layer, 0, min, max);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_range_tracker_html_a997e96288bdb106c922202e3f33d5d7b"><div class="ttname"><a href="classarmnn_1_1_range_tracker.html#a997e96288bdb106c922202e3f33d5d7b">armnn::RangeTracker::MinMaxRange</a></div><div class="ttdeci">std::pair&lt; float, float &gt; MinMaxRange</div><div class="ttdef"><b>Definition:</b> <a href="_range_tracker_8hpp_source.html#l00020">RangeTracker.hpp:20</a></div></div>
693<div class="ttc" id="classarmnn_1_1_range_tracker_html_a507bae23f59e94b4161886ebe663cdf4"><div class="ttname"><a href="classarmnn_1_1_range_tracker.html#a507bae23f59e94b4161886ebe663cdf4">armnn::RangeTracker::GetRange</a></div><div class="ttdeci">MinMaxRange GetRange(LayerGuid guid, unsigned int idx) const</div><div class="ttdoc">Retrieve the Range for a particular output slot on a particular layer. </div><div class="ttdef"><b>Definition:</b> <a href="_range_tracker_8cpp_source.html#l00029">RangeTracker.cpp:29</a></div></div>
694<div class="ttc" id="namespacearmnn_html_afad4088a9a058114ee5f87246f87bf49"><div class="ttname"><a href="namespacearmnn.html#afad4088a9a058114ee5f87246f87bf49">armnn::LayerGuid</a></div><div class="ttdeci">profiling::ProfilingGuid LayerGuid</div><div class="ttdoc">Define LayerGuid type. </div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00233">Types.hpp:233</a></div></div>
695</div><!-- fragment -->
696</div>
697</div>
698<a id="aeb652d74e4b3596e85b22c2d52144f73"></a>
699<h2 class="memtitle"><span class="permalink"><a href="#aeb652d74e4b3596e85b22c2d52144f73">&#9670;&nbsp;</a></span>VisitConstantLayer()</h2>
700
701<div class="memitem">
702<div class="memproto">
703<table class="mlabels">
704 <tr>
705 <td class="mlabels-left">
706 <table class="memname">
707 <tr>
708 <td class="memname">void VisitConstantLayer </td>
709 <td>(</td>
710 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
711 <td class="paramname"><em>layer</em>, </td>
712 </tr>
713 <tr>
714 <td class="paramkey"></td>
715 <td></td>
716 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
717 <td class="paramname"><em>input</em>, </td>
718 </tr>
719 <tr>
720 <td class="paramkey"></td>
721 <td></td>
722 <td class="paramtype">const char *&#160;</td>
723 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
724 </tr>
725 <tr>
726 <td></td>
727 <td>)</td>
728 <td></td><td></td>
729 </tr>
730 </table>
731 </td>
732 <td class="mlabels-right">
733<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
734 </tr>
735</table>
736</div><div class="memdoc">
737<p>Function a layer with no inputs and a single output, which always corresponds to the passed in constant tensor should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
738 <table class="params">
739 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
740 <tr><td class="paramname">input</td><td>- <a class="el" href="classarmnn_1_1_tensor.html" title="A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. ">Tensor</a> to be provided as the only output of the layer. The layer will maintain its own copy of the tensor data, meaning the memory referenced by <em>input</em> can be freed or reused after this function is called. </td></tr>
741 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
742 </table>
743 </dd>
744</dl>
745
746<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a2f123a6a99ac143c0f3806cb505765cd">ILayerVisitor</a>.</p>
747
748<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00220">220</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
749
750<p class="reference">References <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::Float32</a>, <a class="el" href="_tensor_8hpp_source.html#l00172">BaseTensor&lt; MemoryType &gt;::GetDataType()</a>, <a class="el" href="_tensor_8hpp_source.html#l00177">BaseTensor&lt; MemoryType &gt;::GetMemoryArea()</a>, and <a class="el" href="_tensor_8hpp_source.html#l00175">BaseTensor&lt; MemoryType &gt;::GetNumElements()</a>.</p>
751<div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;{</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (input.GetDataType() != <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">throw</span> InvalidArgumentException(<span class="stringliteral">&quot;Quantization is supported only for FP32 tensors&quot;</span>);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// Work out the range based on the input constants</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inputNumElements = input.GetNumElements();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* inputData = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">float</span>*<span class="keyword">&gt;</span>(input.GetMemoryArea());</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">float</span> min = std::numeric_limits&lt;float&gt;::max();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">float</span> max = std::numeric_limits&lt;float&gt;::lowest();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; inputNumElements; i++)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> inputValue = inputData[i];</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; min = std::min(min, inputValue);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; max = std::max(max, inputValue);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; SetRange(layer, 0, min, max);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="ttc" id="namespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div></div>
752</div><!-- fragment -->
753</div>
754</div>
755<a id="ac2f379ba77b06095e0c024e232ec1fd4"></a>
756<h2 class="memtitle"><span class="permalink"><a href="#ac2f379ba77b06095e0c024e232ec1fd4">&#9670;&nbsp;</a></span>VisitConvolution2dLayer()</h2>
757
758<div class="memitem">
759<div class="memproto">
760<table class="mlabels">
761 <tr>
762 <td class="mlabels-left">
763 <table class="memname">
764 <tr>
765 <td class="memname">void VisitConvolution2dLayer </td>
766 <td>(</td>
767 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
768 <td class="paramname"><em>layer</em>, </td>
769 </tr>
770 <tr>
771 <td class="paramkey"></td>
772 <td></td>
773 <td class="paramtype">const <a class="el" href="structarmnn_1_1_convolution2d_descriptor.html">Convolution2dDescriptor</a> &amp;&#160;</td>
774 <td class="paramname"><em>convolution2dDescriptor</em>, </td>
775 </tr>
776 <tr>
777 <td class="paramkey"></td>
778 <td></td>
779 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
780 <td class="paramname"><em>weights</em>, </td>
781 </tr>
782 <tr>
783 <td class="paramkey"></td>
784 <td></td>
785 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;&#160;</td>
786 <td class="paramname"><em>biases</em>, </td>
787 </tr>
788 <tr>
789 <td class="paramkey"></td>
790 <td></td>
791 <td class="paramtype">const char *&#160;</td>
792 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
793 </tr>
794 <tr>
795 <td></td>
796 <td>)</td>
797 <td></td><td></td>
798 </tr>
799 </table>
800 </td>
801 <td class="mlabels-right">
802<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
803 </tr>
804</table>
805</div><div class="memdoc">
806<p>Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
807 <table class="params">
808 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
809 <tr><td class="paramname">convolution2dDescriptor</td><td>- Description of the 2D convolution layer. </td></tr>
810 <tr><td class="paramname">weights</td><td>- <a class="el" href="classarmnn_1_1_tensor.html" title="A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. ">Tensor</a> for the weights data. </td></tr>
811 <tr><td class="paramname">biases</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> tensor for the bias data. If specified, must match the output tensor shape. </td></tr>
812 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
813 </table>
814 </dd>
815</dl>
816
817<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#abc8fe4c6cbc8fa2b13c525500dddfbf6">ILayerVisitor</a>.</p>
818
819<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00111">111</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
820<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; boost::ignore_unused(convolution2dDescriptor);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; boost::ignore_unused(weights);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; boost::ignore_unused(biases);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; SetRange(layer, 0, -15.0f, 15.0f);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div></div><!-- fragment -->
821</div>
822</div>
823<a id="a554e88817e6fd98645388873a108f868"></a>
824<h2 class="memtitle"><span class="permalink"><a href="#a554e88817e6fd98645388873a108f868">&#9670;&nbsp;</a></span>VisitDepthwiseConvolution2dLayer()</h2>
825
826<div class="memitem">
827<div class="memproto">
828<table class="mlabels">
829 <tr>
830 <td class="mlabels-left">
831 <table class="memname">
832 <tr>
833 <td class="memname">void VisitDepthwiseConvolution2dLayer </td>
834 <td>(</td>
835 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
836 <td class="paramname"><em>layer</em>, </td>
837 </tr>
838 <tr>
839 <td class="paramkey"></td>
840 <td></td>
841 <td class="paramtype">const <a class="el" href="structarmnn_1_1_depthwise_convolution2d_descriptor.html">DepthwiseConvolution2dDescriptor</a> &amp;&#160;</td>
842 <td class="paramname"><em>convolution2dDescriptor</em>, </td>
843 </tr>
844 <tr>
845 <td class="paramkey"></td>
846 <td></td>
847 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
848 <td class="paramname"><em>weights</em>, </td>
849 </tr>
850 <tr>
851 <td class="paramkey"></td>
852 <td></td>
853 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;&#160;</td>
854 <td class="paramname"><em>biases</em>, </td>
855 </tr>
856 <tr>
857 <td class="paramkey"></td>
858 <td></td>
859 <td class="paramtype">const char *&#160;</td>
860 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
861 </tr>
862 <tr>
863 <td></td>
864 <td>)</td>
865 <td></td><td></td>
866 </tr>
867 </table>
868 </td>
869 <td class="mlabels-right">
870<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
871 </tr>
872</table>
873</div><div class="memdoc">
874<p>Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
875 <table class="params">
876 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
877 <tr><td class="paramname">convolution2dDescriptor</td><td>- Description of the 2D depthwise convolution layer. </td></tr>
878 <tr><td class="paramname">weights</td><td>- <a class="el" href="classarmnn_1_1_tensor.html" title="A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. ">Tensor</a> for the weights. Expected format: [channelMultiplier, inputChannels, height, width]. </td></tr>
879 <tr><td class="paramname">biases</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> tensor for the bias data. If specified, must match the output tensor shape. </td></tr>
880 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
881 </table>
882 </dd>
883</dl>
884
885<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ad39aaac8f8fb790ae364c87f1a249d68">ILayerVisitor</a>.</p>
886
887<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00125">125</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
888<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; boost::ignore_unused(desc);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; boost::ignore_unused(weights);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; boost::ignore_unused(biases);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; SetRange(layer, 0, -15.0f, 15.0f);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div></div><!-- fragment -->
889</div>
890</div>
891<a id="ac98eae261af6c8d5f7161a01a1959e72"></a>
892<h2 class="memtitle"><span class="permalink"><a href="#ac98eae261af6c8d5f7161a01a1959e72">&#9670;&nbsp;</a></span>VisitFullyConnectedLayer()</h2>
893
894<div class="memitem">
895<div class="memproto">
896<table class="mlabels">
897 <tr>
898 <td class="mlabels-left">
899 <table class="memname">
900 <tr>
901 <td class="memname">void VisitFullyConnectedLayer </td>
902 <td>(</td>
903 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
904 <td class="paramname"><em>layer</em>, </td>
905 </tr>
906 <tr>
907 <td class="paramkey"></td>
908 <td></td>
909 <td class="paramtype">const <a class="el" href="structarmnn_1_1_fully_connected_descriptor.html">FullyConnectedDescriptor</a> &amp;&#160;</td>
910 <td class="paramname"><em>fullyConnectedDescriptor</em>, </td>
911 </tr>
912 <tr>
913 <td class="paramkey"></td>
914 <td></td>
915 <td class="paramtype">const <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &amp;&#160;</td>
916 <td class="paramname"><em>weights</em>, </td>
917 </tr>
918 <tr>
919 <td class="paramkey"></td>
920 <td></td>
921 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optional.html">Optional</a>&lt; <a class="el" href="classarmnn_1_1_const_tensor.html">ConstTensor</a> &gt; &amp;&#160;</td>
922 <td class="paramname"><em>biases</em>, </td>
923 </tr>
924 <tr>
925 <td class="paramkey"></td>
926 <td></td>
927 <td class="paramtype">const char *&#160;</td>
928 <td class="paramname"><em>name</em>&#160;</td>
929 </tr>
930 <tr>
931 <td></td>
932 <td>)</td>
933 <td></td><td></td>
934 </tr>
935 </table>
936 </td>
937 <td class="mlabels-right">
938<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
939 </tr>
940</table>
941</div><div class="memdoc">
942<p>Function that a fully connected layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
943 <table class="params">
944 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
945 <tr><td class="paramname">fullyConnectedDescriptor</td><td>- Description of the fully connected layer. </td></tr>
946 <tr><td class="paramname">weights</td><td>- <a class="el" href="classarmnn_1_1_tensor.html" title="A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. ">Tensor</a> for the weights data. </td></tr>
947 <tr><td class="paramname">biases</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> tensor for the bias data. </td></tr>
948 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
949 </table>
950 </dd>
951</dl>
952
953<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ab93a48970564c6eabbc982a2116c1262">ILayerVisitor</a>.</p>
954
955<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00169">169</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
956<div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; boost::ignore_unused(desc);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; boost::ignore_unused(weights);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; boost::ignore_unused(biases);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; SetRange(layer, 0, -15.0f, 15.0f);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div></div><!-- fragment -->
957</div>
958</div>
959<a id="a2ca539d734553e606c0134940e444298"></a>
960<h2 class="memtitle"><span class="permalink"><a href="#a2ca539d734553e606c0134940e444298">&#9670;&nbsp;</a></span>VisitInputLayer()</h2>
961
962<div class="memitem">
963<div class="memproto">
964<table class="mlabels">
965 <tr>
966 <td class="mlabels-left">
967 <table class="memname">
968 <tr>
969 <td class="memname">void VisitInputLayer </td>
970 <td>(</td>
971 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
972 <td class="paramname"><em>layer</em>, </td>
973 </tr>
974 <tr>
975 <td class="paramkey"></td>
976 <td></td>
977 <td class="paramtype"><a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a>&#160;</td>
978 <td class="paramname"><em>id</em>, </td>
979 </tr>
980 <tr>
981 <td class="paramkey"></td>
982 <td></td>
983 <td class="paramtype">const char *&#160;</td>
984 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
985 </tr>
986 <tr>
987 <td></td>
988 <td>)</td>
989 <td></td><td></td>
990 </tr>
991 </table>
992 </td>
993 <td class="mlabels-right">
994<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
995 </tr>
996</table>
997</div><div class="memdoc">
998<p>Function that an <a class="el" href="classarmnn_1_1_input_layer.html" title="A layer user-provided data can be bound to (e.g. inputs, outputs). ">InputLayer</a> should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
999 <table class="params">
1000 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1001 <tr><td class="paramname">id</td><td>- User generated id to uniquely identify a particular input. The same id needs to be specified when passing the inputs to the <a class="el" href="classarmnn_1_1_i_runtime.html#aec0dc8016a3b1e444dfc1ffb5f15195c" title="Evaluates a network using input in inputTensors and outputs filled into outputTensors. ">IRuntime::EnqueueWorkload()</a> function. </td></tr>
1002 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1003 </table>
1004 </dd>
1005</dl>
1006
1007<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ab6dc51682cb4178194f3f00c2309ec7b">ILayerVisitor</a>.</p>
1008
1009<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00314">314</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1010<div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; boost::ignore_unused(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; SetRange(layer, 0, -0.0f, 0.0f);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</div></div><!-- fragment -->
1011</div>
1012</div>
1013<a id="a795e9253dab52825add51ffc569eb81e"></a>
1014<h2 class="memtitle"><span class="permalink"><a href="#a795e9253dab52825add51ffc569eb81e">&#9670;&nbsp;</a></span>VisitNonCalibratedLayers()</h2>
1015
1016<div class="memitem">
1017<div class="memproto">
1018 <table class="memname">
1019 <tr>
1020 <td class="memname">void VisitNonCalibratedLayers </td>
1021 <td>(</td>
1022 <td class="paramname"></td><td>)</td>
1023 <td></td>
1024 </tr>
1025 </table>
1026</div><div class="memdoc">
1027
1028<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00078">78</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1029<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; RemoveDebugLayers();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> IConnectableLayer* layer : m_LayersNotToCalibrate)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; ForwardParentParameters(layer);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div></div><!-- fragment -->
1030</div>
1031</div>
1032<a id="ac75d60924c52b96ea6f9567fcfa2db10"></a>
1033<h2 class="memtitle"><span class="permalink"><a href="#ac75d60924c52b96ea6f9567fcfa2db10">&#9670;&nbsp;</a></span>VisitOutputLayer()</h2>
1034
1035<div class="memitem">
1036<div class="memproto">
1037<table class="mlabels">
1038 <tr>
1039 <td class="mlabels-left">
1040 <table class="memname">
1041 <tr>
1042 <td class="memname">void VisitOutputLayer </td>
1043 <td>(</td>
1044 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1045 <td class="paramname"><em>layer</em>, </td>
1046 </tr>
1047 <tr>
1048 <td class="paramkey"></td>
1049 <td></td>
1050 <td class="paramtype"><a class="el" href="namespacearmnn.html#ab8cf8f9fb6792e654c2d8d8382f6f01b">LayerBindingId</a>&#160;</td>
1051 <td class="paramname"><em>id</em>, </td>
1052 </tr>
1053 <tr>
1054 <td class="paramkey"></td>
1055 <td></td>
1056 <td class="paramtype">const char *&#160;</td>
1057 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1058 </tr>
1059 <tr>
1060 <td></td>
1061 <td>)</td>
1062 <td></td><td></td>
1063 </tr>
1064 </table>
1065 </td>
1066 <td class="mlabels-right">
1067<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1068 </tr>
1069</table>
1070</div><div class="memdoc">
1071<p>Function an output layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1072 <table class="params">
1073 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1074 <tr><td class="paramname">id</td><td>- User generated id to uniquely identify a particular output. The same id needs to be specified when passing the outputs to the <a class="el" href="classarmnn_1_1_i_runtime.html#aec0dc8016a3b1e444dfc1ffb5f15195c" title="Evaluates a network using input in inputTensors and outputs filled into outputTensors. ">IRuntime::EnqueueWorkload()</a> function. </td></tr>
1075 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1076 </table>
1077 </dd>
1078</dl>
1079
1080<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a0da6bde681d919b7282eddad4a446890">ILayerVisitor</a>.</p>
1081
1082<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00322">322</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1083<div class="fragment"><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; boost::ignore_unused(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_OutputLayers.push_back(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div></div><!-- fragment -->
1084</div>
1085</div>
1086<a id="ad5532a4626c0228acc7b01fa0f5515eb"></a>
1087<h2 class="memtitle"><span class="permalink"><a href="#ad5532a4626c0228acc7b01fa0f5515eb">&#9670;&nbsp;</a></span>VisitPermuteLayer()</h2>
1088
1089<div class="memitem">
1090<div class="memproto">
1091<table class="mlabels">
1092 <tr>
1093 <td class="mlabels-left">
1094 <table class="memname">
1095 <tr>
1096 <td class="memname">void VisitPermuteLayer </td>
1097 <td>(</td>
1098 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1099 <td class="paramname"><em>layer</em>, </td>
1100 </tr>
1101 <tr>
1102 <td class="paramkey"></td>
1103 <td></td>
1104 <td class="paramtype">const <a class="el" href="structarmnn_1_1_permute_descriptor.html">PermuteDescriptor</a> &amp;&#160;</td>
1105 <td class="paramname"><em>permuteDescriptor</em>, </td>
1106 </tr>
1107 <tr>
1108 <td class="paramkey"></td>
1109 <td></td>
1110 <td class="paramtype">const char *&#160;</td>
1111 <td class="paramname"><em>name</em>&#160;</td>
1112 </tr>
1113 <tr>
1114 <td></td>
1115 <td>)</td>
1116 <td></td><td></td>
1117 </tr>
1118 </table>
1119 </td>
1120 <td class="mlabels-right">
1121<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1122 </tr>
1123</table>
1124</div><div class="memdoc">
1125<p>Function that a permute layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1126 <table class="params">
1127 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1128 <tr><td class="paramname">permuteDescriptor</td><td>- <a class="el" href="structarmnn_1_1_permute_descriptor.html" title="A PermuteDescriptor for the PermuteLayer. ">PermuteDescriptor</a> to configure the permute. </td></tr>
1129 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1130 </table>
1131 </dd>
1132</dl>
1133
1134<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a211e587a05b0c7e7202f8f8894f89894">ILayerVisitor</a>.</p>
1135
1136<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00183">183</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1137<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; boost::ignore_unused(permuteDescriptor);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div></div><!-- fragment -->
1138</div>
1139</div>
1140<a id="aaca77d69321f5ba94d639fe40dbd0b1c"></a>
1141<h2 class="memtitle"><span class="permalink"><a href="#aaca77d69321f5ba94d639fe40dbd0b1c">&#9670;&nbsp;</a></span>VisitPooling2dLayer()</h2>
1142
1143<div class="memitem">
1144<div class="memproto">
1145<table class="mlabels">
1146 <tr>
1147 <td class="mlabels-left">
1148 <table class="memname">
1149 <tr>
1150 <td class="memname">void VisitPooling2dLayer </td>
1151 <td>(</td>
1152 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1153 <td class="paramname"><em>layer</em>, </td>
1154 </tr>
1155 <tr>
1156 <td class="paramkey"></td>
1157 <td></td>
1158 <td class="paramtype">const <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html">Pooling2dDescriptor</a> &amp;&#160;</td>
1159 <td class="paramname"><em>pooling2dDescriptor</em>, </td>
1160 </tr>
1161 <tr>
1162 <td class="paramkey"></td>
1163 <td></td>
1164 <td class="paramtype">const char *&#160;</td>
1165 <td class="paramname"><em>name</em>&#160;</td>
1166 </tr>
1167 <tr>
1168 <td></td>
1169 <td>)</td>
1170 <td></td><td></td>
1171 </tr>
1172 </table>
1173 </td>
1174 <td class="mlabels-right">
1175<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1176 </tr>
1177</table>
1178</div><div class="memdoc">
1179<p>Function that a pooling layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1180 <table class="params">
1181 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1182 <tr><td class="paramname">pooling2dDescriptor</td><td>- <a class="el" href="structarmnn_1_1_pooling2d_descriptor.html" title="A Pooling2dDescriptor for the Pooling2dLayer. ">Pooling2dDescriptor</a> to configure the pooling. </td></tr>
1183 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1184 </table>
1185 </dd>
1186</dl>
1187
1188<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#aef56afef7d87afa51fd363487c375af5">ILayerVisitor</a>.</p>
1189
1190<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00201">201</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1191<div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; boost::ignore_unused(pooling2dDescriptor);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div></div><!-- fragment -->
1192</div>
1193</div>
1194<a id="a4a7f7f33591fd91e8fb1c08d06c0733a"></a>
1195<h2 class="memtitle"><span class="permalink"><a href="#a4a7f7f33591fd91e8fb1c08d06c0733a">&#9670;&nbsp;</a></span>VisitReshapeLayer()</h2>
1196
1197<div class="memitem">
1198<div class="memproto">
1199<table class="mlabels">
1200 <tr>
1201 <td class="mlabels-left">
1202 <table class="memname">
1203 <tr>
1204 <td class="memname">void VisitReshapeLayer </td>
1205 <td>(</td>
1206 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1207 <td class="paramname"><em>layer</em>, </td>
1208 </tr>
1209 <tr>
1210 <td class="paramkey"></td>
1211 <td></td>
1212 <td class="paramtype">const <a class="el" href="structarmnn_1_1_reshape_descriptor.html">ReshapeDescriptor</a> &amp;&#160;</td>
1213 <td class="paramname"><em>reshapeDescriptor</em>, </td>
1214 </tr>
1215 <tr>
1216 <td class="paramkey"></td>
1217 <td></td>
1218 <td class="paramtype">const char *&#160;</td>
1219 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1220 </tr>
1221 <tr>
1222 <td></td>
1223 <td>)</td>
1224 <td></td><td></td>
1225 </tr>
1226 </table>
1227 </td>
1228 <td class="mlabels-right">
1229<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1230 </tr>
1231</table>
1232</div><div class="memdoc">
1233<p>Function a reshape layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1234 <table class="params">
1235 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1236 <tr><td class="paramname">reshapeDescriptor</td><td>- Parameters for the reshape operation. </td></tr>
1237 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1238 </table>
1239 </dd>
1240</dl>
1241
1242<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#acb732489554691ba852ca323888093ac">ILayerVisitor</a>.</p>
1243
1244<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00269">269</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1245<div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; boost::ignore_unused(reshapeDescriptor);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div></div><!-- fragment -->
1246</div>
1247</div>
1248<a id="a5abbca55c908440acecfa6e0f921092d"></a>
1249<h2 class="memtitle"><span class="permalink"><a href="#a5abbca55c908440acecfa6e0f921092d">&#9670;&nbsp;</a></span>VisitResizeBilinearLayer()</h2>
1250
1251<div class="memitem">
1252<div class="memproto">
1253<table class="mlabels">
1254 <tr>
1255 <td class="mlabels-left">
1256 <table class="memname">
1257 <tr>
1258 <td class="memname">void VisitResizeBilinearLayer </td>
1259 <td>(</td>
1260 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1261 <td class="paramname"><em>layer</em>, </td>
1262 </tr>
1263 <tr>
1264 <td class="paramkey"></td>
1265 <td></td>
1266 <td class="paramtype">const <a class="el" href="structarmnn_1_1_resize_bilinear_descriptor.html">ResizeBilinearDescriptor</a> &amp;&#160;</td>
1267 <td class="paramname"><em>resizeDesc</em>, </td>
1268 </tr>
1269 <tr>
1270 <td class="paramkey"></td>
1271 <td></td>
1272 <td class="paramtype">const char *&#160;</td>
1273 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1274 </tr>
1275 <tr>
1276 <td></td>
1277 <td>)</td>
1278 <td></td><td></td>
1279 </tr>
1280 </table>
1281 </td>
1282 <td class="mlabels-right">
1283<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1284 </tr>
1285</table>
1286</div><div class="memdoc">
1287<p>Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1288 <table class="params">
1289 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1290 <tr><td class="paramname">resizeDesc</td><td>- Parameters for the resize operation. </td></tr>
1291 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1292 </table>
1293 </dd>
1294</dl>
1295
1296<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a8d87dab666a8aa6e132fcd93717a3c4b">ILayerVisitor</a>.</p>
1297
1298<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00287">287</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1299<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;{</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; boost::ignore_unused(resizeDesc);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div></div><!-- fragment -->
1300</div>
1301</div>
1302<a id="a98f34d2511f43324833060154cbdba8d"></a>
1303<h2 class="memtitle"><span class="permalink"><a href="#a98f34d2511f43324833060154cbdba8d">&#9670;&nbsp;</a></span>VisitSoftmaxLayer()</h2>
1304
1305<div class="memitem">
1306<div class="memproto">
1307<table class="mlabels">
1308 <tr>
1309 <td class="mlabels-left">
1310 <table class="memname">
1311 <tr>
1312 <td class="memname">void VisitSoftmaxLayer </td>
1313 <td>(</td>
1314 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1315 <td class="paramname"><em>layer</em>, </td>
1316 </tr>
1317 <tr>
1318 <td class="paramkey"></td>
1319 <td></td>
1320 <td class="paramtype">const <a class="el" href="structarmnn_1_1_softmax_descriptor.html">SoftmaxDescriptor</a> &amp;&#160;</td>
1321 <td class="paramname"><em>softmaxDescriptor</em>, </td>
1322 </tr>
1323 <tr>
1324 <td class="paramkey"></td>
1325 <td></td>
1326 <td class="paramtype">const char *&#160;</td>
1327 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1328 </tr>
1329 <tr>
1330 <td></td>
1331 <td>)</td>
1332 <td></td><td></td>
1333 </tr>
1334 </table>
1335 </td>
1336 <td class="mlabels-right">
1337<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1338 </tr>
1339</table>
1340</div><div class="memdoc">
1341<p>Function that a softmax layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1342 <table class="params">
1343 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1344 <tr><td class="paramname">softmaxDescriptor</td><td>- <a class="el" href="structarmnn_1_1_softmax_descriptor.html" title="A SoftmaxDescriptor for the SoftmaxLayer. ">SoftmaxDescriptor</a> to configure the softmax. </td></tr>
1345 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1346 </table>
1347 </dd>
1348</dl>
1349
1350<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ae47c90e3188970462a28d297644133d1">ILayerVisitor</a>.</p>
1351
1352<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00210">210</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1353<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; boost::ignore_unused(softmaxDescriptor);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; SetRange(layer, 0, 0.f, 1.f);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; AddToCalibratedLayers(layer);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div></div><!-- fragment -->
1354</div>
1355</div>
1356<a id="a8e327cc6432697fd55d6b91e554360d9"></a>
1357<h2 class="memtitle"><span class="permalink"><a href="#a8e327cc6432697fd55d6b91e554360d9">&#9670;&nbsp;</a></span>VisitSpaceToBatchNdLayer()</h2>
1358
1359<div class="memitem">
1360<div class="memproto">
1361<table class="mlabels">
1362 <tr>
1363 <td class="mlabels-left">
1364 <table class="memname">
1365 <tr>
1366 <td class="memname">void VisitSpaceToBatchNdLayer </td>
1367 <td>(</td>
1368 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1369 <td class="paramname"><em>layer</em>, </td>
1370 </tr>
1371 <tr>
1372 <td class="paramkey"></td>
1373 <td></td>
1374 <td class="paramtype">const <a class="el" href="structarmnn_1_1_space_to_batch_nd_descriptor.html">SpaceToBatchNdDescriptor</a> &amp;&#160;</td>
1375 <td class="paramname"><em>spaceToBatchNdDescriptor</em>, </td>
1376 </tr>
1377 <tr>
1378 <td class="paramkey"></td>
1379 <td></td>
1380 <td class="paramtype">const char *&#160;</td>
1381 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1382 </tr>
1383 <tr>
1384 <td></td>
1385 <td>)</td>
1386 <td></td><td></td>
1387 </tr>
1388 </table>
1389 </td>
1390 <td class="mlabels-right">
1391<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1392 </tr>
1393</table>
1394</div><div class="memdoc">
1395<p>Function a space to batch layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1396 <table class="params">
1397 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1398 <tr><td class="paramname">spaceToBatchNdDescriptor</td><td>- Parameters for the space to batch operation. </td></tr>
1399 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1400 </table>
1401 </dd>
1402</dl>
1403
1404<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#aa8c1ec6712293700fb3874f63f2ec5f0">ILayerVisitor</a>.</p>
1405
1406<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00192">192</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1407<div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; boost::ignore_unused(spaceToBatchNdDescriptor);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div></div><!-- fragment -->
1408</div>
1409</div>
1410<a id="afbea8aa2295f2ab71ea5bb64ccd47871"></a>
1411<h2 class="memtitle"><span class="permalink"><a href="#afbea8aa2295f2ab71ea5bb64ccd47871">&#9670;&nbsp;</a></span>VisitSplitterLayer()</h2>
1412
1413<div class="memitem">
1414<div class="memproto">
1415<table class="mlabels">
1416 <tr>
1417 <td class="mlabels-left">
1418 <table class="memname">
1419 <tr>
1420 <td class="memname">void VisitSplitterLayer </td>
1421 <td>(</td>
1422 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1423 <td class="paramname"><em>layer</em>, </td>
1424 </tr>
1425 <tr>
1426 <td class="paramkey"></td>
1427 <td></td>
1428 <td class="paramtype">const <a class="el" href="namespacearmnn.html#a60291543fe872b795e71e05bcd835fd1">SplitterDescriptor</a> &amp;&#160;</td>
1429 <td class="paramname"><em>splitterDescriptor</em>, </td>
1430 </tr>
1431 <tr>
1432 <td class="paramkey"></td>
1433 <td></td>
1434 <td class="paramtype">const char *&#160;</td>
1435 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1436 </tr>
1437 <tr>
1438 <td></td>
1439 <td>)</td>
1440 <td></td><td></td>
1441 </tr>
1442 </table>
1443 </td>
1444 <td class="mlabels-right">
1445<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1446 </tr>
1447</table>
1448</div><div class="memdoc">
1449<p>Function that a splitter layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1450 <table class="params">
1451 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1452 <tr><td class="paramname">splitterDescriptor</td><td>- <a class="el" href="structarmnn_1_1_views_descriptor.html" title="A ViewsDescriptor for the SplitterLayer. Descriptor to configure the splitting process. Number of Views must be equal to the number of outputs, and their order must match - e.g. first view corresponds to the first output, second view to the second output, etc. ">ViewsDescriptor</a> to configure the splitting process. Number of Views must be equal to the number of outputs, and their order must match - e.g. first view corresponds to the first output, second view to the second output, etc.... </td></tr>
1453 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1454 </table>
1455 </dd>
1456</dl>
1457
1458<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#a45c613d43c30b3314cafb1be3ef7685c">ILayerVisitor</a>.</p>
1459
1460<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00278">278</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1461<div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; boost::ignore_unused(splitterDescriptor);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div></div><!-- fragment -->
1462</div>
1463</div>
1464<a id="a61b7aa0305e7c45a625f7835fa26b9b6"></a>
1465<h2 class="memtitle"><span class="permalink"><a href="#a61b7aa0305e7c45a625f7835fa26b9b6">&#9670;&nbsp;</a></span>VisitStridedSliceLayer()</h2>
1466
1467<div class="memitem">
1468<div class="memproto">
1469<table class="mlabels">
1470 <tr>
1471 <td class="mlabels-left">
1472 <table class="memname">
1473 <tr>
1474 <td class="memname">void VisitStridedSliceLayer </td>
1475 <td>(</td>
1476 <td class="paramtype">const <a class="el" href="classarmnn_1_1_i_connectable_layer.html">IConnectableLayer</a> *&#160;</td>
1477 <td class="paramname"><em>layer</em>, </td>
1478 </tr>
1479 <tr>
1480 <td class="paramkey"></td>
1481 <td></td>
1482 <td class="paramtype">const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">StridedSliceDescriptor</a> &amp;&#160;</td>
1483 <td class="paramname"><em>stridedSliceDescriptor</em>, </td>
1484 </tr>
1485 <tr>
1486 <td class="paramkey"></td>
1487 <td></td>
1488 <td class="paramtype">const char *&#160;</td>
1489 <td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
1490 </tr>
1491 <tr>
1492 <td></td>
1493 <td>)</td>
1494 <td></td><td></td>
1495 </tr>
1496 </table>
1497 </td>
1498 <td class="mlabels-right">
1499<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1500 </tr>
1501</table>
1502</div><div class="memdoc">
1503<p>Function a strided slice layer should call back to when its Accept(ILayerVisitor&amp;) function is invoked. </p><dl class="params"><dt>Parameters</dt><dd>
1504 <table class="params">
1505 <tr><td class="paramname">layer</td><td>- pointer to the layer which is calling back to this visit function. </td></tr>
1506 <tr><td class="paramname">stridedSliceDescriptor</td><td>- Parameters for the strided slice operation. </td></tr>
1507 <tr><td class="paramname">name</td><td>- <a class="el" href="classarmnn_1_1_optional.html">Optional</a> name for the layer. </td></tr>
1508 </table>
1509 </dd>
1510</dl>
1511
1512<p>Implements <a class="el" href="classarmnn_1_1_i_layer_visitor.html#ac2f4ca5ada6d8fcf82d7bea2e6a06924">ILayerVisitor</a>.</p>
1513
1514<p class="definition">Definition at line <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html#l00296">296</a> of file <a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a>.</p>
1515<div class="fragment"><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;{</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; boost::ignore_unused(stridedSliceDescriptor);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; boost::ignore_unused(name);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; AddToNonCalibratedLayers(layer);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div></div><!-- fragment -->
1516</div>
1517</div>
1518<hr/>The documentation for this class was generated from the following files:<ul>
1519<li>src/armnn/<a class="el" href="_dynamic_quantization_visitor_8hpp_source.html">DynamicQuantizationVisitor.hpp</a></li>
1520<li>src/armnn/<a class="el" href="_dynamic_quantization_visitor_8cpp_source.html">DynamicQuantizationVisitor.cpp</a></li>
1521</ul>
1522</div><!-- contents -->
1523</div><!-- doc-content -->
1524<!-- start footer part -->
1525<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1526 <ul>
1527 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_dynamic_quantization_visitor.html">DynamicQuantizationVisitor</a></li>
1528 <li class="footer">Generated on Fri Mar 13 2020 16:07:03 for ArmNN by
1529 <a href="http://www.doxygen.org/index.html">
1530 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
1531 </ul>
1532</div>
1533</body>
1534</html>