blob: 36bbdd2709ede023aaa3a5ff7d6aab92d45b0c3c [file] [log] [blame]
Nikhil Raj1dc83fe2024-05-16 09:47:51 +01001<!-- HTML header for doxygen 1.8.17-->
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6<meta http-equiv="X-UA-Compatible" content="IE=9"/>
7<meta name="generator" content="Doxygen 1.8.17"/>
8<meta name="viewport" content="width=device-width, initial-scale=1"/>
9<title>Arm NN: QLstmQueueDescriptor Struct Reference</title>
10<link href="tabs.css" rel="stylesheet" type="text/css"/>
11<script type="text/javascript" src="jquery.js"></script>
12<script type="text/javascript" src="dynsections.js"></script>
13<link href="navtree.css" rel="stylesheet" type="text/css"/>
14<script type="text/javascript" src="resize.js"></script>
15<script type="text/javascript" src="navtreedata.js"></script>
16<script type="text/javascript" src="navtree.js"></script>
17<link href="search/search.css" rel="stylesheet" type="text/css"/>
18<script type="text/javascript" src="search/searchdata.js"></script>
19<script type="text/javascript" src="search/search.js"></script>
20<script type="text/x-mathjax-config">
21 MathJax.Hub.Config({
22 extensions: ["tex2jax.js"],
23 jax: ["input/TeX","output/HTML-CSS"],
24});
25</script>
26<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
27<link href="doxygen.css" rel="stylesheet" type="text/css" />
28<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
29</head>
30<body>
31<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32<div id="titlearea">
33<table cellspacing="0" cellpadding="0">
34 <tbody>
35 <tr style="height: 56px;">
36 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
37 <td id="projectalign" style="padding-left: 0.9em;">
38 <div id="projectname">
39 &#160;<span id="projectnumber">24.05</span>
40 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
47<!-- Generated by Doxygen 1.8.17 -->
48<script type="text/javascript">
49/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
50var searchBox = new SearchBox("searchBox", "search",false,'Search');
51/* @license-end */
52</script>
53<script type="text/javascript" src="menudata.js"></script>
54<script type="text/javascript" src="menu.js"></script>
55<script type="text/javascript">
56/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
57$(function() {
58 initMenu('',true,false,'search.php','Search');
59 $(document).ready(function() { init_search(); });
60});
61/* @license-end */</script>
62<div id="main-nav"></div>
63</div><!-- top -->
64<div id="side-nav" class="ui-resizable side-nav-resizable">
65 <div id="nav-tree">
66 <div id="nav-tree-contents">
67 <div id="nav-sync" class="sync"></div>
68 </div>
69 </div>
70 <div id="splitbar" style="-moz-user-select:none;"
71 class="ui-resizable-handle">
72 </div>
73</div>
74<script type="text/javascript">
75/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
76$(document).ready(function(){initNavTree('structarmnn_1_1_q_lstm_queue_descriptor.html',''); initResizable(); });
77/* @license-end */
78</script>
79<div id="doc-content">
80<!-- window showing the filter options -->
81<div id="MSearchSelectWindow"
82 onmouseover="return searchBox.OnSearchSelectShow()"
83 onmouseout="return searchBox.OnSearchSelectHide()"
84 onkeydown="return searchBox.OnSearchSelectKey(event)">
85</div>
86
87<!-- iframe showing the search results (closed by default) -->
88<div id="MSearchResultsWindow">
89<iframe src="javascript:void(0)" frameborder="0"
90 name="MSearchResults" id="MSearchResults">
91</iframe>
92</div>
93
94<div class="header">
95 <div class="summary">
96<a href="#pub-methods">Public Member Functions</a> &#124;
97<a href="#pub-attribs">Public Attributes</a> &#124;
98<a href="structarmnn_1_1_q_lstm_queue_descriptor-members.html">List of all members</a> </div>
99 <div class="headertitle">
100<div class="title">QLstmQueueDescriptor Struct Reference</div> </div>
101</div><!--header-->
102<div class="contents">
103
104<p><code>#include &lt;<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>&gt;</code></p>
105<div class="dynheader">
106Inheritance diagram for QLstmQueueDescriptor:</div>
107<div class="dyncontent">
108<div class="center"><iframe scrolling="no" frameborder="0" src="structarmnn_1_1_q_lstm_queue_descriptor__inherit__graph.svg" width="379" height="308"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
109</div>
110<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
111<div class="dynheader">
112Collaboration diagram for QLstmQueueDescriptor:</div>
113<div class="dyncontent">
114<div class="center"><iframe scrolling="no" frameborder="0" src="structarmnn_1_1_q_lstm_queue_descriptor__coll__graph.svg" width="1267" height="274"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
115</div>
116<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
117<table class="memberdecls">
118<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
119Public Member Functions</h2></td></tr>
120<tr class="memitem:ae632fa69e135c7871fcecf4658a0a634"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ae632fa69e135c7871fcecf4658a0a634">QLstmQueueDescriptor</a> ()</td></tr>
121<tr class="separator:ae632fa69e135c7871fcecf4658a0a634"><td class="memSeparator" colspan="2">&#160;</td></tr>
122<tr class="memitem:a041e495449e22774a34d92b0904c10bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a041e495449e22774a34d92b0904c10bf">Validate</a> (const <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;workloadInfo) const</td></tr>
123<tr class="separator:a041e495449e22774a34d92b0904c10bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
124<tr class="inherit_header pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters&lt; QLstmDescriptor &gt;</a></td></tr>
125<tr class="memitem:aceed736aeebb38dea25ee734a6bacba5 inherit pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aceed736aeebb38dea25ee734a6bacba5">~QueueDescriptorWithParameters</a> ()=default</td></tr>
126<tr class="separator:aceed736aeebb38dea25ee734a6bacba5 inherit pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="inherit_header pub_methods_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr>
128<tr class="memitem:a4cb2ebdad75dcaac215c8a1a3d62f315 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a4cb2ebdad75dcaac215c8a1a3d62f315">~QueueDescriptor</a> ()=default</td></tr>
129<tr class="separator:a4cb2ebdad75dcaac215c8a1a3d62f315 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<tr class="memitem:a089f647d882d65f657d7984e5f505f7c inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a089f647d882d65f657d7984e5f505f7c">ValidateTensorNumDimensions</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;tensor, std::string const &amp;descName, unsigned int numDimensions, std::string const &amp;tensorName) const</td></tr>
131<tr class="separator:a089f647d882d65f657d7984e5f505f7c inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<tr class="memitem:a8a30194ce14c088a2625ccc8c3e9d155 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> &amp;tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &amp;tensorName) const</td></tr>
133<tr class="separator:a8a30194ce14c088a2625ccc8c3e9d155 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
134<tr class="memitem:a765d2cee4ccce5b9467e0c2b6d25b84a inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a765d2cee4ccce5b9467e0c2b6d25b84a">ValidateInputsOutputs</a> (const std::string &amp;descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const</td></tr>
135<tr class="separator:a765d2cee4ccce5b9467e0c2b6d25b84a inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
136<tr class="memitem:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
137<tr class="memitem:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a0428f0a7927f8c29264d9c9a287840da">GetAdditionalInformation</a> () const</td></tr>
138<tr class="separator:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
139</table><table class="memberdecls">
140<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
141Public Attributes</h2></td></tr>
142<tr class="memitem:ab160eba2493d5fe52185c0986dcb190c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a></td></tr>
143<tr class="separator:ab160eba2493d5fe52185c0986dcb190c"><td class="memSeparator" colspan="2">&#160;</td></tr>
144<tr class="memitem:aab77f54a037658ca9b2bf9cc8a1fadf1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a></td></tr>
145<tr class="separator:aab77f54a037658ca9b2bf9cc8a1fadf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
146<tr class="memitem:a841439e3b8dc157a7368b19c9ecb7d03"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a></td></tr>
147<tr class="separator:a841439e3b8dc157a7368b19c9ecb7d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
148<tr class="memitem:a17ba1c8bcc71a55a95b2a3913f8cb203"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a></td></tr>
149<tr class="separator:a17ba1c8bcc71a55a95b2a3913f8cb203"><td class="memSeparator" colspan="2">&#160;</td></tr>
150<tr class="memitem:a299587d4f3fca029492700f3e2585bd8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a></td></tr>
151<tr class="separator:a299587d4f3fca029492700f3e2585bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
152<tr class="memitem:adf8571dd1867ee91082bd005f94f2610"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a></td></tr>
153<tr class="separator:adf8571dd1867ee91082bd005f94f2610"><td class="memSeparator" colspan="2">&#160;</td></tr>
154<tr class="memitem:ac18c8b8b2039267d8282e91b4162d8aa"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a></td></tr>
155<tr class="separator:ac18c8b8b2039267d8282e91b4162d8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
156<tr class="memitem:a4c27716f61bb68e8ea0bd4e8389ba01a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a></td></tr>
157<tr class="separator:a4c27716f61bb68e8ea0bd4e8389ba01a"><td class="memSeparator" colspan="2">&#160;</td></tr>
158<tr class="memitem:a951b7c90b862138071a298065f16be61"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a></td></tr>
159<tr class="separator:a951b7c90b862138071a298065f16be61"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:a20c10fcb26657477377d07b7b1e13120"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></td></tr>
161<tr class="separator:a20c10fcb26657477377d07b7b1e13120"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:aa09f7bdb9fd0d06b6386e412a4e72dd6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a></td></tr>
163<tr class="separator:aa09f7bdb9fd0d06b6386e412a4e72dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a44eb7524badcca9b2073359e3814c98b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a></td></tr>
165<tr class="separator:a44eb7524badcca9b2073359e3814c98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:a29fa293fffbf9c6f00cd75db1dc0a52a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a></td></tr>
167<tr class="separator:a29fa293fffbf9c6f00cd75db1dc0a52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:a6e9593869b82984de198fed27f72cdcf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a></td></tr>
169<tr class="separator:a6e9593869b82984de198fed27f72cdcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="memitem:a5ff4158b1b363b898d0da04c42d37ce0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a></td></tr>
171<tr class="separator:a5ff4158b1b363b898d0da04c42d37ce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:a3ead2ef8da00b2709d561d85996fc513"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a></td></tr>
173<tr class="separator:a3ead2ef8da00b2709d561d85996fc513"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:ac668b31de6fb0f19d4c793d5ed3c3316"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a></td></tr>
175<tr class="separator:ac668b31de6fb0f19d4c793d5ed3c3316"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:a1dbad32cad5c0437e1272f59fedf52ea"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a></td></tr>
177<tr class="separator:a1dbad32cad5c0437e1272f59fedf52ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:ad9442e26aa79f896da5f404ab825a9c8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a></td></tr>
179<tr class="separator:ad9442e26aa79f896da5f404ab825a9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:aeef6f1ac3efad8ec8b0a7118652b64c9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a></td></tr>
181<tr class="separator:aeef6f1ac3efad8ec8b0a7118652b64c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:a0e0f66bd03c88f3d2dc666f581d3cf12"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a></td></tr>
183<tr class="separator:a0e0f66bd03c88f3d2dc666f581d3cf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="inherit_header pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters&lt; QLstmDescriptor &gt;</a></td></tr>
185<tr class="memitem:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_q_lstm_descriptor.html">QLstmDescriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a></td></tr>
186<tr class="separator:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
187<tr class="inherit_header pub_attribs_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr>
188<tr class="memitem:a4b50e46a6810018f3edecfb68b2a76b3 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_i_tensor_handle.html">ITensorHandle</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a4b50e46a6810018f3edecfb68b2a76b3">m_Inputs</a></td></tr>
189<tr class="separator:a4b50e46a6810018f3edecfb68b2a76b3 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classarmnn_1_1_i_tensor_handle.html">ITensorHandle</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a6abd491bb99ffe88bd472c1ae5a1ed1a">m_Outputs</a></td></tr>
191<tr class="separator:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:a2f2e6134cabedfc58aa53fe38a2b8a67 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a2f2e6134cabedfc58aa53fe38a2b8a67">m_AdditionalInfoObject</a></td></tr>
193<tr class="separator:a2f2e6134cabedfc58aa53fe38a2b8a67 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:a9ef8ddbeee4b869e4c68eb2ed278b8d9 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a9ef8ddbeee4b869e4c68eb2ed278b8d9">m_AllowExpandedDims</a> = false</td></tr>
195<tr class="separator:a9ef8ddbeee4b869e4c68eb2ed278b8d9 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
196</table><table class="memberdecls">
197<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
198Additional Inherited Members</h2></td></tr>
199<tr class="inherit_header pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_structarmnn_1_1_queue_descriptor_with_parameters')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters&lt; QLstmDescriptor &gt;</a></td></tr>
200<tr class="memitem:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#a6f269eb32757efa5b203091c52e985fd">QueueDescriptorWithParameters</a> ()=default</td></tr>
201<tr class="separator:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<tr class="memitem:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#a6cbdcaa9cab857077a3810788e2cf489">QueueDescriptorWithParameters</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> const &amp;)=default</td></tr>
203<tr class="separator:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<tr class="memitem:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aa86bd03df9faf133a34e263f16486707">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.html">QueueDescriptorWithParameters</a> const &amp;)=default</td></tr>
205<tr class="separator:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<tr class="inherit_header pro_methods_structarmnn_1_1_queue_descriptor"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_structarmnn_1_1_queue_descriptor')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a></td></tr>
207<tr class="memitem:ab088ef357662bcea45cbd49674ad0ff7 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#ab088ef357662bcea45cbd49674ad0ff7">QueueDescriptor</a> ()</td></tr>
208<tr class="separator:ab088ef357662bcea45cbd49674ad0ff7 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="memitem:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a75d3b85e1e50b1dff74ee84a593d089e">QueueDescriptor</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> const &amp;)=default</td></tr>
210<tr class="separator:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<tr class="memitem:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.html#a1c928b975a0de05cf2536c721ba6b521">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.html">QueueDescriptor</a> const &amp;)=default</td></tr>
212<tr class="separator:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
213</table>
214<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
215<div class="textblock">
216<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00562">562</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
217</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
218<a id="ae632fa69e135c7871fcecf4658a0a634"></a>
219<h2 class="memtitle"><span class="permalink"><a href="#ae632fa69e135c7871fcecf4658a0a634">&#9670;&nbsp;</a></span>QLstmQueueDescriptor()</h2>
220
221<div class="memitem">
222<div class="memproto">
223<table class="mlabels">
224 <tr>
225 <td class="mlabels-left">
226 <table class="memname">
227 <tr>
228 <td class="memname"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html">QLstmQueueDescriptor</a> </td>
229 <td>(</td>
230 <td class="paramname"></td><td>)</td>
231 <td></td>
232 </tr>
233 </table>
234 </td>
235 <td class="mlabels-right">
236<span class="mlabels"><span class="mlabel">inline</span></span> </td>
237 </tr>
238</table>
239</div><div class="memdoc">
240
241<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00564">564</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
242<div class="fragment"><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; : <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a>(<span class="keyword">nullptr</span>)</div>
243<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>(<span class="keyword">nullptr</span>)</div>
244<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>(<span class="keyword">nullptr</span>)</div>
245<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>(<span class="keyword">nullptr</span>)</div>
246<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a>(<span class="keyword">nullptr</span>)</div>
247<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>(<span class="keyword">nullptr</span>)</div>
248<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>(<span class="keyword">nullptr</span>)</div>
249<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>(<span class="keyword">nullptr</span>)</div>
250<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a>(<span class="keyword">nullptr</span>)</div>
251<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a>(<span class="keyword">nullptr</span>)</div>
252<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a>(<span class="keyword">nullptr</span>)</div>
253<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>(<span class="keyword">nullptr</span>)</div>
254<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>(<span class="keyword">nullptr</span>)</div>
255<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>(<span class="keyword">nullptr</span>)</div>
256<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>(<span class="keyword">nullptr</span>)</div>
257<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a>(<span class="keyword">nullptr</span>)</div>
258<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>(<span class="keyword">nullptr</span>)</div>
259<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div>
260<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div>
261<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div>
262<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div>
263<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div>
264<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div>
265</div><!-- fragment -->
266</div>
267</div>
268<h2 class="groupheader">Member Function Documentation</h2>
269<a id="a041e495449e22774a34d92b0904c10bf"></a>
270<h2 class="memtitle"><span class="permalink"><a href="#a041e495449e22774a34d92b0904c10bf">&#9670;&nbsp;</a></span>Validate()</h2>
271
272<div class="memitem">
273<div class="memproto">
274 <table class="memname">
275 <tr>
276 <td class="memname">void Validate </td>
277 <td>(</td>
278 <td class="paramtype">const <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;&#160;</td>
279 <td class="paramname"><em>workloadInfo</em></td><td>)</td>
280 <td> const</td>
281 </tr>
282 </table>
283</div><div class="memdoc">
284
285<p class="definition">Definition at line <a class="el" href="_workload_data_8cpp_source.html#l03148">3148</a> of file <a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a>.</p>
286<div class="fragment"><div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160;{</div>
287<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160; <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">&quot;QLstmQueueDescriptor&quot;</span>};</div>
288<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160; </div>
289<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160; <span class="comment">// Validate number of inputs/outputs</span></div>
290<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160; ValidateNumInputs(workloadInfo, descriptorName, 3);</div>
291<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160; ValidateNumOutputs(workloadInfo, descriptorName, 3);</div>
292<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160; </div>
293<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160; <span class="comment">// Input/output tensor info</span></div>
294<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160; <span class="keyword">auto</span> inputInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0];</div>
295<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160; <span class="keyword">auto</span> outputStateInInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[1];</div>
296<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160; <span class="keyword">auto</span> cellStateInInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[2];</div>
297<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160; </div>
298<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160; <span class="keyword">auto</span> outputStateOutInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0];</div>
299<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160; <span class="keyword">auto</span> cellStateOutInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[1];</div>
300<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160; <span class="keyword">auto</span> outputInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[2];</div>
301<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160; </div>
302<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160; <span class="comment">// Supported types for various tensors in QLSTM</span></div>
303<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160; std::vector&lt;DataType&gt; inputOutputSupportedTypes =</div>
304<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160; {</div>
305<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a></div>
306<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160; };</div>
307<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160; </div>
308<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160; std::vector&lt;DataType&gt; cellStateSupportedTypes =</div>
309<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160; {</div>
310<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div>
311<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160; };</div>
312<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160; </div>
313<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160; std::vector&lt;DataType&gt; weightsSupportedTypes =</div>
314<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160; {</div>
315<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a></div>
316<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160; };</div>
317<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160; </div>
318<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160; std::vector&lt;DataType&gt; layerNormPeepholeWeightsSupportedTypes =</div>
319<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160; {</div>
320<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div>
321<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160; };</div>
322<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160; </div>
323<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160; std::vector&lt;DataType&gt; biasSupportedTypes =</div>
324<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160; {</div>
325<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div>
326<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160; };</div>
327<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160; </div>
328<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160; <span class="comment">// Validate types of input/output tensors</span></div>
329<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; ValidateDataTypes(inputInfo, inputOutputSupportedTypes, descriptorName);</div>
330<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160; ValidateDataTypes(outputStateInInfo, inputOutputSupportedTypes, descriptorName);</div>
331<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160; ValidateDataTypes(cellStateInInfo, cellStateSupportedTypes, descriptorName);</div>
332<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160; </div>
333<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160; ValidateDataTypes(outputStateOutInfo, inputOutputSupportedTypes, descriptorName);</div>
334<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160; ValidateDataTypes(cellStateOutInfo, cellStateSupportedTypes, descriptorName);</div>
335<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160; ValidateDataTypes(outputInfo, inputOutputSupportedTypes, descriptorName);</div>
336<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160; </div>
337<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160; <span class="comment">// Validate matching types of input/output tensors</span></div>
338<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; ValidateTensorDataTypesMatch(inputInfo, outputStateInInfo, descriptorName, <span class="stringliteral">&quot;input&quot;</span>, <span class="stringliteral">&quot;outputStateIn&quot;</span>);</div>
339<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160; ValidateTensorDataTypesMatch(outputStateInInfo, outputStateOutInfo, descriptorName,</div>
340<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160; <span class="stringliteral">&quot;outputStateIn&quot;</span>, <span class="stringliteral">&quot;outputStateOut&quot;</span>);</div>
341<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160; ValidateTensorDataTypesMatch(cellStateInInfo, cellStateOutInfo, descriptorName, <span class="stringliteral">&quot;cellStateIn&quot;</span>, <span class="stringliteral">&quot;cellStateOut&quot;</span>);</div>
342<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160; </div>
343<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160; <span class="comment">// Infer number of batches, number of units, input size and output size from tensor dimensions</span></div>
344<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160; <span class="keyword">const</span> uint32_t numBatches = inputInfo.GetShape()[0];</div>
345<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160; <span class="keyword">const</span> uint32_t inputSize = inputInfo.GetShape()[1];</div>
346<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; <span class="keyword">const</span> uint32_t outputSize = outputStateInInfo.GetShape()[1];</div>
347<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; <span class="keyword">const</span> uint32_t numUnits = cellStateInInfo.GetShape()[1];</div>
348<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160; </div>
349<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for input/output tensors</span></div>
350<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputInfo, 2, (numBatches * inputSize), descriptorName + <span class="stringliteral">&quot; input&quot;</span>);</div>
351<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(outputStateInInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">&quot; outputStateIn&quot;</span>);</div>
352<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellStateInInfo, 2, (numBatches * numUnits), descriptorName + <span class="stringliteral">&quot; cellStateIn&quot;</span>);</div>
353<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160; </div>
354<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(outputStateOutInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">&quot; outputStateOut&quot;</span>);</div>
355<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellStateOutInfo, 2, (numBatches * numUnits), descriptorName + <span class="stringliteral">&quot; cellStateOut&quot;</span>);</div>
356<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(outputInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">&quot; output&quot;</span>);</div>
357<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160; </div>
358<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for MANDATORY weight tensors</span></div>
359<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>, descriptorName, <span class="stringliteral">&quot;InputToForgetWeights&quot;</span>);</div>
360<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160; <span class="keyword">auto</span> inputToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
361<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputToForgetWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">&quot; InputToForgetWeights&quot;</span>);</div>
362<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160; </div>
363<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>, descriptorName, <span class="stringliteral">&quot;InputToCellWeights&quot;</span>);</div>
364<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160; <span class="keyword">auto</span> inputToCellWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
365<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputToCellWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">&quot; InputToCellWeights&quot;</span>);</div>
366<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160; </div>
367<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>, descriptorName, <span class="stringliteral">&quot;InputToOutputWeights&quot;</span>);</div>
368<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160; <span class="keyword">auto</span> inputToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
369<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputToOutputWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">&quot; InputToOutputWeights&quot;</span>);</div>
370<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160; </div>
371<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>, descriptorName, <span class="stringliteral">&quot;RecurrentToForgetWeights&quot;</span>);</div>
372<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160; <span class="keyword">auto</span> recurrentToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
373<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToForgetWeightsInfo, 2, (numUnits * outputSize),</div>
374<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160; <span class="stringliteral">&quot; RecurrentToForgetWeights&quot;</span>);</div>
375<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160; </div>
376<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>, descriptorName, <span class="stringliteral">&quot;RecurrentToCellWeights&quot;</span>);</div>
377<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160; <span class="keyword">auto</span> recurrentToCellWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
378<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToCellWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">&quot; RecurrentToCellWeights&quot;</span>);</div>
379<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160; </div>
380<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>, descriptorName, <span class="stringliteral">&quot;RecurrentToOutputWeights&quot;</span>);</div>
381<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160; <span class="keyword">auto</span> recurrentToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
382<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToOutputWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">&quot; RecurrentToCellWeights&quot;</span>);</div>
383<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160; </div>
384<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160; <span class="comment">// Validate data types for MANDATORY weights tensors (all should match each other)</span></div>
385<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160; ValidateDataTypes(inputToForgetWeightsInfo, weightsSupportedTypes, descriptorName);</div>
386<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160; </div>
387<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToCellWeightsInfo, descriptorName,</div>
388<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToCellWeights&quot;</span>);</div>
389<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToOutputWeightsInfo, descriptorName,</div>
390<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToOutputWeights&quot;</span>);</div>
391<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160; </div>
392<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToForgetWeightsInfo, descriptorName,</div>
393<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToForgeteights&quot;</span>);</div>
394<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToCellWeightsInfo, descriptorName,</div>
395<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToCellWeights&quot;</span>);</div>
396<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToOutputWeightsInfo, descriptorName,</div>
397<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToOutputWeights&quot;</span>);</div>
398<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160; </div>
399<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for MANDATORY bias tensors</span></div>
400<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>, descriptorName, <span class="stringliteral">&quot;ForgetGateBias&quot;</span>);</div>
401<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; <span class="keyword">auto</span> forgetGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
402<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(forgetGateBiasInfo, 1, numUnits, <span class="stringliteral">&quot; ForgetGateBias&quot;</span>);</div>
403<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160; </div>
404<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>, descriptorName, <span class="stringliteral">&quot;CellBias&quot;</span>);</div>
405<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160; <span class="keyword">auto</span> cellBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
406<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellBiasInfo, 1, numUnits, <span class="stringliteral">&quot; CellBias&quot;</span>);</div>
407<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160; </div>
408<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>, descriptorName, <span class="stringliteral">&quot;OutputGateBias&quot;</span>);</div>
409<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160; <span class="keyword">auto</span> outputGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
410<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(outputGateBiasInfo, 1, numUnits, <span class="stringliteral">&quot; OutputGateBias&quot;</span>);</div>
411<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160; </div>
412<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160; <span class="comment">// Validate data types for MANDATORY bias tensors</span></div>
413<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160; ValidateDataTypes(forgetGateBiasInfo, biasSupportedTypes, descriptorName);</div>
414<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160; </div>
415<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, cellBiasInfo, descriptorName,</div>
416<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;cellBias&quot;</span>);</div>
417<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, outputGateBiasInfo, descriptorName,</div>
418<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;outputGateBias&quot;</span>);</div>
419<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160; </div>
420<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160; <span class="comment">// Validate OPTIONAL params: CIFG (inputToInputWeights, recurrentToInputWeights, inputGateBias)</span></div>
421<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> allCifgParamsPresentOrNot = ((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a> &amp;&amp;</div>
422<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) ||</div>
423<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160; (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a> &amp;&amp;</div>
424<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>));</div>
425<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; </div>
426<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; <span class="keywordflow">if</span> (!allCifgParamsPresentOrNot)</div>
427<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160; {</div>
428<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
429<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; <span class="stringliteral">&quot;: InputToInputWeights, RecurrentToInputWeights and InputGateBias must either all be present &quot;</span></div>
430<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; <span class="stringliteral">&quot;(CIFG disabled) or not be present at all (CIFG enabled). m_Parameters.m_CifgEnabled should be &quot;</span></div>
431<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160; <span class="stringliteral">&quot;set appropriately.&quot;</span>);</div>
432<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160; }</div>
433<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; </div>
434<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div>
435<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160; {</div>
436<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160; <span class="comment">// Validate number of dimensions and number of elements</span></div>
437<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; <span class="keyword">auto</span> inputToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
438<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputToInputWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">&quot; InputToInputWeights&quot;</span>);</div>
439<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160; </div>
440<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160; <span class="keyword">auto</span> recurrentToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
441<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToInputWeightsInfo, 2, (numUnits * outputSize),</div>
442<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160; <span class="stringliteral">&quot; RecurrentToInputWeights&quot;</span>);</div>
443<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160; </div>
444<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; <span class="keyword">auto</span> inputGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
445<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputGateBiasInfo, 1, numUnits, <span class="stringliteral">&quot; InputGateBias&quot;</span>);</div>
446<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; </div>
447<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; <span class="comment">// Validate data types</span></div>
448<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToInputWeightsInfo, descriptorName,</div>
449<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToInputWeights&quot;</span>);</div>
450<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToInputWeightsInfo, descriptorName,</div>
451<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToInputWeights&quot;</span>);</div>
452<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, inputGateBiasInfo, descriptorName,</div>
453<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;inputGateBias&quot;</span>);</div>
454<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; }</div>
455<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160; </div>
456<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160; <span class="comment">// Validate OPTIONAL params: Peephole (cellToInputWeights, cellToForgetWeights, cellToOutputWeights)</span></div>
457<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160; <span class="keywordtype">bool</span> allPeepholeWeightsPresentOrNot =</div>
458<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160; (((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a> || <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></div>
459<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160; &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div>
460<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160; || (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></div>
461<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>));</div>
462<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160; </div>
463<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160; <span class="keywordflow">if</span> (!allPeepholeWeightsPresentOrNot)</div>
464<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160; {</div>
465<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
466<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; <span class="stringliteral">&quot;: CellToInputWeights, CellToForgetWeights and CellToOutputWeights should all be present (Peephole &quot;</span></div>
467<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; <span class="stringliteral">&quot;enabled) or not be present at all (Peephole disabled). CellToInputWeights should only be present &quot;</span></div>
468<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; <span class="stringliteral">&quot;when Peephole is enabled and CIFG is disabled. m_Parameters.m_PeepholeEnabled should be set &quot;</span></div>
469<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; <span class="stringliteral">&quot;appropriately.&quot;</span>);</div>
470<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; }</div>
471<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; </div>
472<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div>
473<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; {</div>
474<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; <span class="keyword">auto</span> cellToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
475<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellToForgetWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; cellToForgetWeights&quot;</span>);</div>
476<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; ValidateDataTypes(cellToForgetWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div>
477<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160; </div>
478<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; <span class="keyword">auto</span> cellToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
479<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellToOutputWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; cellToOutputWeights&quot;</span>);</div>
480<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToOutputWeightsInfo, descriptorName,</div>
481<div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160; <span class="stringliteral">&quot;cellToForgetWeight&quot;</span>, <span class="stringliteral">&quot;cellToOutputWeights&quot;</span>);</div>
482<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160; </div>
483<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div>
484<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; {</div>
485<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160; <span class="keyword">auto</span> cellToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
486<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellToInputWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; cellToInputWeights&quot;</span>);</div>
487<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160; ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToInputWeightsInfo, descriptorName,</div>
488<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160; <span class="stringliteral">&quot;cellToForgetWeights&quot;</span>, <span class="stringliteral">&quot;cellToInputWeights&quot;</span>);</div>
489<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; }</div>
490<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160; }</div>
491<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; </div>
492<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; <span class="comment">// Validate OPTIONAL params: Layer Norm Weights</span></div>
493<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160; <span class="keywordtype">bool</span> allLayerNormWeightsPresentOrNot =</div>
494<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160; (((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a> || <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a></div>
495<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160; &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div>
496<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160; || (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a></div>
497<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160; &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>));</div>
498<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160; </div>
499<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160; <span class="keywordflow">if</span> (!allLayerNormWeightsPresentOrNot)</div>
500<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160; {</div>
501<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
502<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160; <span class="stringliteral">&quot;: InputLayerNormWeights, ForgetLayerNormWeights, m_OutputLayerNormWeights &quot;</span></div>
503<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160; <span class="stringliteral">&quot;and CellLayerNormWeights should all be present (Layer Norm enabled) or not &quot;</span></div>
504<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160; <span class="stringliteral">&quot;be present at all (Layer Norm disabled). InputLayerNormWeights should &quot;</span></div>
505<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160; <span class="stringliteral">&quot;only be present when Layer Norm is enabled and CIFG is disabled. &quot;</span></div>
506<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160; <span class="stringliteral">&quot;m_Parameters.m_LayerNormEnabled should be set appropriately.&quot;</span>);</div>
507<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160; }</div>
508<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160; </div>
509<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div>
510<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160; {</div>
511<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160; <span class="keyword">auto</span> forgetLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
512<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(forgetLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; forgetLayerNormWeights&quot;</span>);</div>
513<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160; ValidateDataTypes(forgetLayerNormWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div>
514<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160; </div>
515<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160; <span class="keyword">auto</span> cellLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
516<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(cellLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; cellLayerNormWeights&quot;</span>);</div>
517<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, cellLayerNormWeightsInfo, descriptorName,</div>
518<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;cellLayerNormWeights&quot;</span>);</div>
519<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160; </div>
520<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160; <span class="keyword">auto</span> outputLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
521<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(outputLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; outputLayerNormWeights&quot;</span>);</div>
522<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, outputLayerNormWeightsInfo, descriptorName,</div>
523<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;outputLayerNormWeights&quot;</span>);</div>
524<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160; </div>
525<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div>
526<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160; {</div>
527<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160; <span class="keyword">auto</span> inputLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
528<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(inputLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">&quot; inputLayerNormWeights&quot;</span>);</div>
529<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, inputLayerNormWeightsInfo, descriptorName,</div>
530<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;inputLayerNormWeights&quot;</span>);</div>
531<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160; }</div>
532<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160; }</div>
533<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160; </div>
534<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160; <span class="comment">// Validate OPTIONAL params: Projection (projectionWeights, projectionBias)</span></div>
535<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160; <span class="keywordtype">bool</span> correctProjectionTensorsPresent =</div>
536<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160; ((!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>) ||</div>
537<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160; (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>) ||</div>
538<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160; (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>));</div>
539<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160; </div>
540<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160; <span class="keywordflow">if</span> (!correctProjectionTensorsPresent)</div>
541<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160; {</div>
542<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
543<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160; <span class="stringliteral">&quot;: If projection is enabled, ProjectionWeights should be present and &quot;</span></div>
544<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160; <span class="stringliteral">&quot;ProjectionBias is optional. If projection is disabled, neither &quot;</span></div>
545<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160; <span class="stringliteral">&quot;ProjectionWeights nor ProjectionBias should be present.&quot;</span>);</div>
546<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160; }</div>
547<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160; </div>
548<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>)</div>
549<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160; {</div>
550<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160; <span class="keyword">auto</span> projectionWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
551<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(projectionWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">&quot;ProjectionWeights&quot;</span>);</div>
552<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160; ValidateDataTypes(projectionWeightsInfo, weightsSupportedTypes, descriptorName);</div>
553<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160; </div>
554<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>)</div>
555<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160; {</div>
556<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160; <span class="keyword">auto</span> projectionBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div>
557<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(projectionBiasInfo, 1, outputSize, <span class="stringliteral">&quot;ProjectionBias&quot;</span>);</div>
558<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160; ValidateDataTypes(projectionBiasInfo, biasSupportedTypes, descriptorName);</div>
559<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160; }</div>
560<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160; </div>
561<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160; }</div>
562<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((outputInfo.GetQuantizationScale() != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#af8f724af7210b52529216feefa993c98">m_HiddenStateScale</a>) &amp;&amp;</div>
563<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160; outputInfo.GetQuantizationOffset() != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.html#a4556cbd764d4848d8ad0637a9eed580d">m_HiddenStateZeroPoint</a>) {</div>
564<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
565<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160; <span class="stringliteral">&quot;: If projection is disabled, output quantization info (scale, offset) &quot;</span></div>
566<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160; <span class="stringliteral">&quot;should match HiddenStateScale and HiddenStateZeroPoint.&quot;</span>);</div>
567<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160; }</div>
568<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160; </div>
569<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;}</div>
570</div><!-- fragment -->
571<p class="reference">References <a class="el" href="_tensor_8cpp_source.html#l00482">TensorInfo::GetQuantizationOffset()</a>, <a class="el" href="_tensor_8cpp_source.html#l00461">TensorInfo::GetQuantizationScale()</a>, <a class="el" href="_tensor_8hpp_source.html#l00193">TensorInfo::GetShape()</a>, <a class="el" href="_tensor_handle_8hpp_source.html#l00040">ConstTensorHandle::GetTensorInfo()</a>, <a class="el" href="_workload_data_8hpp_source.html#l00602">QLstmQueueDescriptor::m_CellBias</a>, <a class="el" href="_workload_data_8hpp_source.html#l00608">QLstmQueueDescriptor::m_CellLayerNormWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00598">QLstmQueueDescriptor::m_CellToForgetWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00597">QLstmQueueDescriptor::m_CellToInputWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00599">QLstmQueueDescriptor::m_CellToOutputWeights</a>, <a class="el" href="_descriptors_8hpp_source.html#l01418">QLstmDescriptor::m_CifgEnabled</a>, <a class="el" href="_workload_data_8hpp_source.html#l00601">QLstmQueueDescriptor::m_ForgetGateBias</a>, <a class="el" href="_workload_data_8hpp_source.html#l00607">QLstmQueueDescriptor::m_ForgetLayerNormWeights</a>, <a class="el" href="_descriptors_8hpp_source.html#l01436">QLstmDescriptor::m_HiddenStateScale</a>, <a class="el" href="_descriptors_8hpp_source.html#l01434">QLstmDescriptor::m_HiddenStateZeroPoint</a>, <a class="el" href="_workload_data_8hpp_source.html#l00600">QLstmQueueDescriptor::m_InputGateBias</a>, <a class="el" href="_workload_data_8hpp_source.html#l00606">QLstmQueueDescriptor::m_InputLayerNormWeights</a>, <a class="el" href="_workload_info_8hpp_source.html#l00018">WorkloadInfo::m_InputTensorInfos</a>, <a class="el" href="_workload_data_8hpp_source.html#l00591">QLstmQueueDescriptor::m_InputToCellWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00590">QLstmQueueDescriptor::m_InputToForgetWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00589">QLstmQueueDescriptor::m_InputToInputWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00592">QLstmQueueDescriptor::m_InputToOutputWeights</a>, <a class="el" href="_descriptors_8hpp_source.html#l01424">QLstmDescriptor::m_LayerNormEnabled</a>, <a class="el" href="_workload_data_8hpp_source.html#l00603">QLstmQueueDescriptor::m_OutputGateBias</a>, <a class="el" href="_workload_data_8hpp_source.html#l00609">QLstmQueueDescriptor::m_OutputLayerNormWeights</a>, <a class="el" href="_workload_info_8hpp_source.html#l00019">WorkloadInfo::m_OutputTensorInfos</a>, <a class="el" href="_workload_data_8hpp_source.html#l00066">QueueDescriptorWithParameters&lt; QLstmDescriptor &gt;::m_Parameters</a>, <a class="el" href="_descriptors_8hpp_source.html#l01420">QLstmDescriptor::m_PeepholeEnabled</a>, <a class="el" href="_workload_data_8hpp_source.html#l00605">QLstmQueueDescriptor::m_ProjectionBias</a>, <a class="el" href="_descriptors_8hpp_source.html#l01422">QLstmDescriptor::m_ProjectionEnabled</a>, <a class="el" href="_workload_data_8hpp_source.html#l00604">QLstmQueueDescriptor::m_ProjectionWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00595">QLstmQueueDescriptor::m_RecurrentToCellWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00594">QLstmQueueDescriptor::m_RecurrentToForgetWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00593">QLstmQueueDescriptor::m_RecurrentToInputWeights</a>, <a class="el" href="_workload_data_8hpp_source.html#l00596">QLstmQueueDescriptor::m_RecurrentToOutputWeights</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::QAsymmS8</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::QSymmS16</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::QSymmS8</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::Signed32</a>, and <a class="el" href="_workload_data_8cpp_source.html#l00436">QueueDescriptor::ValidateTensorNumDimNumElem()</a>.</p>
572
573</div>
574</div>
575<h2 class="groupheader">Member Data Documentation</h2>
576<a id="a6e9593869b82984de198fed27f72cdcf"></a>
577<h2 class="memtitle"><span class="permalink"><a href="#a6e9593869b82984de198fed27f72cdcf">&#9670;&nbsp;</a></span>m_CellBias</h2>
578
579<div class="memitem">
580<div class="memproto">
581 <table class="memname">
582 <tr>
583 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellBias</td>
584 </tr>
585 </table>
586</div><div class="memdoc">
587
588<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00602">602</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
589
590<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
591
592</div>
593</div>
594<a id="aeef6f1ac3efad8ec8b0a7118652b64c9"></a>
595<h2 class="memtitle"><span class="permalink"><a href="#aeef6f1ac3efad8ec8b0a7118652b64c9">&#9670;&nbsp;</a></span>m_CellLayerNormWeights</h2>
596
597<div class="memitem">
598<div class="memproto">
599 <table class="memname">
600 <tr>
601 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellLayerNormWeights</td>
602 </tr>
603 </table>
604</div><div class="memdoc">
605
606<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00608">608</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
607
608<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
609
610</div>
611</div>
612<a id="a20c10fcb26657477377d07b7b1e13120"></a>
613<h2 class="memtitle"><span class="permalink"><a href="#a20c10fcb26657477377d07b7b1e13120">&#9670;&nbsp;</a></span>m_CellToForgetWeights</h2>
614
615<div class="memitem">
616<div class="memproto">
617 <table class="memname">
618 <tr>
619 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToForgetWeights</td>
620 </tr>
621 </table>
622</div><div class="memdoc">
623
624<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00598">598</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
625
626<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
627
628</div>
629</div>
630<a id="a951b7c90b862138071a298065f16be61"></a>
631<h2 class="memtitle"><span class="permalink"><a href="#a951b7c90b862138071a298065f16be61">&#9670;&nbsp;</a></span>m_CellToInputWeights</h2>
632
633<div class="memitem">
634<div class="memproto">
635 <table class="memname">
636 <tr>
637 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToInputWeights</td>
638 </tr>
639 </table>
640</div><div class="memdoc">
641
642<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00597">597</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
643
644<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
645
646</div>
647</div>
648<a id="aa09f7bdb9fd0d06b6386e412a4e72dd6"></a>
649<h2 class="memtitle"><span class="permalink"><a href="#aa09f7bdb9fd0d06b6386e412a4e72dd6">&#9670;&nbsp;</a></span>m_CellToOutputWeights</h2>
650
651<div class="memitem">
652<div class="memproto">
653 <table class="memname">
654 <tr>
655 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToOutputWeights</td>
656 </tr>
657 </table>
658</div><div class="memdoc">
659
660<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00599">599</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
661
662<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
663
664</div>
665</div>
666<a id="a29fa293fffbf9c6f00cd75db1dc0a52a"></a>
667<h2 class="memtitle"><span class="permalink"><a href="#a29fa293fffbf9c6f00cd75db1dc0a52a">&#9670;&nbsp;</a></span>m_ForgetGateBias</h2>
668
669<div class="memitem">
670<div class="memproto">
671 <table class="memname">
672 <tr>
673 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ForgetGateBias</td>
674 </tr>
675 </table>
676</div><div class="memdoc">
677
678<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00601">601</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
679
680<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
681
682</div>
683</div>
684<a id="ad9442e26aa79f896da5f404ab825a9c8"></a>
685<h2 class="memtitle"><span class="permalink"><a href="#ad9442e26aa79f896da5f404ab825a9c8">&#9670;&nbsp;</a></span>m_ForgetLayerNormWeights</h2>
686
687<div class="memitem">
688<div class="memproto">
689 <table class="memname">
690 <tr>
691 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ForgetLayerNormWeights</td>
692 </tr>
693 </table>
694</div><div class="memdoc">
695
696<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00607">607</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
697
698<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
699
700</div>
701</div>
702<a id="a44eb7524badcca9b2073359e3814c98b"></a>
703<h2 class="memtitle"><span class="permalink"><a href="#a44eb7524badcca9b2073359e3814c98b">&#9670;&nbsp;</a></span>m_InputGateBias</h2>
704
705<div class="memitem">
706<div class="memproto">
707 <table class="memname">
708 <tr>
709 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputGateBias</td>
710 </tr>
711 </table>
712</div><div class="memdoc">
713
714<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00600">600</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
715
716<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
717
718</div>
719</div>
720<a id="a1dbad32cad5c0437e1272f59fedf52ea"></a>
721<h2 class="memtitle"><span class="permalink"><a href="#a1dbad32cad5c0437e1272f59fedf52ea">&#9670;&nbsp;</a></span>m_InputLayerNormWeights</h2>
722
723<div class="memitem">
724<div class="memproto">
725 <table class="memname">
726 <tr>
727 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputLayerNormWeights</td>
728 </tr>
729 </table>
730</div><div class="memdoc">
731
732<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00606">606</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
733
734<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
735
736</div>
737</div>
738<a id="a841439e3b8dc157a7368b19c9ecb7d03"></a>
739<h2 class="memtitle"><span class="permalink"><a href="#a841439e3b8dc157a7368b19c9ecb7d03">&#9670;&nbsp;</a></span>m_InputToCellWeights</h2>
740
741<div class="memitem">
742<div class="memproto">
743 <table class="memname">
744 <tr>
745 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToCellWeights</td>
746 </tr>
747 </table>
748</div><div class="memdoc">
749
750<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00591">591</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
751
752<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
753
754</div>
755</div>
756<a id="aab77f54a037658ca9b2bf9cc8a1fadf1"></a>
757<h2 class="memtitle"><span class="permalink"><a href="#aab77f54a037658ca9b2bf9cc8a1fadf1">&#9670;&nbsp;</a></span>m_InputToForgetWeights</h2>
758
759<div class="memitem">
760<div class="memproto">
761 <table class="memname">
762 <tr>
763 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToForgetWeights</td>
764 </tr>
765 </table>
766</div><div class="memdoc">
767
768<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00590">590</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
769
770<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
771
772</div>
773</div>
774<a id="ab160eba2493d5fe52185c0986dcb190c"></a>
775<h2 class="memtitle"><span class="permalink"><a href="#ab160eba2493d5fe52185c0986dcb190c">&#9670;&nbsp;</a></span>m_InputToInputWeights</h2>
776
777<div class="memitem">
778<div class="memproto">
779 <table class="memname">
780 <tr>
781 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToInputWeights</td>
782 </tr>
783 </table>
784</div><div class="memdoc">
785
786<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00589">589</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
787
788<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
789
790</div>
791</div>
792<a id="a17ba1c8bcc71a55a95b2a3913f8cb203"></a>
793<h2 class="memtitle"><span class="permalink"><a href="#a17ba1c8bcc71a55a95b2a3913f8cb203">&#9670;&nbsp;</a></span>m_InputToOutputWeights</h2>
794
795<div class="memitem">
796<div class="memproto">
797 <table class="memname">
798 <tr>
799 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToOutputWeights</td>
800 </tr>
801 </table>
802</div><div class="memdoc">
803
804<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00592">592</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
805
806<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
807
808</div>
809</div>
810<a id="a5ff4158b1b363b898d0da04c42d37ce0"></a>
811<h2 class="memtitle"><span class="permalink"><a href="#a5ff4158b1b363b898d0da04c42d37ce0">&#9670;&nbsp;</a></span>m_OutputGateBias</h2>
812
813<div class="memitem">
814<div class="memproto">
815 <table class="memname">
816 <tr>
817 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_OutputGateBias</td>
818 </tr>
819 </table>
820</div><div class="memdoc">
821
822<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00603">603</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
823
824<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
825
826</div>
827</div>
828<a id="a0e0f66bd03c88f3d2dc666f581d3cf12"></a>
829<h2 class="memtitle"><span class="permalink"><a href="#a0e0f66bd03c88f3d2dc666f581d3cf12">&#9670;&nbsp;</a></span>m_OutputLayerNormWeights</h2>
830
831<div class="memitem">
832<div class="memproto">
833 <table class="memname">
834 <tr>
835 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_OutputLayerNormWeights</td>
836 </tr>
837 </table>
838</div><div class="memdoc">
839
840<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00609">609</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
841
842<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
843
844</div>
845</div>
846<a id="ac668b31de6fb0f19d4c793d5ed3c3316"></a>
847<h2 class="memtitle"><span class="permalink"><a href="#ac668b31de6fb0f19d4c793d5ed3c3316">&#9670;&nbsp;</a></span>m_ProjectionBias</h2>
848
849<div class="memitem">
850<div class="memproto">
851 <table class="memname">
852 <tr>
853 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ProjectionBias</td>
854 </tr>
855 </table>
856</div><div class="memdoc">
857
858<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00605">605</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
859
860<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
861
862</div>
863</div>
864<a id="a3ead2ef8da00b2709d561d85996fc513"></a>
865<h2 class="memtitle"><span class="permalink"><a href="#a3ead2ef8da00b2709d561d85996fc513">&#9670;&nbsp;</a></span>m_ProjectionWeights</h2>
866
867<div class="memitem">
868<div class="memproto">
869 <table class="memname">
870 <tr>
871 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ProjectionWeights</td>
872 </tr>
873 </table>
874</div><div class="memdoc">
875
876<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00604">604</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
877
878<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
879
880</div>
881</div>
882<a id="ac18c8b8b2039267d8282e91b4162d8aa"></a>
883<h2 class="memtitle"><span class="permalink"><a href="#ac18c8b8b2039267d8282e91b4162d8aa">&#9670;&nbsp;</a></span>m_RecurrentToCellWeights</h2>
884
885<div class="memitem">
886<div class="memproto">
887 <table class="memname">
888 <tr>
889 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToCellWeights</td>
890 </tr>
891 </table>
892</div><div class="memdoc">
893
894<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00595">595</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
895
896<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
897
898</div>
899</div>
900<a id="adf8571dd1867ee91082bd005f94f2610"></a>
901<h2 class="memtitle"><span class="permalink"><a href="#adf8571dd1867ee91082bd005f94f2610">&#9670;&nbsp;</a></span>m_RecurrentToForgetWeights</h2>
902
903<div class="memitem">
904<div class="memproto">
905 <table class="memname">
906 <tr>
907 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToForgetWeights</td>
908 </tr>
909 </table>
910</div><div class="memdoc">
911
912<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00594">594</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
913
914<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
915
916</div>
917</div>
918<a id="a299587d4f3fca029492700f3e2585bd8"></a>
919<h2 class="memtitle"><span class="permalink"><a href="#a299587d4f3fca029492700f3e2585bd8">&#9670;&nbsp;</a></span>m_RecurrentToInputWeights</h2>
920
921<div class="memitem">
922<div class="memproto">
923 <table class="memname">
924 <tr>
925 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToInputWeights</td>
926 </tr>
927 </table>
928</div><div class="memdoc">
929
930<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00593">593</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
931
932<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
933
934</div>
935</div>
936<a id="a4c27716f61bb68e8ea0bd4e8389ba01a"></a>
937<h2 class="memtitle"><span class="permalink"><a href="#a4c27716f61bb68e8ea0bd4e8389ba01a">&#9670;&nbsp;</a></span>m_RecurrentToOutputWeights</h2>
938
939<div class="memitem">
940<div class="memproto">
941 <table class="memname">
942 <tr>
943 <td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToOutputWeights</td>
944 </tr>
945 </table>
946</div><div class="memdoc">
947
948<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.html#l00596">596</a> of file <a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>.</p>
949
950<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l03148">QLstmQueueDescriptor::Validate()</a>.</p>
951
952</div>
953</div>
954<hr/>The documentation for this struct was generated from the following files:<ul>
955<li>include/armnn/backends/<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a></li>
956<li>src/backends/backendsCommon/<a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a></li>
957</ul>
958</div><!-- contents -->
959</div><!-- doc-content -->
960<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_a6c9de81fc65b3c4924cab11907075a17"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#a6c9de81fc65b3c4924cab11907075a17">armnn::QLstmDescriptor::m_ProjectionEnabled</a></div><div class="ttdeci">bool m_ProjectionEnabled</div><div class="ttdoc">Enable/disable the projection layer.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01422">Descriptors.hpp:1422</a></div></div>
961<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_aab77f54a037658ca9b2bf9cc8a1fadf1"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#aab77f54a037658ca9b2bf9cc8a1fadf1">armnn::QLstmQueueDescriptor::m_InputToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00590">WorkloadData.hpp:590</a></div></div>
962<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a1dbad32cad5c0437e1272f59fedf52ea"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a1dbad32cad5c0437e1272f59fedf52ea">armnn::QLstmQueueDescriptor::m_InputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00606">WorkloadData.hpp:606</a></div></div>
963<div class="ttc" id="aclassarmnn_1_1_const_tensor_handle_html_a66e8f43a5b42b500871ed96e15419567"><div class="ttname"><a href="classarmnn_1_1_const_tensor_handle.html#a66e8f43a5b42b500871ed96e15419567">armnn::ConstTensorHandle::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo &amp; GetTensorInfo() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_handle_8hpp_source.html#l00040">TensorHandle.hpp:40</a></div></div>
964<div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a></div><div class="ttdeci">@ QSymmS8</div></div>
965<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_ab160eba2493d5fe52185c0986dcb190c"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#ab160eba2493d5fe52185c0986dcb190c">armnn::QLstmQueueDescriptor::m_InputToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00589">WorkloadData.hpp:589</a></div></div>
966<div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a></div><div class="ttdeci">@ QSymmS16</div></div>
967<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a3ead2ef8da00b2709d561d85996fc513"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a3ead2ef8da00b2709d561d85996fc513">armnn::QLstmQueueDescriptor::m_ProjectionWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00604">WorkloadData.hpp:604</a></div></div>
968<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_ad9442e26aa79f896da5f404ab825a9c8"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#ad9442e26aa79f896da5f404ab825a9c8">armnn::QLstmQueueDescriptor::m_ForgetLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00607">WorkloadData.hpp:607</a></div></div>
969<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a4c27716f61bb68e8ea0bd4e8389ba01a"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a4c27716f61bb68e8ea0bd4e8389ba01a">armnn::QLstmQueueDescriptor::m_RecurrentToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00596">WorkloadData.hpp:596</a></div></div>
970<div class="ttc" id="astructarmnn_1_1_workload_info_html_a67b178f8a836bc1e52b8de109760adfd"><div class="ttname"><a href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">armnn::WorkloadInfo::m_OutputTensorInfos</a></div><div class="ttdeci">std::vector&lt; TensorInfo &gt; m_OutputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="_workload_info_8hpp_source.html#l00019">WorkloadInfo.hpp:19</a></div></div>
971<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_aa09f7bdb9fd0d06b6386e412a4e72dd6"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#aa09f7bdb9fd0d06b6386e412a4e72dd6">armnn::QLstmQueueDescriptor::m_CellToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00599">WorkloadData.hpp:599</a></div></div>
972<div class="ttc" id="astructarmnn_1_1_queue_descriptor_with_parameters_html_aad91b9bbf7aa365d304febe79a3d1333"><div class="ttname"><a href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">armnn::QueueDescriptorWithParameters&lt; QLstmDescriptor &gt;::m_Parameters</a></div><div class="ttdeci">QLstmDescriptor m_Parameters</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00066">WorkloadData.hpp:66</a></div></div>
973<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a20c10fcb26657477377d07b7b1e13120"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">armnn::QLstmQueueDescriptor::m_CellToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00598">WorkloadData.hpp:598</a></div></div>
974<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a0e0f66bd03c88f3d2dc666f581d3cf12"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a0e0f66bd03c88f3d2dc666f581d3cf12">armnn::QLstmQueueDescriptor::m_OutputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00609">WorkloadData.hpp:609</a></div></div>
975<div class="ttc" id="aclassarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
976<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a44eb7524badcca9b2073359e3814c98b"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a44eb7524badcca9b2073359e3814c98b">armnn::QLstmQueueDescriptor::m_InputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_InputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00600">WorkloadData.hpp:600</a></div></div>
977<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a5ff4158b1b363b898d0da04c42d37ce0"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a5ff4158b1b363b898d0da04c42d37ce0">armnn::QLstmQueueDescriptor::m_OutputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00603">WorkloadData.hpp:603</a></div></div>
978<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a29fa293fffbf9c6f00cd75db1dc0a52a"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a29fa293fffbf9c6f00cd75db1dc0a52a">armnn::QLstmQueueDescriptor::m_ForgetGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00601">WorkloadData.hpp:601</a></div></div>
979<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a299587d4f3fca029492700f3e2585bd8"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a299587d4f3fca029492700f3e2585bd8">armnn::QLstmQueueDescriptor::m_RecurrentToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00593">WorkloadData.hpp:593</a></div></div>
980<div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a></div><div class="ttdeci">@ Signed32</div></div>
981<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_adf8571dd1867ee91082bd005f94f2610"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#adf8571dd1867ee91082bd005f94f2610">armnn::QLstmQueueDescriptor::m_RecurrentToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00594">WorkloadData.hpp:594</a></div></div>
982<div class="ttc" id="anamespacearmnn_html_ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d"><div class="ttname"><a href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::DataType::QAsymmS8</a></div><div class="ttdeci">@ QAsymmS8</div></div>
983<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a17ba1c8bcc71a55a95b2a3913f8cb203"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a17ba1c8bcc71a55a95b2a3913f8cb203">armnn::QLstmQueueDescriptor::m_InputToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00592">WorkloadData.hpp:592</a></div></div>
984<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_a4556cbd764d4848d8ad0637a9eed580d"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#a4556cbd764d4848d8ad0637a9eed580d">armnn::QLstmDescriptor::m_HiddenStateZeroPoint</a></div><div class="ttdeci">int32_t m_HiddenStateZeroPoint</div><div class="ttdoc">Hidden State zero point.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01434">Descriptors.hpp:1434</a></div></div>
985<div class="ttc" id="astructarmnn_1_1_workload_info_html_ac97905bfa0daab357b91df1347600309"><div class="ttname"><a href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">armnn::WorkloadInfo::m_InputTensorInfos</a></div><div class="ttdeci">std::vector&lt; TensorInfo &gt; m_InputTensorInfos</div><div class="ttdef"><b>Definition:</b> <a href="_workload_info_8hpp_source.html#l00018">WorkloadInfo.hpp:18</a></div></div>
986<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_ad474e5c51a0b194ef32e812b86c0cbdb"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#ad474e5c51a0b194ef32e812b86c0cbdb">armnn::QLstmDescriptor::m_CifgEnabled</a></div><div class="ttdeci">bool m_CifgEnabled</div><div class="ttdoc">Enable/disable CIFG (coupled input &amp; forget gate).</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01418">Descriptors.hpp:1418</a></div></div>
987<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_af8f724af7210b52529216feefa993c98"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#af8f724af7210b52529216feefa993c98">armnn::QLstmDescriptor::m_HiddenStateScale</a></div><div class="ttdeci">float m_HiddenStateScale</div><div class="ttdoc">Hidden State quantization scale.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01436">Descriptors.hpp:1436</a></div></div>
988<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_ac668b31de6fb0f19d4c793d5ed3c3316"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">armnn::QLstmQueueDescriptor::m_ProjectionBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00605">WorkloadData.hpp:605</a></div></div>
989<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a951b7c90b862138071a298065f16be61"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a951b7c90b862138071a298065f16be61">armnn::QLstmQueueDescriptor::m_CellToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00597">WorkloadData.hpp:597</a></div></div>
990<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_a4a8ec49f130084445d44297549254780"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#a4a8ec49f130084445d44297549254780">armnn::QLstmDescriptor::m_LayerNormEnabled</a></div><div class="ttdeci">bool m_LayerNormEnabled</div><div class="ttdoc">Enable/disable layer normalization.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01424">Descriptors.hpp:1424</a></div></div>
991<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a6e9593869b82984de198fed27f72cdcf"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a6e9593869b82984de198fed27f72cdcf">armnn::QLstmQueueDescriptor::m_CellBias</a></div><div class="ttdeci">const ConstTensorHandle * m_CellBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00602">WorkloadData.hpp:602</a></div></div>
992<div class="ttc" id="astructarmnn_1_1_queue_descriptor_html_a8a30194ce14c088a2625ccc8c3e9d155"><div class="ttname"><a href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">armnn::QueueDescriptor::ValidateTensorNumDimNumElem</a></div><div class="ttdeci">void ValidateTensorNumDimNumElem(const TensorInfo &amp;tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &amp;tensorName) const</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8cpp_source.html#l00436">WorkloadData.cpp:436</a></div></div>
993<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_a841439e3b8dc157a7368b19c9ecb7d03"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#a841439e3b8dc157a7368b19c9ecb7d03">armnn::QLstmQueueDescriptor::m_InputToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00591">WorkloadData.hpp:591</a></div></div>
994<div class="ttc" id="astructarmnn_1_1_q_lstm_descriptor_html_a2837b4396f20c956952d1a7286cab5f8"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.html#a2837b4396f20c956952d1a7286cab5f8">armnn::QLstmDescriptor::m_PeepholeEnabled</a></div><div class="ttdeci">bool m_PeepholeEnabled</div><div class="ttdoc">Enable/disable peephole.</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.html#l01420">Descriptors.hpp:1420</a></div></div>
995<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_aeef6f1ac3efad8ec8b0a7118652b64c9"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#aeef6f1ac3efad8ec8b0a7118652b64c9">armnn::QLstmQueueDescriptor::m_CellLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00608">WorkloadData.hpp:608</a></div></div>
996<div class="ttc" id="astructarmnn_1_1_q_lstm_queue_descriptor_html_ac18c8b8b2039267d8282e91b4162d8aa"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac18c8b8b2039267d8282e91b4162d8aa">armnn::QLstmQueueDescriptor::m_RecurrentToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.html#l00595">WorkloadData.hpp:595</a></div></div>
997<!-- start footer part -->
998<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
999 <ul>
1000 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html">QLstmQueueDescriptor</a></li>
1001 <li class="footer">Generated on Thu May 16 2024 09:31:58 for Arm NN by
1002 <a href="http://www.doxygen.org/index.html">
1003 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
1004 </ul>
1005</div>
1006</body>
1007</html>