aboutsummaryrefslogtreecommitdiff
path: root/21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml
diff options
context:
space:
mode:
authorNikhil Raj <nikhil.raj@arm.com>2021-11-17 13:16:45 +0000
committerNikhil Raj <nikhil.raj@arm.com>2021-11-17 13:16:45 +0000
commit9aed8fb43441228343b925b42464a55042c47ca0 (patch)
tree4c34534eea1c8e82655ac1f60e3633b9618cc40d /21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml
parentf86be93b7492b381370cae7bf71eca8572a0cbae (diff)
downloadarmnn-9aed8fb43441228343b925b42464a55042c47ca0.tar.gz
IVGCVSW-6040 Update 21.11 Doxygen Documents
Signed-off-by: Nikhil Raj <nikhil.raj@arm.com> Change-Id: Ia36ec98c4bebc27a69103911ea3409cd7db587a5
Diffstat (limited to '21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml')
-rw-r--r--21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml714
1 files changed, 714 insertions, 0 deletions
diff --git a/21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml b/21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml
new file mode 100644
index 0000000000..2b803aee0d
--- /dev/null
+++ b/21.11/structarmnn_1_1_lstm_queue_descriptor.xhtml
@@ -0,0 +1,714 @@
+<!-- Copyright (c) 2020 ARM Limited. -->
+<!-- -->
+<!-- SPDX-License-Identifier: MIT -->
+<!-- -->
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
+<meta name="robots" content="NOINDEX, NOFOLLOW" />
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>ArmNN: LstmQueueDescriptor 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>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</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" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="stylesheet.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: 10rem; margin-top: .5rem; margin-left 10px"/>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">
+ &#160;<span id="projectnumber">21.11</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</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">
+$(document).ready(function(){initNavTree('structarmnn_1_1_lstm_queue_descriptor.xhtml','');});
+</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_lstm_queue_descriptor-members.xhtml">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">LstmQueueDescriptor Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for LstmQueueDescriptor:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="structarmnn_1_1_lstm_queue_descriptor.png" usemap="#LstmQueueDescriptor_map" alt=""/>
+ <map id="LstmQueueDescriptor_map" name="LstmQueueDescriptor_map">
+<area href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml" alt="QueueDescriptorWithParameters&lt; LstmDescriptor &gt;" shape="rect" coords="0,56,305,80"/>
+<area href="structarmnn_1_1_queue_descriptor.xhtml" alt="QueueDescriptor" shape="rect" coords="0,0,305,24"/>
+</map>
+ </div></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:a1f701da89f9eeded946647212e5eebc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1f701da89f9eeded946647212e5eebc9">LstmQueueDescriptor</a> ()</td></tr>
+<tr class="separator:a1f701da89f9eeded946647212e5eebc9"><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_lstm_queue_descriptor.xhtml#a041e495449e22774a34d92b0904c10bf">Validate</a> (const <a class="el" href="structarmnn_1_1_workload_info.xhtml">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"><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.xhtml">QueueDescriptor</a></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.xhtml#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.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">ConstTensorHandle</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#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.xhtml">QueueDescriptorWithParameters&lt; LstmDescriptor &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_lstm_descriptor.xhtml">LstmDescriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#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.xhtml">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.xhtml">ITensorHandle</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml#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.xhtml">ITensorHandle</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml#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.xhtml#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>
+</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.xhtml">QueueDescriptorWithParameters&lt; LstmDescriptor &gt;</a></td></tr>
+<tr class="memitem:a52679b441422256016dc6f5b5e9193d5 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.xhtml#a52679b441422256016dc6f5b5e9193d5">~QueueDescriptorWithParameters</a> ()=default</td></tr>
+<tr class="separator:a52679b441422256016dc6f5b5e9193d5 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2">&#160;</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.xhtml#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.xhtml#a6cbdcaa9cab857077a3810788e2cf489">QueueDescriptorWithParameters</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml">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.xhtml">QueueDescriptorWithParameters</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aa86bd03df9faf133a34e263f16486707">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml">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.xhtml">QueueDescriptor</a></td></tr>
+<tr class="memitem:af67c3785421c91d37fb22132d441f704 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.xhtml#af67c3785421c91d37fb22132d441f704">~QueueDescriptor</a> ()=default</td></tr>
+<tr class="separator:af67c3785421c91d37fb22132d441f704 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2">&#160;</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.xhtml#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.xhtml#a75d3b85e1e50b1dff74ee84a593d089e">QueueDescriptor</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">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.xhtml">QueueDescriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml#a1c928b975a0de05cf2536c721ba6b521">operator=</a> (<a class="el" href="structarmnn_1_1_queue_descriptor.xhtml">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.xhtml#l00415">415</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1f701da89f9eeded946647212e5eebc9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f701da89f9eeded946647212e5eebc9">&#9670;&nbsp;</a></span>LstmQueueDescriptor()</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_lstm_queue_descriptor.xhtml">LstmQueueDescriptor</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.xhtml#l00417">417</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; : <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; , <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a3ead2ef8da00b2709d561d85996fc513"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">armnn::LstmQueueDescriptor::m_ProjectionWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00457">WorkloadData.hpp:457</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_adf8571dd1867ee91082bd005f94f2610"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#adf8571dd1867ee91082bd005f94f2610">armnn::LstmQueueDescriptor::m_RecurrentToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00447">WorkloadData.hpp:447</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a44eb7524badcca9b2073359e3814c98b"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">armnn::LstmQueueDescriptor::m_InputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_InputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00453">WorkloadData.hpp:453</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ac18c8b8b2039267d8282e91b4162d8aa"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac18c8b8b2039267d8282e91b4162d8aa">armnn::LstmQueueDescriptor::m_RecurrentToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00448">WorkloadData.hpp:448</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a6e9593869b82984de198fed27f72cdcf"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a6e9593869b82984de198fed27f72cdcf">armnn::LstmQueueDescriptor::m_CellBias</a></div><div class="ttdeci">const ConstTensorHandle * m_CellBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00455">WorkloadData.hpp:455</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a17ba1c8bcc71a55a95b2a3913f8cb203"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a17ba1c8bcc71a55a95b2a3913f8cb203">armnn::LstmQueueDescriptor::m_InputToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00445">WorkloadData.hpp:445</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a0e0f66bd03c88f3d2dc666f581d3cf12"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">armnn::LstmQueueDescriptor::m_OutputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00462">WorkloadData.hpp:462</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a5ff4158b1b363b898d0da04c42d37ce0"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a5ff4158b1b363b898d0da04c42d37ce0">armnn::LstmQueueDescriptor::m_OutputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00456">WorkloadData.hpp:456</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aeef6f1ac3efad8ec8b0a7118652b64c9"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">armnn::LstmQueueDescriptor::m_CellLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00461">WorkloadData.hpp:461</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aa09f7bdb9fd0d06b6386e412a4e72dd6"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">armnn::LstmQueueDescriptor::m_CellToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00452">WorkloadData.hpp:452</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a841439e3b8dc157a7368b19c9ecb7d03"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a841439e3b8dc157a7368b19c9ecb7d03">armnn::LstmQueueDescriptor::m_InputToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00444">WorkloadData.hpp:444</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aab77f54a037658ca9b2bf9cc8a1fadf1"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aab77f54a037658ca9b2bf9cc8a1fadf1">armnn::LstmQueueDescriptor::m_InputToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00443">WorkloadData.hpp:443</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a299587d4f3fca029492700f3e2585bd8"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">armnn::LstmQueueDescriptor::m_RecurrentToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00446">WorkloadData.hpp:446</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a29fa293fffbf9c6f00cd75db1dc0a52a"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a29fa293fffbf9c6f00cd75db1dc0a52a">armnn::LstmQueueDescriptor::m_ForgetGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00454">WorkloadData.hpp:454</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a20c10fcb26657477377d07b7b1e13120"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">armnn::LstmQueueDescriptor::m_CellToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00451">WorkloadData.hpp:451</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ac668b31de6fb0f19d4c793d5ed3c3316"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">armnn::LstmQueueDescriptor::m_ProjectionBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00458">WorkloadData.hpp:458</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ad9442e26aa79f896da5f404ab825a9c8"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">armnn::LstmQueueDescriptor::m_ForgetLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00460">WorkloadData.hpp:460</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a1dbad32cad5c0437e1272f59fedf52ea"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">armnn::LstmQueueDescriptor::m_InputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00459">WorkloadData.hpp:459</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a951b7c90b862138071a298065f16be61"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">armnn::LstmQueueDescriptor::m_CellToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00450">WorkloadData.hpp:450</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ab160eba2493d5fe52185c0986dcb190c"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">armnn::LstmQueueDescriptor::m_InputToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00442">WorkloadData.hpp:442</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a4c27716f61bb68e8ea0bd4e8389ba01a"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a4c27716f61bb68e8ea0bd4e8389ba01a">armnn::LstmQueueDescriptor::m_RecurrentToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00449">WorkloadData.hpp:449</a></div></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.xhtml">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.xhtml#l01937">1937</a> of file <a class="el" href="_workload_data_8cpp_source.xhtml">WorkloadData.cpp</a>.</p>
+
+<p class="reference">References <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::BFloat16</a>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::Float16</a>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::Float32</a>, <a class="el" href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00018">WorkloadInfo::m_InputTensorInfos</a>, <a class="el" href="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00019">WorkloadInfo::m_OutputTensorInfos</a>, and <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::QSymmS16</a>.</p>
+<div class="fragment"><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;{</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="comment">// ported from android/ml/nn/common/operations/LSTM.cpp CheckInputTensorDimensions()</span></div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">&quot;LstmQueueDescriptor&quot;</span>};</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="comment">// check dimensions of all inputs and outputs</span></div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keywordflow">if</span> (workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size() != 3)</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; {</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Invalid number of inputs.&quot;</span>);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; }</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="keywordflow">if</span> (workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>.size() != 4)</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; {</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Invalid number of outputs.&quot;</span>);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; }</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; std::vector&lt;DataType&gt; supportedTypes =</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; {</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; };</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="comment">// check for supported type of one input and match them with all the other input and output</span></div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; ValidateDataTypes(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0], supportedTypes, descriptorName);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="comment">// type matches all other inputs</span></div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 1u; i &lt; workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size(); ++i)</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; {</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[i],</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; descriptorName,</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="stringliteral">&quot;input_0&quot;</span>,</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; <span class="stringliteral">&quot;input_&quot;</span> + std::to_string(i));</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; }</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="comment">// type matches all other outputs</span></div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keywordflow">for</span> (uint32_t i = 0u; i &lt; workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>.size(); ++i)</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; {</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[i],</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; <span class="stringliteral">&quot;LstmQueueDescriptor&quot;</span>,</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="stringliteral">&quot;input_0&quot;</span>,</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <span class="stringliteral">&quot;output_&quot;</span> + std::to_string(i));</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; }</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; <span class="comment">// Making sure clipping parameters have valid values.</span></div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="comment">// == 0 means no clipping</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; <span class="comment">// &gt; 0 means clipping</span></div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a531a3907ec13d3772370da88030191a5">m_ClippingThresCell</a> &lt; 0.0f)</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; {</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: negative cell clipping threshold is invalid&quot;</span>);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; }</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a86e88bef0df4df96df752b4b8955a3af">m_ClippingThresProj</a> &lt; 0.0f)</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; {</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: negative projection clipping threshold is invalid&quot;</span>);</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; }</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; <span class="comment">// Inferring batch size, number of outputs and number of cells from the inputs.</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <span class="keyword">const</span> uint32_t n_input = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0].GetShape()[1];</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="keyword">const</span> uint32_t n_batch = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0].GetShape()[0];</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;InputToOutputWeights&quot;</span>);</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keyword">const</span> uint32_t n_cell = <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a17ba1c8bcc71a55a95b2a3913f8cb203">m_InputToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a8e8d2fbabcac19f9e12779080ddff54e">GetShape</a>()[0];</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;RecurrentToOutputWeights&quot;</span>);</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keyword">const</span> uint32_t n_output = <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a4c27716f61bb68e8ea0bd4e8389ba01a">m_RecurrentToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a8e8d2fbabcac19f9e12779080ddff54e">GetShape</a>()[1];</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="comment">// input tensor</span></div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0], 2, (n_batch * n_input),</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; descriptorName + <span class="stringliteral">&quot; input_0&quot;</span>);</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; <span class="comment">// outputStateInTensor</span></div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[1], 2, (n_batch * n_output),</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; descriptorName + <span class="stringliteral">&quot; input_1&quot;</span>);</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; <span class="comment">// outputStateInTensor</span></div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[2], 2, (n_batch * n_cell),</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; descriptorName + <span class="stringliteral">&quot; input_2&quot;</span>);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="comment">// scratchBufferTensor</span></div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> scratchBufferSize = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a> ? n_cell * 3 : n_cell * 4;</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0], 2, (n_batch * scratchBufferSize),</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; descriptorName + <span class="stringliteral">&quot; output_0&quot;</span>);</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="comment">// outputStateOutTensor</span></div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[1], 2, (n_batch * n_output),</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; descriptorName + <span class="stringliteral">&quot; output_1&quot;</span>);</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="comment">// cellStateOutTensor</span></div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[2], 2, (n_batch * n_cell),</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; descriptorName + <span class="stringliteral">&quot; output_2&quot;</span>);</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="comment">// outputTensor</span></div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; ValidateTensorNumDimNumElem(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[3], 2, (n_batch * n_output),</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; descriptorName + <span class="stringliteral">&quot; output_3&quot;</span>);</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; <span class="comment">// check that dimensions of inputs/outputs and QueueDescriptor data match with each other</span></div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a> )</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; {</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; (n_cell * n_input), <span class="stringliteral">&quot;InputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; }</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;InputToForgetWeights&quot;</span>);</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aab77f54a037658ca9b2bf9cc8a1fadf1">m_InputToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; (n_cell * n_input), <span class="stringliteral">&quot;InputToForgetWeights&quot;</span>);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;InputToCellWeights&quot;</span>);</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a841439e3b8dc157a7368b19c9ecb7d03">m_InputToCellWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; (n_cell * n_input), <span class="stringliteral">&quot;InputToCellWeights&quot;</span>);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a> )</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; {</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; (n_cell * n_output), <span class="stringliteral">&quot;RecurrentToInputWeights&quot;</span>);</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; }</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;RecurrentToForgetWeights&quot;</span>);</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#adf8571dd1867ee91082bd005f94f2610">m_RecurrentToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; (n_cell * n_output), <span class="stringliteral">&quot;RecurrentToForgetWeights&quot;</span>);</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;RecurrentToCellWeights&quot;</span>);</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac18c8b8b2039267d8282e91b4162d8aa">m_RecurrentToCellWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; (n_cell * n_output), <span class="stringliteral">&quot;RecurrentToCellWeights&quot;</span>);</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="comment">// Make sure the input-gate&#39;s parameters are either both present (regular</span></div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <span class="comment">// LSTM) or not at all (CIFG-LSTM). And CifgEnable is set accordingly.</span></div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <span class="keywordtype">bool</span> cifg_weights_all_or_none = ((<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a> &amp;&amp;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) ||</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; (!<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">m_InputToInputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">m_RecurrentToInputWeights</a> &amp;&amp;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>));</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keywordflow">if</span> (!cifg_weights_all_or_none)</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; {</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Input-Gate&#39;s parameters InputToInputWeights and &quot;</span></div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; <span class="stringliteral">&quot;RecurrentToInputWeights must either both be present (regular LSTM) &quot;</span></div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="stringliteral">&quot;or both not present (CIFG-LSTM). In addition CifgEnable must be set &quot;</span></div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="stringliteral">&quot;accordingly.&quot;</span>);</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; }</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a> )</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; {</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1,</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; n_cell, <span class="stringliteral">&quot;CellToInputWeights&quot;</span>);</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; }</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a> )</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; {</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1,</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; n_cell, <span class="stringliteral">&quot;CellToForgetWeights&quot;</span>);</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; }</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a> )</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; {</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1,</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; n_cell, <span class="stringliteral">&quot;CellToOutputWeights&quot;</span>);</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; }</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <span class="comment">// Making sure the peephole weights are there all or none. And PeepholeEnable is set accordingly.</span></div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <span class="keywordtype">bool</span> peephole_weights_all_or_none =</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; (((<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a> || <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) &amp;&amp; <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; &amp;&amp; <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; || ( !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">m_CellToInputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">m_CellToForgetWeights</a></div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; &amp;&amp; !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">m_CellToOutputWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>));</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; <span class="keywordflow">if</span> (!peephole_weights_all_or_none)</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; {</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Invalid combination of peephole parameters.&quot;</span>);</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; }</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; <span class="comment">// Make sure the input gate bias is present only when not a CIFG-LSTM.</span></div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; {</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>)</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; {</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: InputGateBias is present and CIFG-LSTM is enabled.&quot;</span>);</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; }</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; }</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; {</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>)</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; {</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: If CIFG-LSTM is disabled InputGateBias &quot;</span></div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <span class="stringliteral">&quot;must be present.&quot;</span>);</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; }</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">m_InputGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1,</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; n_cell, <span class="stringliteral">&quot;InputGateBias&quot;</span>);</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; }</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;ForgetGateBias&quot;</span>);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a29fa293fffbf9c6f00cd75db1dc0a52a">m_ForgetGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;ForgetGateBias&quot;</span>);</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;CellBias&quot;</span>);</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a6e9593869b82984de198fed27f72cdcf">m_CellBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;CellBias&quot;</span>);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>, <span class="stringliteral">&quot;Null pointer check&quot;</span>, <span class="stringliteral">&quot;OutputGateBias&quot;</span>);</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a5ff4158b1b363b898d0da04c42d37ce0">m_OutputGateBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;OutputGateBias&quot;</span>);</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a>)</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; {</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 2,</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; (n_cell * n_output), <span class="stringliteral">&quot;ProjectionWeights&quot;</span>);</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; }</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>)</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; {</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_output, <span class="stringliteral">&quot;ProjectionBias&quot;</span>);</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; }</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="comment">// Making sure the projection tensors are consistent:</span></div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; <span class="comment">// 1) If projection weight is not present, then projection bias should not be</span></div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="comment">// present.</span></div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; <span class="comment">// 2) If projection weight is present, then projection bias is optional.</span></div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <span class="keywordtype">bool</span> projecton_tensors_consistent = ((!<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp;</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>)</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; || (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; !<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp;</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>)</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; || (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">m_ProjectionWeights</a> &amp;&amp; <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">m_ProjectionBias</a> &amp;&amp;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>));</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; <span class="keywordflow">if</span> (!projecton_tensors_consistent)</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; {</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Projection tensors are inconsistent.&quot;</span>);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; }</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="comment">// The four layer normalization weights either all have values or none of them have values. Additionally, if</span></div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; <span class="comment">// CIFG is used, input layer normalization weights tensor is omitted and the other layer normalization weights</span></div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; <span class="comment">// either all have values or none of them have values. Layer normalization is used when the values of all the</span></div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; <span class="comment">// layer normalization weights are present</span></div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>)</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; {</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;InputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; }</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>)</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; {</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;ForgetLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; }</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>)</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; {</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;CellLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; }</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>)</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; {</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;OutputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; }</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; {</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; {</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>)</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; {</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Layer normalisation is enabled and CIFG-LSTM is &quot;</span></div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; <span class="stringliteral">&quot;disabled but InputLayerNormWeights are not present&quot;</span>);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; }</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(),</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; 1, n_cell, <span class="stringliteral">&quot;InputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; }</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a>)</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; {</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;:InputLayerNormWeights are present while CIFG is &quot;</span></div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; <span class="stringliteral">&quot;enabled&quot;</span>);</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; }</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>, <span class="stringliteral">&quot;Null pointer check layer normalisation enabled&quot;</span>,</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; <span class="stringliteral">&quot;ForgetLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;ForgetLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>, <span class="stringliteral">&quot;Null pointer check layer normalisation enabled&quot;</span>,</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="stringliteral">&quot;OutputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;OutputLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; ValidatePointer(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>, <span class="stringliteral">&quot;Null pointer check layer normalisation enabled&quot;</span>,</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; <span class="stringliteral">&quot;CellLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; ValidateTensorNumDimNumElem(<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>-&gt;<a class="code" href="classarmnn_1_1_const_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>(), 1, n_cell, <span class="stringliteral">&quot;CellLayerNormWeights&quot;</span>);</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; }</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">m_InputLayerNormWeights</a> || <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">m_ForgetLayerNormWeights</a> || <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">m_OutputLayerNormWeights</a> || <a class="code" href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">m_CellLayerNormWeights</a>)</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; {</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">&quot;: Layer normalisation is disabled but one or more layer &quot;</span></div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; <span class="stringliteral">&quot;normalisation weights are present.&quot;</span>);</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; }</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a6c9de81fc65b3c4924cab11907075a17"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">armnn::LstmDescriptor::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.xhtml#l01027">Descriptors.hpp:1027</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a3ead2ef8da00b2709d561d85996fc513"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a3ead2ef8da00b2709d561d85996fc513">armnn::LstmQueueDescriptor::m_ProjectionWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00457">WorkloadData.hpp:457</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_adf8571dd1867ee91082bd005f94f2610"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#adf8571dd1867ee91082bd005f94f2610">armnn::LstmQueueDescriptor::m_RecurrentToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00447">WorkloadData.hpp:447</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a86e88bef0df4df96df752b4b8955a3af"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a86e88bef0df4df96df752b4b8955a3af">armnn::LstmDescriptor::m_ClippingThresProj</a></div><div class="ttdeci">float m_ClippingThresProj</div><div class="ttdoc">Clipping threshold value for the projection. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01021">Descriptors.hpp:1021</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a44eb7524badcca9b2073359e3814c98b"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a44eb7524badcca9b2073359e3814c98b">armnn::LstmQueueDescriptor::m_InputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_InputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00453">WorkloadData.hpp:453</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ac18c8b8b2039267d8282e91b4162d8aa"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac18c8b8b2039267d8282e91b4162d8aa">armnn::LstmQueueDescriptor::m_RecurrentToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00448">WorkloadData.hpp:448</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a6e9593869b82984de198fed27f72cdcf"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a6e9593869b82984de198fed27f72cdcf">armnn::LstmQueueDescriptor::m_CellBias</a></div><div class="ttdeci">const ConstTensorHandle * m_CellBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00455">WorkloadData.hpp:455</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a17ba1c8bcc71a55a95b2a3913f8cb203"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a17ba1c8bcc71a55a95b2a3913f8cb203">armnn::LstmQueueDescriptor::m_InputToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00445">WorkloadData.hpp:445</a></div></div>
+<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::DataType::QSymmS16</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a0e0f66bd03c88f3d2dc666f581d3cf12"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a0e0f66bd03c88f3d2dc666f581d3cf12">armnn::LstmQueueDescriptor::m_OutputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00462">WorkloadData.hpp:462</a></div></div>
+<div class="ttc" id="classarmnn_1_1_const_tensor_handle_xhtml_a8e8d2fbabcac19f9e12779080ddff54e"><div class="ttname"><a href="classarmnn_1_1_const_tensor_handle.xhtml#a8e8d2fbabcac19f9e12779080ddff54e">armnn::ConstTensorHandle::GetShape</a></div><div class="ttdeci">TensorShape GetShape() const override</div><div class="ttdoc">Get the number of elements for each dimension ordered from slowest iterating dimension to fastest ite...</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_handle_8hpp_source.xhtml#l00053">TensorHandle.hpp:53</a></div></div>
+<div class="ttc" id="structarmnn_1_1_queue_descriptor_with_parameters_xhtml_aad91b9bbf7aa365d304febe79a3d1333"><div class="ttname"><a href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">armnn::QueueDescriptorWithParameters&lt; LstmDescriptor &gt;::m_Parameters</a></div><div class="ttdeci">LstmDescriptor m_Parameters</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00057">WorkloadData.hpp:57</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a5ff4158b1b363b898d0da04c42d37ce0"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a5ff4158b1b363b898d0da04c42d37ce0">armnn::LstmQueueDescriptor::m_OutputGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_OutputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00456">WorkloadData.hpp:456</a></div></div>
+<div class="ttc" id="classarmnn_1_1_const_tensor_handle_xhtml_a66e8f43a5b42b500871ed96e15419567"><div class="ttname"><a href="classarmnn_1_1_const_tensor_handle.xhtml#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.xhtml#l00037">TensorHandle.hpp:37</a></div></div>
+<div class="ttc" id="structarmnn_1_1_workload_info_xhtml_ac97905bfa0daab357b91df1347600309"><div class="ttname"><a href="structarmnn_1_1_workload_info.xhtml#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="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00018">WorkloadInfo.hpp:18</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aeef6f1ac3efad8ec8b0a7118652b64c9"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aeef6f1ac3efad8ec8b0a7118652b64c9">armnn::LstmQueueDescriptor::m_CellLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00461">WorkloadData.hpp:461</a></div></div>
+<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::DataType::Float16</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a2837b4396f20c956952d1a7286cab5f8"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">armnn::LstmDescriptor::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.xhtml#l01025">Descriptors.hpp:1025</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aa09f7bdb9fd0d06b6386e412a4e72dd6"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aa09f7bdb9fd0d06b6386e412a4e72dd6">armnn::LstmQueueDescriptor::m_CellToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00452">WorkloadData.hpp:452</a></div></div>
+<div class="ttc" id="structarmnn_1_1_workload_info_xhtml_a67b178f8a836bc1e52b8de109760adfd"><div class="ttname"><a href="structarmnn_1_1_workload_info.xhtml#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="include_2armnn_2backends_2_workload_info_8hpp_source.xhtml#l00019">WorkloadInfo.hpp:19</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a841439e3b8dc157a7368b19c9ecb7d03"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a841439e3b8dc157a7368b19c9ecb7d03">armnn::LstmQueueDescriptor::m_InputToCellWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00444">WorkloadData.hpp:444</a></div></div>
+<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_aab77f54a037658ca9b2bf9cc8a1fadf1"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#aab77f54a037658ca9b2bf9cc8a1fadf1">armnn::LstmQueueDescriptor::m_InputToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00443">WorkloadData.hpp:443</a></div></div>
+<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::DataType::BFloat16</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a531a3907ec13d3772370da88030191a5"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a531a3907ec13d3772370da88030191a5">armnn::LstmDescriptor::m_ClippingThresCell</a></div><div class="ttdeci">float m_ClippingThresCell</div><div class="ttdoc">Clipping threshold value for the cell state. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01019">Descriptors.hpp:1019</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a299587d4f3fca029492700f3e2585bd8"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a299587d4f3fca029492700f3e2585bd8">armnn::LstmQueueDescriptor::m_RecurrentToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00446">WorkloadData.hpp:446</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a29fa293fffbf9c6f00cd75db1dc0a52a"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a29fa293fffbf9c6f00cd75db1dc0a52a">armnn::LstmQueueDescriptor::m_ForgetGateBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00454">WorkloadData.hpp:454</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_ad474e5c51a0b194ef32e812b86c0cbdb"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">armnn::LstmDescriptor::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.xhtml#l01023">Descriptors.hpp:1023</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a20c10fcb26657477377d07b7b1e13120"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a20c10fcb26657477377d07b7b1e13120">armnn::LstmQueueDescriptor::m_CellToForgetWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00451">WorkloadData.hpp:451</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ac668b31de6fb0f19d4c793d5ed3c3316"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ac668b31de6fb0f19d4c793d5ed3c3316">armnn::LstmQueueDescriptor::m_ProjectionBias</a></div><div class="ttdeci">const ConstTensorHandle * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00458">WorkloadData.hpp:458</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_descriptor_xhtml_a4a8ec49f130084445d44297549254780"><div class="ttname"><a href="structarmnn_1_1_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">armnn::LstmDescriptor::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.xhtml#l01029">Descriptors.hpp:1029</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ad9442e26aa79f896da5f404ab825a9c8"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ad9442e26aa79f896da5f404ab825a9c8">armnn::LstmQueueDescriptor::m_ForgetLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_ForgetLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00460">WorkloadData.hpp:460</a></div></div>
+<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::DataType::Float32</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a1dbad32cad5c0437e1272f59fedf52ea"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a1dbad32cad5c0437e1272f59fedf52ea">armnn::LstmQueueDescriptor::m_InputLayerNormWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00459">WorkloadData.hpp:459</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a951b7c90b862138071a298065f16be61"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a951b7c90b862138071a298065f16be61">armnn::LstmQueueDescriptor::m_CellToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_CellToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00450">WorkloadData.hpp:450</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_ab160eba2493d5fe52185c0986dcb190c"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#ab160eba2493d5fe52185c0986dcb190c">armnn::LstmQueueDescriptor::m_InputToInputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_InputToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00442">WorkloadData.hpp:442</a></div></div>
+<div class="ttc" id="structarmnn_1_1_lstm_queue_descriptor_xhtml_a4c27716f61bb68e8ea0bd4e8389ba01a"><div class="ttname"><a href="structarmnn_1_1_lstm_queue_descriptor.xhtml#a4c27716f61bb68e8ea0bd4e8389ba01a">armnn::LstmQueueDescriptor::m_RecurrentToOutputWeights</a></div><div class="ttdeci">const ConstTensorHandle * m_RecurrentToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00449">WorkloadData.hpp:449</a></div></div>
+</div><!-- fragment -->
+</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.xhtml">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.xhtml#l00455">455</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00461">461</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00451">451</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00450">450</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00452">452</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00454">454</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00460">460</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00453">453</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00459">459</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00444">444</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00443">443</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00442">442</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00445">445</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00456">456</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00462">462</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00458">458</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00457">457</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00448">448</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00447">447</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00446">446</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</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.xhtml">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.xhtml#l00449">449</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.xhtml#l00022">LstmLayer::CreateWorkload()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following files:<ul>
+<li>src/backends/backendsCommon/<a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a></li>
+<li>src/backends/backendsCommon/<a class="el" href="_workload_data_8cpp_source.xhtml">WorkloadData.cpp</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="namespacearmnn.xhtml">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_lstm_queue_descriptor.xhtml">LstmQueueDescriptor</a></li>
+ <li class="footer">Generated on Wed Nov 17 2021 12:59:43 for ArmNN by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>