blob: e831200d9c390b6a6bf2478aeaeaacdaf09aa79e [file] [log] [blame]
<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: QLstmQueueDescriptor Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
<td id="projectalign" style="padding-left: 0.9em;">
<div id="projectname">
&#160;<span id="projectnumber">24.02</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structarmnn_1_1_q_lstm_queue_descriptor.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structarmnn_1_1_q_lstm_queue_descriptor-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">QLstmQueueDescriptor Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for QLstmQueueDescriptor:</div>
<div class="dyncontent">
<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>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for QLstmQueueDescriptor:</div>
<div class="dyncontent">
<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>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<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>
<tr class="separator:ae632fa69e135c7871fcecf4658a0a634"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a041e495449e22774a34d92b0904c10bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:aceed736aeebb38dea25ee734a6bacba5 inherit pub_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a4cb2ebdad75dcaac215c8a1a3d62f315 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a089f647d882d65f657d7984e5f505f7c inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a8a30194ce14c088a2625ccc8c3e9d155 inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a765d2cee4ccce5b9467e0c2b6d25b84a inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<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>
<tr class="separator:a0428f0a7927f8c29264d9c9a287840da inherit pub_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<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>
<tr class="separator:ab160eba2493d5fe52185c0986dcb190c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aab77f54a037658ca9b2bf9cc8a1fadf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a841439e3b8dc157a7368b19c9ecb7d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a17ba1c8bcc71a55a95b2a3913f8cb203"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a299587d4f3fca029492700f3e2585bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:adf8571dd1867ee91082bd005f94f2610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ac18c8b8b2039267d8282e91b4162d8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a4c27716f61bb68e8ea0bd4e8389ba01a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a951b7c90b862138071a298065f16be61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a20c10fcb26657477377d07b7b1e13120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aa09f7bdb9fd0d06b6386e412a4e72dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a44eb7524badcca9b2073359e3814c98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a29fa293fffbf9c6f00cd75db1dc0a52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a6e9593869b82984de198fed27f72cdcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a5ff4158b1b363b898d0da04c42d37ce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a3ead2ef8da00b2709d561d85996fc513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ac668b31de6fb0f19d4c793d5ed3c3316"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a1dbad32cad5c0437e1272f59fedf52ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ad9442e26aa79f896da5f404ab825a9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aeef6f1ac3efad8ec8b0a7118652b64c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a0e0f66bd03c88f3d2dc666f581d3cf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:a4b50e46a6810018f3edecfb68b2a76b3 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a2f2e6134cabedfc58aa53fe38a2b8a67 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a9ef8ddbeee4b869e4c68eb2ed278b8d9 inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<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>
<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>
<tr class="separator:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<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>
<tr class="separator:ab088ef357662bcea45cbd49674ad0ff7 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<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>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae632fa69e135c7871fcecf4658a0a634"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae632fa69e135c7871fcecf4658a0a634">&#9670;&nbsp;</a></span>QLstmQueueDescriptor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.html">QLstmQueueDescriptor</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a041e495449e22774a34d92b0904c10bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a041e495449e22774a34d92b0904c10bf">&#9670;&nbsp;</a></span>Validate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Validate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structarmnn_1_1_workload_info.html">WorkloadInfo</a> &amp;&#160;</td>
<td class="paramname"><em>workloadInfo</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_workload_data_8cpp_source.html#l03146">3146</a> of file <a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;{</div>
<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160; <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">&quot;QLstmQueueDescriptor&quot;</span>};</div>
<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160; </div>
<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160; <span class="comment">// Validate number of inputs/outputs</span></div>
<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160; ValidateNumInputs(workloadInfo, descriptorName, 3);</div>
<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160; ValidateNumOutputs(workloadInfo, descriptorName, 3);</div>
<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160; </div>
<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160; <span class="comment">// Input/output tensor info</span></div>
<div class="line"><a name="l03155"></a><span class="lineno"> 3155</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>
<div class="line"><a name="l03156"></a><span class="lineno"> 3156</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>
<div class="line"><a name="l03157"></a><span class="lineno"> 3157</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>
<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160; </div>
<div class="line"><a name="l03159"></a><span class="lineno"> 3159</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>
<div class="line"><a name="l03160"></a><span class="lineno"> 3160</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>
<div class="line"><a name="l03161"></a><span class="lineno"> 3161</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>
<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160; </div>
<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160; <span class="comment">// Supported types for various tensors in QLSTM</span></div>
<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160; std::vector&lt;DataType&gt; inputOutputSupportedTypes =</div>
<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160; {</div>
<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a></div>
<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160; };</div>
<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160; </div>
<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160; std::vector&lt;DataType&gt; cellStateSupportedTypes =</div>
<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160; {</div>
<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div>
<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160; };</div>
<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160; </div>
<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160; std::vector&lt;DataType&gt; weightsSupportedTypes =</div>
<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160; {</div>
<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a></div>
<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160; };</div>
<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160; </div>
<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160; std::vector&lt;DataType&gt; layerNormPeepholeWeightsSupportedTypes =</div>
<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160; {</div>
<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div>
<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160; };</div>
<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160; </div>
<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160; std::vector&lt;DataType&gt; biasSupportedTypes =</div>
<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160; {</div>
<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160; <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div>
<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160; };</div>
<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160; </div>
<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160; <span class="comment">// Validate types of input/output tensors</span></div>
<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160; ValidateDataTypes(inputInfo, inputOutputSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160; ValidateDataTypes(outputStateInInfo, inputOutputSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; ValidateDataTypes(cellStateInInfo, cellStateSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160; </div>
<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160; ValidateDataTypes(outputStateOutInfo, inputOutputSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160; ValidateDataTypes(cellStateOutInfo, cellStateSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160; ValidateDataTypes(outputInfo, inputOutputSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160; </div>
<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160; <span class="comment">// Validate matching types of input/output tensors</span></div>
<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160; ValidateTensorDataTypesMatch(inputInfo, outputStateInInfo, descriptorName, <span class="stringliteral">&quot;input&quot;</span>, <span class="stringliteral">&quot;outputStateIn&quot;</span>);</div>
<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160; ValidateTensorDataTypesMatch(outputStateInInfo, outputStateOutInfo, descriptorName,</div>
<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; <span class="stringliteral">&quot;outputStateIn&quot;</span>, <span class="stringliteral">&quot;outputStateOut&quot;</span>);</div>
<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160; ValidateTensorDataTypesMatch(cellStateInInfo, cellStateOutInfo, descriptorName, <span class="stringliteral">&quot;cellStateIn&quot;</span>, <span class="stringliteral">&quot;cellStateOut&quot;</span>);</div>
<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160; </div>
<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160; <span class="comment">// Infer number of batches, number of units, input size and output size from tensor dimensions</span></div>
<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160; <span class="keyword">const</span> uint32_t numBatches = inputInfo.GetShape()[0];</div>
<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160; <span class="keyword">const</span> uint32_t inputSize = inputInfo.GetShape()[1];</div>
<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160; <span class="keyword">const</span> uint32_t outputSize = outputStateInInfo.GetShape()[1];</div>
<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160; <span class="keyword">const</span> uint32_t numUnits = cellStateInInfo.GetShape()[1];</div>
<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; </div>
<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for input/output tensors</span></div>
<div class="line"><a name="l03211"></a><span class="lineno"> 3211</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>
<div class="line"><a name="l03212"></a><span class="lineno"> 3212</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>
<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>(cellStateInInfo, 2, (numBatches * numUnits), descriptorName + <span class="stringliteral">&quot; cellStateIn&quot;</span>);</div>
<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160; </div>
<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>(outputStateOutInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">&quot; outputStateOut&quot;</span>);</div>
<div class="line"><a name="l03216"></a><span class="lineno"> 3216</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>
<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>(outputInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">&quot; output&quot;</span>);</div>
<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160; </div>
<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for MANDATORY weight tensors</span></div>
<div class="line"><a name="l03220"></a><span class="lineno"> 3220</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>
<div class="line"><a name="l03221"></a><span class="lineno"> 3221</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>
<div class="line"><a name="l03222"></a><span class="lineno"> 3222</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>
<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160; </div>
<div class="line"><a name="l03224"></a><span class="lineno"> 3224</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>
<div class="line"><a name="l03225"></a><span class="lineno"> 3225</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>
<div class="line"><a name="l03226"></a><span class="lineno"> 3226</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>
<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160; </div>
<div class="line"><a name="l03228"></a><span class="lineno"> 3228</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>
<div class="line"><a name="l03229"></a><span class="lineno"> 3229</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>
<div class="line"><a name="l03230"></a><span class="lineno"> 3230</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>
<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160; </div>
<div class="line"><a name="l03232"></a><span class="lineno"> 3232</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>
<div class="line"><a name="l03233"></a><span class="lineno"> 3233</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>
<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToForgetWeightsInfo, 2, (numUnits * outputSize),</div>
<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160; <span class="stringliteral">&quot; RecurrentToForgetWeights&quot;</span>);</div>
<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160; </div>
<div class="line"><a name="l03237"></a><span class="lineno"> 3237</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>
<div class="line"><a name="l03238"></a><span class="lineno"> 3238</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>
<div class="line"><a name="l03239"></a><span class="lineno"> 3239</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>
<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160; </div>
<div class="line"><a name="l03241"></a><span class="lineno"> 3241</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>
<div class="line"><a name="l03242"></a><span class="lineno"> 3242</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>
<div class="line"><a name="l03243"></a><span class="lineno"> 3243</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>
<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160; </div>
<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160; <span class="comment">// Validate data types for MANDATORY weights tensors (all should match each other)</span></div>
<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160; ValidateDataTypes(inputToForgetWeightsInfo, weightsSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160; </div>
<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToCellWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToCellWeights&quot;</span>);</div>
<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToOutputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToOutputWeights&quot;</span>);</div>
<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160; </div>
<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToForgetWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToForgeteights&quot;</span>);</div>
<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToCellWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToCellWeights&quot;</span>);</div>
<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToOutputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToOutputWeights&quot;</span>);</div>
<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160; </div>
<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160; <span class="comment">// Validate number of dimensions and number of elements for MANDATORY bias tensors</span></div>
<div class="line"><a name="l03261"></a><span class="lineno"> 3261</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>
<div class="line"><a name="l03262"></a><span class="lineno"> 3262</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>
<div class="line"><a name="l03263"></a><span class="lineno"> 3263</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>
<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; </div>
<div class="line"><a name="l03265"></a><span class="lineno"> 3265</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>
<div class="line"><a name="l03266"></a><span class="lineno"> 3266</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>
<div class="line"><a name="l03267"></a><span class="lineno"> 3267</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>
<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160; </div>
<div class="line"><a name="l03269"></a><span class="lineno"> 3269</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>
<div class="line"><a name="l03270"></a><span class="lineno"> 3270</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>
<div class="line"><a name="l03271"></a><span class="lineno"> 3271</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>
<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160; </div>
<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160; <span class="comment">// Validate data types for MANDATORY bias tensors</span></div>
<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160; ValidateDataTypes(forgetGateBiasInfo, biasSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160; </div>
<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, cellBiasInfo, descriptorName,</div>
<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;cellBias&quot;</span>);</div>
<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, outputGateBiasInfo, descriptorName,</div>
<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;outputGateBias&quot;</span>);</div>
<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160; </div>
<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160; <span class="comment">// Validate OPTIONAL params: CIFG (inputToInputWeights, recurrentToInputWeights, inputGateBias)</span></div>
<div class="line"><a name="l03282"></a><span class="lineno"> 3282</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>
<div class="line"><a name="l03283"></a><span class="lineno"> 3283</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>
<div class="line"><a name="l03284"></a><span class="lineno"> 3284</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>
<div class="line"><a name="l03285"></a><span class="lineno"> 3285</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>
<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160; </div>
<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160; <span class="keywordflow">if</span> (!allCifgParamsPresentOrNot)</div>
<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160; {</div>
<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160; <span class="stringliteral">&quot;: InputToInputWeights, RecurrentToInputWeights and InputGateBias must either all be present &quot;</span></div>
<div class="line"><a name="l03291"></a><span class="lineno"> 3291</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>
<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160; <span class="stringliteral">&quot;set appropriately.&quot;</span>);</div>
<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; }</div>
<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160; </div>
<div class="line"><a name="l03295"></a><span class="lineno"> 3295</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>
<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160; {</div>
<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160; <span class="comment">// Validate number of dimensions and number of elements</span></div>
<div class="line"><a name="l03298"></a><span class="lineno"> 3298</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>
<div class="line"><a name="l03299"></a><span class="lineno"> 3299</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>
<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; </div>
<div class="line"><a name="l03301"></a><span class="lineno"> 3301</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>
<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor.html#a8a30194ce14c088a2625ccc8c3e9d155">ValidateTensorNumDimNumElem</a>(recurrentToInputWeightsInfo, 2, (numUnits * outputSize),</div>
<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160; <span class="stringliteral">&quot; RecurrentToInputWeights&quot;</span>);</div>
<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160; </div>
<div class="line"><a name="l03305"></a><span class="lineno"> 3305</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>
<div class="line"><a name="l03306"></a><span class="lineno"> 3306</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>
<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160; </div>
<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160; <span class="comment">// Validate data types</span></div>
<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToInputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;inputToInputWeights&quot;</span>);</div>
<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160; ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToInputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160; <span class="stringliteral">&quot;inputToForgetWeights&quot;</span>, <span class="stringliteral">&quot;recurrentToInputWeights&quot;</span>);</div>
<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; ValidateTensorDataTypesMatch(forgetGateBiasInfo, inputGateBiasInfo, descriptorName,</div>
<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160; <span class="stringliteral">&quot;forgetGateBias&quot;</span>, <span class="stringliteral">&quot;inputGateBias&quot;</span>);</div>
<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160; }</div>
<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160; </div>
<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; <span class="comment">// Validate OPTIONAL params: Peephole (cellToInputWeights, cellToForgetWeights, cellToOutputWeights)</span></div>
<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160; <span class="keywordtype">bool</span> allPeepholeWeightsPresentOrNot =</div>
<div class="line"><a name="l03319"></a><span class="lineno"> 3319</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>
<div class="line"><a name="l03320"></a><span class="lineno"> 3320</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>
<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> &amp;&amp; !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></div>
<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>
<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160; </div>
<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160; <span class="keywordflow">if</span> (!allPeepholeWeightsPresentOrNot)</div>
<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160; {</div>
<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160; <span class="stringliteral">&quot;: CellToInputWeights, CellToForgetWeights and CellToOutputWeights should all be present (Peephole &quot;</span></div>
<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; <span class="stringliteral">&quot;enabled) or not be present at all (Peephole disabled). CellToInputWeights should only be present &quot;</span></div>
<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; <span class="stringliteral">&quot;when Peephole is enabled and CIFG is disabled. m_Parameters.m_PeepholeEnabled should be set &quot;</span></div>
<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160; <span class="stringliteral">&quot;appropriately.&quot;</span>);</div>
<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160; }</div>
<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; </div>
<div class="line"><a name="l03333"></a><span class="lineno"> 3333</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>
<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160; {</div>
<div class="line"><a name="l03335"></a><span class="lineno"> 3335</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>
<div class="line"><a name="l03336"></a><span class="lineno"> 3336</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>
<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160; ValidateDataTypes(cellToForgetWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160; </div>
<div class="line"><a name="l03339"></a><span class="lineno"> 3339</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>
<div class="line"><a name="l03340"></a><span class="lineno"> 3340</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>
<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToOutputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; <span class="stringliteral">&quot;cellToForgetWeight&quot;</span>, <span class="stringliteral">&quot;cellToOutputWeights&quot;</span>);</div>
<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; </div>
<div class="line"><a name="l03344"></a><span class="lineno"> 3344</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>
<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160; {</div>
<div class="line"><a name="l03346"></a><span class="lineno"> 3346</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>
<div class="line"><a name="l03347"></a><span class="lineno"> 3347</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>
<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160; ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToInputWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160; <span class="stringliteral">&quot;cellToForgetWeights&quot;</span>, <span class="stringliteral">&quot;cellToInputWeights&quot;</span>);</div>
<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160; }</div>
<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160; }</div>
<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160; </div>
<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160; <span class="comment">// Validate OPTIONAL params: Layer Norm Weights</span></div>
<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160; <span class="keywordtype">bool</span> allLayerNormWeightsPresentOrNot =</div>
<div class="line"><a name="l03355"></a><span class="lineno"> 3355</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>
<div class="line"><a name="l03356"></a><span class="lineno"> 3356</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>
<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> &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>
<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#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>
<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160; </div>
<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160; <span class="keywordflow">if</span> (!allLayerNormWeightsPresentOrNot)</div>
<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160; {</div>
<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160; <span class="stringliteral">&quot;: InputLayerNormWeights, ForgetLayerNormWeights, m_OutputLayerNormWeights &quot;</span></div>
<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160; <span class="stringliteral">&quot;and CellLayerNormWeights should all be present (Layer Norm enabled) or not &quot;</span></div>
<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160; <span class="stringliteral">&quot;be present at all (Layer Norm disabled). InputLayerNormWeights should &quot;</span></div>
<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160; <span class="stringliteral">&quot;only be present when Layer Norm is enabled and CIFG is disabled. &quot;</span></div>
<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160; <span class="stringliteral">&quot;m_Parameters.m_LayerNormEnabled should be set appropriately.&quot;</span>);</div>
<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160; }</div>
<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160; </div>
<div class="line"><a name="l03370"></a><span class="lineno"> 3370</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>
<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160; {</div>
<div class="line"><a name="l03372"></a><span class="lineno"> 3372</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>
<div class="line"><a name="l03373"></a><span class="lineno"> 3373</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>
<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160; ValidateDataTypes(forgetLayerNormWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160; </div>
<div class="line"><a name="l03376"></a><span class="lineno"> 3376</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>
<div class="line"><a name="l03377"></a><span class="lineno"> 3377</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>
<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, cellLayerNormWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;cellLayerNormWeights&quot;</span>);</div>
<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160; </div>
<div class="line"><a name="l03381"></a><span class="lineno"> 3381</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>
<div class="line"><a name="l03382"></a><span class="lineno"> 3382</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>
<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, outputLayerNormWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;outputLayerNormWeights&quot;</span>);</div>
<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160; </div>
<div class="line"><a name="l03386"></a><span class="lineno"> 3386</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>
<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160; {</div>
<div class="line"><a name="l03388"></a><span class="lineno"> 3388</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>
<div class="line"><a name="l03389"></a><span class="lineno"> 3389</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>
<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160; ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, inputLayerNormWeightsInfo, descriptorName,</div>
<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160; <span class="stringliteral">&quot;forgetLayerNormWeights&quot;</span>, <span class="stringliteral">&quot;inputLayerNormWeights&quot;</span>);</div>
<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160; }</div>
<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160; }</div>
<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160; </div>
<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160; <span class="comment">// Validate OPTIONAL params: Projection (projectionWeights, projectionBias)</span></div>
<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160; <span class="keywordtype">bool</span> correctProjectionTensorsPresent =</div>
<div class="line"><a name="l03397"></a><span class="lineno"> 3397</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>
<div class="line"><a name="l03398"></a><span class="lineno"> 3398</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>
<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>
<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160; </div>
<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160; <span class="keywordflow">if</span> (!correctProjectionTensorsPresent)</div>
<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160; {</div>
<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160; <span class="stringliteral">&quot;: If projection is enabled, ProjectionWeights should be present and &quot;</span></div>
<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160; <span class="stringliteral">&quot;ProjectionBias is optional. If projection is disabled, neither &quot;</span></div>
<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160; <span class="stringliteral">&quot;ProjectionWeights nor ProjectionBias should be present.&quot;</span>);</div>
<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160; }</div>
<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160; </div>
<div class="line"><a name="l03409"></a><span class="lineno"> 3409</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>
<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160; {</div>
<div class="line"><a name="l03411"></a><span class="lineno"> 3411</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>
<div class="line"><a name="l03412"></a><span class="lineno"> 3412</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>
<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160; ValidateDataTypes(projectionWeightsInfo, weightsSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160; </div>
<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.html#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>)</div>
<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160; {</div>
<div class="line"><a name="l03417"></a><span class="lineno"> 3417</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>
<div class="line"><a name="l03418"></a><span class="lineno"> 3418</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>
<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160; ValidateDataTypes(projectionBiasInfo, biasSupportedTypes, descriptorName);</div>
<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160; }</div>
<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160; </div>
<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160; }</div>
<div class="line"><a name="l03423"></a><span class="lineno"> 3423</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>
<div class="line"><a name="l03424"></a><span class="lineno"> 3424</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>
<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName +</div>
<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160; <span class="stringliteral">&quot;: If projection is disabled, output quantization info (scale, offset) &quot;</span></div>
<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160; <span class="stringliteral">&quot;should match HiddenStateScale and HiddenStateZeroPoint.&quot;</span>);</div>
<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160; }</div>
<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160; </div>
<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="_tensor_8cpp_source.html#l00478">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#l00435">QueueDescriptor::ValidateTensorNumDimNumElem()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a6e9593869b82984de198fed27f72cdcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e9593869b82984de198fed27f72cdcf">&#9670;&nbsp;</a></span>m_CellBias</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellBias</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="aeef6f1ac3efad8ec8b0a7118652b64c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeef6f1ac3efad8ec8b0a7118652b64c9">&#9670;&nbsp;</a></span>m_CellLayerNormWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellLayerNormWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a20c10fcb26657477377d07b7b1e13120"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20c10fcb26657477377d07b7b1e13120">&#9670;&nbsp;</a></span>m_CellToForgetWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToForgetWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a951b7c90b862138071a298065f16be61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a951b7c90b862138071a298065f16be61">&#9670;&nbsp;</a></span>m_CellToInputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToInputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="aa09f7bdb9fd0d06b6386e412a4e72dd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa09f7bdb9fd0d06b6386e412a4e72dd6">&#9670;&nbsp;</a></span>m_CellToOutputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_CellToOutputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a29fa293fffbf9c6f00cd75db1dc0a52a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29fa293fffbf9c6f00cd75db1dc0a52a">&#9670;&nbsp;</a></span>m_ForgetGateBias</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ForgetGateBias</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="ad9442e26aa79f896da5f404ab825a9c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9442e26aa79f896da5f404ab825a9c8">&#9670;&nbsp;</a></span>m_ForgetLayerNormWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ForgetLayerNormWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a44eb7524badcca9b2073359e3814c98b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44eb7524badcca9b2073359e3814c98b">&#9670;&nbsp;</a></span>m_InputGateBias</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputGateBias</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a1dbad32cad5c0437e1272f59fedf52ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1dbad32cad5c0437e1272f59fedf52ea">&#9670;&nbsp;</a></span>m_InputLayerNormWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputLayerNormWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a841439e3b8dc157a7368b19c9ecb7d03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a841439e3b8dc157a7368b19c9ecb7d03">&#9670;&nbsp;</a></span>m_InputToCellWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToCellWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="aab77f54a037658ca9b2bf9cc8a1fadf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab77f54a037658ca9b2bf9cc8a1fadf1">&#9670;&nbsp;</a></span>m_InputToForgetWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToForgetWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="ab160eba2493d5fe52185c0986dcb190c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab160eba2493d5fe52185c0986dcb190c">&#9670;&nbsp;</a></span>m_InputToInputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToInputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a17ba1c8bcc71a55a95b2a3913f8cb203"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17ba1c8bcc71a55a95b2a3913f8cb203">&#9670;&nbsp;</a></span>m_InputToOutputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_InputToOutputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a5ff4158b1b363b898d0da04c42d37ce0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ff4158b1b363b898d0da04c42d37ce0">&#9670;&nbsp;</a></span>m_OutputGateBias</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_OutputGateBias</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a0e0f66bd03c88f3d2dc666f581d3cf12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e0f66bd03c88f3d2dc666f581d3cf12">&#9670;&nbsp;</a></span>m_OutputLayerNormWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_OutputLayerNormWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="ac668b31de6fb0f19d4c793d5ed3c3316"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac668b31de6fb0f19d4c793d5ed3c3316">&#9670;&nbsp;</a></span>m_ProjectionBias</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ProjectionBias</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a3ead2ef8da00b2709d561d85996fc513"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ead2ef8da00b2709d561d85996fc513">&#9670;&nbsp;</a></span>m_ProjectionWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_ProjectionWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="ac18c8b8b2039267d8282e91b4162d8aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac18c8b8b2039267d8282e91b4162d8aa">&#9670;&nbsp;</a></span>m_RecurrentToCellWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToCellWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="adf8571dd1867ee91082bd005f94f2610"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf8571dd1867ee91082bd005f94f2610">&#9670;&nbsp;</a></span>m_RecurrentToForgetWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToForgetWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a299587d4f3fca029492700f3e2585bd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a299587d4f3fca029492700f3e2585bd8">&#9670;&nbsp;</a></span>m_RecurrentToInputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToInputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<a id="a4c27716f61bb68e8ea0bd4e8389ba01a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c27716f61bb68e8ea0bd4e8389ba01a">&#9670;&nbsp;</a></span>m_RecurrentToOutputWeights</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>* m_RecurrentToOutputWeights</td>
</tr>
</table>
</div><div class="memdoc">
<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>
<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#l03146">QLstmQueueDescriptor::Validate()</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following files:<ul>
<li>include/armnn/backends/<a class="el" href="_workload_data_8hpp_source.html">WorkloadData.hpp</a></li>
<li>src/backends/backendsCommon/<a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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#l00435">WorkloadData.cpp:435</a></div></div>
<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>
<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>
<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>
<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>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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>
<li class="footer">Generated on Wed Feb 14 2024 16:36:24 for Arm NN by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>