diff options
author | Colm Donelan <Colm.Donelan@arm.com> | 2020-05-20 16:12:19 +0100 |
---|---|---|
committer | Colm Donelan <Colm.Donelan@arm.com> | 2020-05-29 10:28:40 +0100 |
commit | a983e4699082a0b1ef685bab7354f2ad9cd37a44 (patch) | |
tree | 4fa94e7ab27053461b481cfbdc1b7c17ca475ac6 /20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml | |
parent | 764d50a3271dea43a6e9273e6dfd98990281c654 (diff) | |
download | armnn-a983e4699082a0b1ef685bab7354f2ad9cd37a44.tar.gz |
Updating Doxygen documentation for 20.05 release.
Change-Id: I4d624343ed5fd6ae269c3d53532903084508fd14
Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
Diffstat (limited to '20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml')
-rw-r--r-- | 20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml | 708 |
1 files changed, 708 insertions, 0 deletions
diff --git a/20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml b/20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml new file mode 100644 index 0000000000..fad99faf9b --- /dev/null +++ b/20.05/structarmnn_1_1_q_lstm_queue_descriptor.xhtml @@ -0,0 +1,708 @@ +<!-- 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: QLstmQueueDescriptor Struct Reference</title> +<link href="tabs.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="jquery.js"></script> +<script type="text/javascript" src="dynsections.js"></script> +<link href="navtree.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="resize.js"></script> +<script type="text/javascript" src="navtreedata.js"></script> +<script type="text/javascript" src="navtree.js"></script> +<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"> +  <span id="projectnumber">20.05</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_q_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> | +<a href="#pub-attribs">Public Attributes</a> | +<a href="structarmnn_1_1_q_lstm_queue_descriptor-members.xhtml">List of all members</a> </div> + <div class="headertitle"> +<div class="title">QLstmQueueDescriptor Struct Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p><code>#include <<a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>></code></p> +<div class="dynheader"> +Inheritance diagram for QLstmQueueDescriptor:</div> +<div class="dyncontent"> + <div class="center"> + <img src="structarmnn_1_1_q_lstm_queue_descriptor.png" usemap="#QLstmQueueDescriptor_map" alt=""/> + <map id="QLstmQueueDescriptor_map" name="QLstmQueueDescriptor_map"> +<area href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml" alt="QueueDescriptorWithParameters< QLstmDescriptor >" shape="rect" coords="0,56,315,80"/> +<area href="structarmnn_1_1_queue_descriptor.xhtml" alt="QueueDescriptor" shape="rect" coords="0,0,315,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:ae632fa69e135c7871fcecf4658a0a634"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#ae632fa69e135c7871fcecf4658a0a634">QLstmQueueDescriptor</a> ()</td></tr> +<tr class="separator:ae632fa69e135c7871fcecf4658a0a634"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a041e495449e22774a34d92b0904c10bf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a041e495449e22774a34d92b0904c10bf">Validate</a> (const <a class="el" href="structarmnn_1_1_workload_info.xhtml">WorkloadInfo</a> &workloadInfo) const</td></tr> +<tr class="separator:a041e495449e22774a34d92b0904c10bf"><td class="memSeparator" colspan="2"> </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="-"/> 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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml#a765d2cee4ccce5b9467e0c2b6d25b84a">ValidateInputsOutputs</a> (const std::string &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"> </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:a08a1932be591c315a512a877d38b22df"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">m_InputToInputWeights</a></td></tr> +<tr class="separator:a08a1932be591c315a512a877d38b22df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3ea82566d98c5a657c76c3d851c47848"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">m_InputToForgetWeights</a></td></tr> +<tr class="separator:a3ea82566d98c5a657c76c3d851c47848"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a28ad98d17603fd8b12e046f8ece58970"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">m_InputToCellWeights</a></td></tr> +<tr class="separator:a28ad98d17603fd8b12e046f8ece58970"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a83dc9086b2e4a4e4cadb66bd874df798"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">m_InputToOutputWeights</a></td></tr> +<tr class="separator:a83dc9086b2e4a4e4cadb66bd874df798"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a98d377149071d8842d610cc0734d1cfe"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">m_RecurrentToInputWeights</a></td></tr> +<tr class="separator:a98d377149071d8842d610cc0734d1cfe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a45d73e66cbb2b65049e4016c20657ccf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">m_RecurrentToForgetWeights</a></td></tr> +<tr class="separator:a45d73e66cbb2b65049e4016c20657ccf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aea142bd50ffb93631c2e08324ec92a1e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">m_RecurrentToCellWeights</a></td></tr> +<tr class="separator:aea142bd50ffb93631c2e08324ec92a1e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adebc1771e5a1f4b113a7aa594ea74d2c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">m_RecurrentToOutputWeights</a></td></tr> +<tr class="separator:adebc1771e5a1f4b113a7aa594ea74d2c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5c1c0a7ead7273788976c9e97cffaab7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">m_CellToInputWeights</a></td></tr> +<tr class="separator:a5c1c0a7ead7273788976c9e97cffaab7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acefa49d7faf26933e27e473e7bdb4175"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">m_CellToForgetWeights</a></td></tr> +<tr class="separator:acefa49d7faf26933e27e473e7bdb4175"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6f74071b0e07bbe2cb20a8f78826e084"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">m_CellToOutputWeights</a></td></tr> +<tr class="separator:a6f74071b0e07bbe2cb20a8f78826e084"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acb3aade8fae984f7293e222dcbe66030"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">m_InputGateBias</a></td></tr> +<tr class="separator:acb3aade8fae984f7293e222dcbe66030"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aba3ffe91d818266b8785ce971548eb59"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">m_ForgetGateBias</a></td></tr> +<tr class="separator:aba3ffe91d818266b8785ce971548eb59"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a75980b5795efd899a0c678a06a900c6d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">m_CellBias</a></td></tr> +<tr class="separator:a75980b5795efd899a0c678a06a900c6d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a332551528a4b3534c2d6c89ce816fcd9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">m_OutputGateBias</a></td></tr> +<tr class="separator:a332551528a4b3534c2d6c89ce816fcd9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af3c52626a6f05597d82ed095d0765962"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a></td></tr> +<tr class="separator:af3c52626a6f05597d82ed095d0765962"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2ba352eb1fdf6dc5ecf7f2e6b6b48f94"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a></td></tr> +<tr class="separator:a2ba352eb1fdf6dc5ecf7f2e6b6b48f94"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9cc28aa4fff6ba9a8abdb340c1abdd57"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">m_InputLayerNormWeights</a></td></tr> +<tr class="separator:a9cc28aa4fff6ba9a8abdb340c1abdd57"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a453a4af385d0c060c9aac990fceaa1ef"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">m_ForgetLayerNormWeights</a></td></tr> +<tr class="separator:a453a4af385d0c060c9aac990fceaa1ef"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a518f0195d0278a892b49649b8860d17f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">m_CellLayerNormWeights</a></td></tr> +<tr class="separator:a518f0195d0278a892b49649b8860d17f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa3f07e27230d6d99adc2c82ba681df2b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">m_OutputLayerNormWeights</a></td></tr> +<tr class="separator:aa3f07e27230d6d99adc2c82ba681df2b"><td class="memSeparator" colspan="2"> </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="-"/> Public Attributes inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml">QueueDescriptorWithParameters< QLstmDescriptor ></a></td></tr> +<tr class="memitem:aad91b9bbf7aa365d304febe79a3d1333 inherit pub_attribs_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_1_1_q_lstm_descriptor.xhtml">QLstmDescriptor</a> </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"> </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="-"/> 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< <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml">ITensorHandle</a> * > </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"> </td></tr> +<tr class="memitem:a6abd491bb99ffe88bd472c1ae5a1ed1a inherit pub_attribs_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml">ITensorHandle</a> * > </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"> </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="-"/> Protected Member Functions inherited from <a class="el" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml">QueueDescriptorWithParameters< QLstmDescriptor ></a></td></tr> +<tr class="memitem:a52679b441422256016dc6f5b5e9193d5 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr> +<tr class="memitem:a6f269eb32757efa5b203091c52e985fd inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr> +<tr class="memitem:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memItemLeft" align="right" valign="top"> </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 &)=default</td></tr> +<tr class="separator:a6cbdcaa9cab857077a3810788e2cf489 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </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> & </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 &)=default</td></tr> +<tr class="separator:aa86bd03df9faf133a34e263f16486707 inherit pro_methods_structarmnn_1_1_queue_descriptor_with_parameters"><td class="memSeparator" colspan="2"> </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="-"/> 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"> </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"> </td></tr> +<tr class="memitem:a40f14131fbead7c8eaf32b67eedd9e01 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_queue_descriptor.xhtml#a40f14131fbead7c8eaf32b67eedd9e01">QueueDescriptor</a> ()=default</td></tr> +<tr class="separator:a40f14131fbead7c8eaf32b67eedd9e01 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memItemLeft" align="right" valign="top"> </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 &)=default</td></tr> +<tr class="separator:a75d3b85e1e50b1dff74ee84a593d089e inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </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> & </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 &)=default</td></tr> +<tr class="separator:a1c928b975a0de05cf2536c721ba6b521 inherit pro_methods_structarmnn_1_1_queue_descriptor"><td class="memSeparator" colspan="2"> </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#l00523">523</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p> +</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> +<a id="ae632fa69e135c7871fcecf4658a0a634"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae632fa69e135c7871fcecf4658a0a634">◆ </a></span>QLstmQueueDescriptor()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml">QLstmQueueDescriptor</a> </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p class="definition">Definition at line <a class="el" href="_workload_data_8hpp_source.xhtml#l00525">525</a> of file <a class="el" href="_workload_data_8hpp_source.xhtml">WorkloadData.hpp</a>.</p> +<div class="fragment"><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  : <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">m_InputToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">m_InputToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">m_InputToCellWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">m_InputToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">m_RecurrentToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">m_RecurrentToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">m_RecurrentToCellWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">m_RecurrentToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">m_CellToInputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">m_CellToForgetWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">m_CellToOutputWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">m_InputGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">m_ForgetGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">m_CellBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">m_OutputGateBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">m_InputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">m_ForgetLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">m_CellLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  , <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">m_OutputLayerNormWeights</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_acefa49d7faf26933e27e473e7bdb4175"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">armnn::QLstmQueueDescriptor::m_CellToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00559">WorkloadData.hpp:559</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_af3c52626a6f05597d82ed095d0765962"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">armnn::QLstmQueueDescriptor::m_ProjectionWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ProjectionWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00565">WorkloadData.hpp:565</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a2ba352eb1fdf6dc5ecf7f2e6b6b48f94"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">armnn::QLstmQueueDescriptor::m_ProjectionBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00566">WorkloadData.hpp:566</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a453a4af385d0c060c9aac990fceaa1ef"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">armnn::QLstmQueueDescriptor::m_ForgetLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ForgetLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00568">WorkloadData.hpp:568</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a518f0195d0278a892b49649b8860d17f"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">armnn::QLstmQueueDescriptor::m_CellLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00569">WorkloadData.hpp:569</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aea142bd50ffb93631c2e08324ec92a1e"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">armnn::QLstmQueueDescriptor::m_RecurrentToCellWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00556">WorkloadData.hpp:556</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a98d377149071d8842d610cc0734d1cfe"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">armnn::QLstmQueueDescriptor::m_RecurrentToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00554">WorkloadData.hpp:554</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a332551528a4b3534c2d6c89ce816fcd9"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">armnn::QLstmQueueDescriptor::m_OutputGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_OutputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00564">WorkloadData.hpp:564</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a75980b5795efd899a0c678a06a900c6d"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">armnn::QLstmQueueDescriptor::m_CellBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00563">WorkloadData.hpp:563</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a6f74071b0e07bbe2cb20a8f78826e084"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">armnn::QLstmQueueDescriptor::m_CellToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00560">WorkloadData.hpp:560</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aa3f07e27230d6d99adc2c82ba681df2b"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">armnn::QLstmQueueDescriptor::m_OutputLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_OutputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00570">WorkloadData.hpp:570</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a3ea82566d98c5a657c76c3d851c47848"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">armnn::QLstmQueueDescriptor::m_InputToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00551">WorkloadData.hpp:551</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a5c1c0a7ead7273788976c9e97cffaab7"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">armnn::QLstmQueueDescriptor::m_CellToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00558">WorkloadData.hpp:558</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_adebc1771e5a1f4b113a7aa594ea74d2c"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">armnn::QLstmQueueDescriptor::m_RecurrentToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00557">WorkloadData.hpp:557</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_acb3aade8fae984f7293e222dcbe66030"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">armnn::QLstmQueueDescriptor::m_InputGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00561">WorkloadData.hpp:561</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a9cc28aa4fff6ba9a8abdb340c1abdd57"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">armnn::QLstmQueueDescriptor::m_InputLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00567">WorkloadData.hpp:567</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a45d73e66cbb2b65049e4016c20657ccf"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">armnn::QLstmQueueDescriptor::m_RecurrentToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00555">WorkloadData.hpp:555</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aba3ffe91d818266b8785ce971548eb59"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">armnn::QLstmQueueDescriptor::m_ForgetGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ForgetGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00562">WorkloadData.hpp:562</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a83dc9086b2e4a4e4cadb66bd874df798"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">armnn::QLstmQueueDescriptor::m_InputToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00553">WorkloadData.hpp:553</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a08a1932be591c315a512a877d38b22df"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">armnn::QLstmQueueDescriptor::m_InputToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00550">WorkloadData.hpp:550</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a28ad98d17603fd8b12e046f8ece58970"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">armnn::QLstmQueueDescriptor::m_InputToCellWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00552">WorkloadData.hpp:552</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">◆ </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> & </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#l02847">2847</a> of file <a class="el" href="_workload_data_8cpp_source.xhtml">WorkloadData.cpp</a>.</p> + +<p class="reference">References <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>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::QAsymmS8</a>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::QSymmS16</a>, <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::QSymmS8</a>, and <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::Signed32</a>.</p> +<div class="fragment"><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span> {</div><div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>  <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">"QLstmQueueDescriptor"</span>};</div><div class="line"><a name="l02850"></a><span class="lineno"> 2850</span> </div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>  <span class="comment">// Validate number of inputs/outputs</span></div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>  ValidateNumInputs(workloadInfo, descriptorName, 3);</div><div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>  ValidateNumOutputs(workloadInfo, descriptorName, 3);</div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</span> </div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>  <span class="comment">// Input/output tensor info</span></div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>  <span class="keyword">auto</span> inputInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0];</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>  <span class="keyword">auto</span> outputStateInInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[1];</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>  <span class="keyword">auto</span> cellStateInInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[2];</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span> </div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>  <span class="keyword">auto</span> outputStateOutInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0];</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>  <span class="keyword">auto</span> cellStateOutInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[1];</div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>  <span class="keyword">auto</span> outputInfo = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.xhtml#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[2];</div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span> </div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>  <span class="comment">// Supported types for various tensors in QLSTM</span></div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>  std::vector<DataType> inputOutputSupportedTypes =</div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>  {</div><div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>  <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a></div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>  };</div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span> </div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>  std::vector<DataType> cellStateSupportedTypes =</div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>  {</div><div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>  <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>  };</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span> </div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>  std::vector<DataType> weightsSupportedTypes =</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>  {</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>  <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">DataType::QSymmS8</a></div><div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>  };</div><div class="line"><a name="l02879"></a><span class="lineno"> 2879</span> </div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>  std::vector<DataType> layerNormPeepholeWeightsSupportedTypes =</div><div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>  {</div><div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>  <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>  };</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span> </div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>  std::vector<DataType> biasSupportedTypes =</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>  {</div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>  <a class="code" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a></div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>  };</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span> </div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>  <span class="comment">// Validate types of input/output tensors</span></div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>  ValidateDataTypes(inputInfo, inputOutputSupportedTypes, descriptorName);</div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>  ValidateDataTypes(outputStateInInfo, inputOutputSupportedTypes, descriptorName);</div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>  ValidateDataTypes(cellStateInInfo, cellStateSupportedTypes, descriptorName);</div><div class="line"><a name="l02894"></a><span class="lineno"> 2894</span> </div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>  ValidateDataTypes(outputStateOutInfo, inputOutputSupportedTypes, descriptorName);</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>  ValidateDataTypes(cellStateOutInfo, cellStateSupportedTypes, descriptorName);</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>  ValidateDataTypes(outputInfo, inputOutputSupportedTypes, descriptorName);</div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span> </div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>  <span class="comment">// Validate matching types of input/output tensors</span></div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>  ValidateTensorDataTypesMatch(inputInfo, outputStateInInfo, descriptorName, <span class="stringliteral">"input"</span>, <span class="stringliteral">"outputStateIn"</span>);</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>  ValidateTensorDataTypesMatch(outputStateInInfo, outputStateOutInfo, descriptorName,</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>  <span class="stringliteral">"outputStateIn"</span>, <span class="stringliteral">"outputStateOut"</span>);</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>  ValidateTensorDataTypesMatch(cellStateInInfo, cellStateOutInfo, descriptorName, <span class="stringliteral">"cellStateIn"</span>, <span class="stringliteral">"cellStateOut"</span>);</div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span> </div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>  <span class="comment">// Infer number of batches, number of units, input size and output size from tensor dimensions</span></div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>  <span class="keyword">const</span> uint32_t numBatches = inputInfo.GetShape()[0];</div><div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>  <span class="keyword">const</span> uint32_t inputSize = inputInfo.GetShape()[1];</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>  <span class="keyword">const</span> uint32_t outputSize = outputStateInInfo.GetShape()[1];</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>  <span class="keyword">const</span> uint32_t numUnits = cellStateInInfo.GetShape()[1];</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span> </div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>  <span class="comment">// Validate number of dimensions and number of elements for input/output tensors</span></div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>  ValidateTensorNumDimNumElem(inputInfo, 2, (numBatches * inputSize), descriptorName + <span class="stringliteral">" input"</span>);</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>  ValidateTensorNumDimNumElem(outputStateInInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">" outputStateIn"</span>);</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>  ValidateTensorNumDimNumElem(cellStateInInfo, 2, (numBatches * numUnits), descriptorName + <span class="stringliteral">" cellStateIn"</span>);</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span> </div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>  ValidateTensorNumDimNumElem(outputStateOutInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">" outputStateOut"</span>);</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>  ValidateTensorNumDimNumElem(cellStateOutInfo, 2, (numBatches * numUnits), descriptorName + <span class="stringliteral">" cellStateOut"</span>);</div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>  ValidateTensorNumDimNumElem(outputInfo, 2, (numBatches * outputSize), descriptorName + <span class="stringliteral">" output"</span>);</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span> </div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>  <span class="comment">// Validate number of dimensions and number of elements for MANDATORY weight tensors</span></div><div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">m_InputToForgetWeights</a>, descriptorName, <span class="stringliteral">"InputToForgetWeights"</span>);</div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>  <span class="keyword">auto</span> inputToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">m_InputToForgetWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>  ValidateTensorNumDimNumElem(inputToForgetWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">" InputToForgetWeights"</span>);</div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span> </div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">m_InputToCellWeights</a>, descriptorName, <span class="stringliteral">"InputToCellWeights"</span>);</div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>  <span class="keyword">auto</span> inputToCellWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">m_InputToCellWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>  ValidateTensorNumDimNumElem(inputToCellWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">" InputToCellWeights"</span>);</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span> </div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">m_InputToOutputWeights</a>, descriptorName, <span class="stringliteral">"InputToOutputWeights"</span>);</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>  <span class="keyword">auto</span> inputToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">m_InputToOutputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>  ValidateTensorNumDimNumElem(inputToOutputWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">" InputToOutputWeights"</span>);</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span> </div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">m_RecurrentToForgetWeights</a>, descriptorName, <span class="stringliteral">"RecurrentToForgetWeights"</span>);</div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>  <span class="keyword">auto</span> recurrentToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">m_RecurrentToForgetWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>  ValidateTensorNumDimNumElem(recurrentToForgetWeightsInfo, 2, (numUnits * outputSize),</div><div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>  <span class="stringliteral">" RecurrentToForgetWeights"</span>);</div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span> </div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">m_RecurrentToCellWeights</a>, descriptorName, <span class="stringliteral">"RecurrentToCellWeights"</span>);</div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>  <span class="keyword">auto</span> recurrentToCellWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">m_RecurrentToCellWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>  ValidateTensorNumDimNumElem(recurrentToCellWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">" RecurrentToCellWeights"</span>);</div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span> </div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">m_RecurrentToOutputWeights</a>, descriptorName, <span class="stringliteral">"RecurrentToOutputWeights"</span>);</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>  <span class="keyword">auto</span> recurrentToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">m_RecurrentToOutputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>  ValidateTensorNumDimNumElem(recurrentToOutputWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">" RecurrentToCellWeights"</span>);</div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span> </div><div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>  <span class="comment">// Validate data types for MANDATORY weights tensors (all should match each other)</span></div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>  ValidateDataTypes(inputToForgetWeightsInfo, weightsSupportedTypes, descriptorName);</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span> </div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToCellWeightsInfo, descriptorName,</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"inputToCellWeights"</span>);</div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToOutputWeightsInfo, descriptorName,</div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"inputToOutputWeights"</span>);</div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span> </div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToForgetWeightsInfo, descriptorName,</div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"recurrentToForgeteights"</span>);</div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToCellWeightsInfo, descriptorName,</div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"recurrentToCellWeights"</span>);</div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToOutputWeightsInfo, descriptorName,</div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"recurrentToOutputWeights"</span>);</div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span> </div><div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>  <span class="comment">// Validate number of dimensions and number of elements for MANDATORY bias tensors</span></div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">m_ForgetGateBias</a>, descriptorName, <span class="stringliteral">"ForgetGateBias"</span>);</div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>  <span class="keyword">auto</span> forgetGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">m_ForgetGateBias</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>  ValidateTensorNumDimNumElem(forgetGateBiasInfo, 1, numUnits, <span class="stringliteral">" ForgetGateBias"</span>);</div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span> </div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">m_CellBias</a>, descriptorName, <span class="stringliteral">"CellBias"</span>);</div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>  <span class="keyword">auto</span> cellBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">m_CellBias</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>  ValidateTensorNumDimNumElem(cellBiasInfo, 1, numUnits, <span class="stringliteral">" CellBias"</span>);</div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span> </div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>  ValidatePointer(<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">m_OutputGateBias</a>, descriptorName, <span class="stringliteral">"OutputGateBias"</span>);</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>  <span class="keyword">auto</span> outputGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">m_OutputGateBias</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>  ValidateTensorNumDimNumElem(outputGateBiasInfo, 1, numUnits, <span class="stringliteral">" OutputGateBias"</span>);</div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span> </div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>  <span class="comment">// Validate data types for MANDATORY bias tensors</span></div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>  ValidateDataTypes(forgetGateBiasInfo, biasSupportedTypes, descriptorName);</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span> </div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>  ValidateTensorDataTypesMatch(forgetGateBiasInfo, cellBiasInfo, descriptorName,</div><div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>  <span class="stringliteral">"forgetGateBias"</span>, <span class="stringliteral">"cellBias"</span>);</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>  ValidateTensorDataTypesMatch(forgetGateBiasInfo, outputGateBiasInfo, descriptorName,</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>  <span class="stringliteral">"forgetGateBias"</span>, <span class="stringliteral">"outputGateBias"</span>);</div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span> </div><div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>  <span class="comment">// Validate OPTIONAL params: CIFG (inputToInputWeights, recurrentToInputWeights, inputGateBias)</span></div><div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> allCifgParamsPresentOrNot = ((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">m_InputToInputWeights</a> && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">m_RecurrentToInputWeights</a> && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">m_InputGateBias</a> &&</div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>  !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) ||</div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>  (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">m_InputToInputWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">m_RecurrentToInputWeights</a> &&</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>  !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">m_InputGateBias</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>));</div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span> </div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>  <span class="keywordflow">if</span> (!allCifgParamsPresentOrNot)</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>  {</div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName +</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>  <span class="stringliteral">": InputToInputWeights, RecurrentToInputWeights and InputGateBias must either all be present "</span></div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>  <span class="stringliteral">"(CIFG disabled) or not be present at all (CIFG enabled). m_Parameters.m_CifgEnabled should be "</span></div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>  <span class="stringliteral">"set appropriately."</span>);</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>  }</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span> </div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>  <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_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>  {</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>  <span class="comment">// Validate number of dimensions and number of elements</span></div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>  <span class="keyword">auto</span> inputToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">m_InputToInputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>  ValidateTensorNumDimNumElem(inputToInputWeightsInfo, 2, (numUnits * inputSize), <span class="stringliteral">" InputToInputWeights"</span>);</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span> </div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>  <span class="keyword">auto</span> recurrentToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">m_RecurrentToInputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>  ValidateTensorNumDimNumElem(recurrentToInputWeightsInfo, 2, (numUnits * outputSize),</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>  <span class="stringliteral">" RecurrentToInputWeights"</span>);</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span> </div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>  <span class="keyword">auto</span> inputGateBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">m_InputGateBias</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>  ValidateTensorNumDimNumElem(inputGateBiasInfo, 1, numUnits, <span class="stringliteral">" InputGateBias"</span>);</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span> </div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>  <span class="comment">// Validate data types</span></div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, inputToInputWeightsInfo, descriptorName,</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"inputToInputWeights"</span>);</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>  ValidateTensorDataTypesMatch(inputToForgetWeightsInfo, recurrentToInputWeightsInfo, descriptorName,</div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>  <span class="stringliteral">"inputToForgetWeights"</span>, <span class="stringliteral">"recurrentToInputWeights"</span>);</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>  ValidateTensorDataTypesMatch(forgetGateBiasInfo, inputGateBiasInfo, descriptorName,</div><div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>  <span class="stringliteral">"forgetGateBias"</span>, <span class="stringliteral">"inputGateBias"</span>);</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>  }</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span> </div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>  <span class="comment">// Validate OPTIONAL params: Peephole (cellToInputWeights, cellToForgetWeights, cellToOutputWeights)</span></div><div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>  <span class="keywordtype">bool</span> allPeepholeWeightsPresentOrNot =</div><div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>  (((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">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_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">m_CellToForgetWeights</a></div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>  && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">m_CellToOutputWeights</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>  || (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">m_CellToInputWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">m_CellToForgetWeights</a></div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>  && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">m_CellToOutputWeights</a> && !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>));</div><div class="line"><a name="l03024"></a><span class="lineno"> 3024</span> </div><div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>  <span class="keywordflow">if</span> (!allPeepholeWeightsPresentOrNot)</div><div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>  {</div><div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName +</div><div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>  <span class="stringliteral">": CellToInputWeights, CellToForgetWeights and CellToOutputWeights should all be present (Peephole "</span></div><div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>  <span class="stringliteral">"enabled) or not be present at all (Peephole disabled). CellToInputWeights should only be present "</span></div><div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>  <span class="stringliteral">"when Peephole is enabled and CIFG is disabled. m_Parameters.m_PeepholeEnabled should be set "</span></div><div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>  <span class="stringliteral">"appropriately."</span>);</div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>  }</div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span> </div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>  <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_q_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">m_PeepholeEnabled</a>)</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>  {</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>  <span class="keyword">auto</span> cellToForgetWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">m_CellToForgetWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>  ValidateTensorNumDimNumElem(cellToForgetWeightsInfo, 1, numUnits, <span class="stringliteral">" cellToForgetWeights"</span>);</div><div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>  ValidateDataTypes(cellToForgetWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span> </div><div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>  <span class="keyword">auto</span> cellToOutputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">m_CellToOutputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>  ValidateTensorNumDimNumElem(cellToOutputWeightsInfo, 1, numUnits, <span class="stringliteral">" cellToOutputWeights"</span>);</div><div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>  ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToOutputWeightsInfo, descriptorName,</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>  <span class="stringliteral">"cellToForgetWeight"</span>, <span class="stringliteral">"cellToOutputWeights"</span>);</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span> </div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>  <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_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>  {</div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>  <span class="keyword">auto</span> cellToInputWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">m_CellToInputWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>  ValidateTensorNumDimNumElem(cellToInputWeightsInfo, 1, numUnits, <span class="stringliteral">" cellToInputWeights"</span>);</div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>  ValidateTensorDataTypesMatch(cellToForgetWeightsInfo, cellToInputWeightsInfo, descriptorName,</div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>  <span class="stringliteral">"cellToForgetWeights"</span>, <span class="stringliteral">"cellToInputWeights"</span>);</div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>  }</div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>  }</div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span> </div><div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>  <span class="comment">// Validate OPTIONAL params: Layer Norm Weights</span></div><div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>  <span class="keywordtype">bool</span> allLayerNormWeightsPresentOrNot =</div><div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>  (((<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">m_InputLayerNormWeights</a> || <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>) && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">m_ForgetLayerNormWeights</a></div><div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>  && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">m_CellLayerNormWeights</a> && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">m_OutputLayerNormWeights</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div><div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>  || (!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">m_InputLayerNormWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">m_ForgetLayerNormWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">m_CellLayerNormWeights</a></div><div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>  && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">m_OutputLayerNormWeights</a> && !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>));</div><div class="line"><a name="l03060"></a><span class="lineno"> 3060</span> </div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>  <span class="keywordflow">if</span> (!allLayerNormWeightsPresentOrNot)</div><div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>  {</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName +</div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>  <span class="stringliteral">": InputLayerNormWeights, ForgetLayerNormWeights, m_OutputLayerNormWeights "</span></div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>  <span class="stringliteral">"and CellLayerNormWeights should all be present (Layer Norm enabled) or not "</span></div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>  <span class="stringliteral">"be present at all (Layer Norm disabled). InputLayerNormWeights should "</span></div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>  <span class="stringliteral">"only be present when Layer Norm is enabled and CIFG is disabled. "</span></div><div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>  <span class="stringliteral">"m_Parameters.m_LayerNormEnabled should be set appropriately."</span>);</div><div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>  }</div><div class="line"><a name="l03070"></a><span class="lineno"> 3070</span> </div><div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>  <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_q_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">m_LayerNormEnabled</a>)</div><div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>  {</div><div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>  <span class="keyword">auto</span> forgetLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">m_ForgetLayerNormWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>  ValidateTensorNumDimNumElem(forgetLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">" forgetLayerNormWeights"</span>);</div><div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>  ValidateDataTypes(forgetLayerNormWeightsInfo, layerNormPeepholeWeightsSupportedTypes, descriptorName);</div><div class="line"><a name="l03076"></a><span class="lineno"> 3076</span> </div><div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>  <span class="keyword">auto</span> cellLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">m_CellLayerNormWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>  ValidateTensorNumDimNumElem(cellLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">" cellLayerNormWeights"</span>);</div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, cellLayerNormWeightsInfo, descriptorName,</div><div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>  <span class="stringliteral">"forgetLayerNormWeights"</span>, <span class="stringliteral">"cellLayerNormWeights"</span>);</div><div class="line"><a name="l03081"></a><span class="lineno"> 3081</span> </div><div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>  <span class="keyword">auto</span> outputLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">m_OutputLayerNormWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>  ValidateTensorNumDimNumElem(outputLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">" outputLayerNormWeights"</span>);</div><div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, outputLayerNormWeightsInfo, descriptorName,</div><div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>  <span class="stringliteral">"forgetLayerNormWeights"</span>, <span class="stringliteral">"outputLayerNormWeights"</span>);</div><div class="line"><a name="l03086"></a><span class="lineno"> 3086</span> </div><div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>  <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_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">m_CifgEnabled</a>)</div><div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>  {</div><div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>  <span class="keyword">auto</span> inputLayerNormWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">m_InputLayerNormWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>  ValidateTensorNumDimNumElem(inputLayerNormWeightsInfo, 1, numUnits, <span class="stringliteral">" inputLayerNormWeights"</span>);</div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>  ValidateTensorDataTypesMatch(forgetLayerNormWeightsInfo, inputLayerNormWeightsInfo, descriptorName,</div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>  <span class="stringliteral">"forgetLayerNormWeights"</span>, <span class="stringliteral">"inputLayerNormWeights"</span>);</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>  }</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>  }</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span> </div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>  <span class="comment">// Validate OPTIONAL params: Projection (projectionWeights, projectionBias)</span></div><div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>  <span class="keywordtype">bool</span> correctProjectionTensorsPresent =</div><div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>  ((!<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a> && !<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>) ||</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>  (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a> && !<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>) ||</div><div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>  (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a> && <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a> && <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>));</div><div class="line"><a name="l03101"></a><span class="lineno"> 3101</span> </div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>  <span class="keywordflow">if</span> (!correctProjectionTensorsPresent)</div><div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>  {</div><div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName +</div><div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>  <span class="stringliteral">": If projection is enabled, ProjectionWeights should be present and "</span></div><div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>  <span class="stringliteral">"ProjectionBias is optional. If projection is disabled, neither "</span></div><div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>  <span class="stringliteral">"ProjectionWeights nor ProjectionBias should be present."</span>);</div><div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>  }</div><div class="line"><a name="l03109"></a><span class="lineno"> 3109</span> </div><div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>  <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_q_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">m_ProjectionEnabled</a>)</div><div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>  {</div><div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>  <span class="keyword">auto</span> projectionWeightsInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">m_ProjectionWeights</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>  ValidateTensorNumDimNumElem(projectionWeightsInfo, 2, (numUnits * outputSize), <span class="stringliteral">"ProjectionWeights"</span>);</div><div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>  ValidateDataTypes(projectionWeightsInfo, weightsSupportedTypes, descriptorName);</div><div class="line"><a name="l03115"></a><span class="lineno"> 3115</span> </div><div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>  <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a>)</div><div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>  {</div><div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>  <span class="keyword">auto</span> projectionBiasInfo = <a class="code" href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">m_ProjectionBias</a>-><a class="code" href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">GetTensorInfo</a>();</div><div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>  ValidateTensorNumDimNumElem(projectionBiasInfo, 1, outputSize, <span class="stringliteral">"ProjectionBias"</span>);</div><div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>  ValidateDataTypes(projectionBiasInfo, biasSupportedTypes, descriptorName);</div><div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>  }</div><div class="line"><a name="l03122"></a><span class="lineno"> 3122</span> </div><div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>  }</div><div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((outputInfo.GetQuantizationScale() != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#af8f724af7210b52529216feefa993c98">m_HiddenStateScale</a>) &&</div><div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>  outputInfo.GetQuantizationOffset() != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.xhtml#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_q_lstm_descriptor.xhtml#a4556cbd764d4848d8ad0637a9eed580d">m_HiddenStateZeroPoint</a>) {</div><div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(descriptorName +</div><div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>  <span class="stringliteral">": If projection is disabled, output quantization info (scale, offset) "</span></div><div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>  <span class="stringliteral">"should match HiddenStateScale and HiddenStateZeroPoint."</span>);</div><div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>  }</div><div class="line"><a name="l03130"></a><span class="lineno"> 3130</span> </div><div class="line"><a name="l03131"></a><span class="lineno"> 3131</span> }</div><div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_acefa49d7faf26933e27e473e7bdb4175"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acefa49d7faf26933e27e473e7bdb4175">armnn::QLstmQueueDescriptor::m_CellToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00559">WorkloadData.hpp:559</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_af3c52626a6f05597d82ed095d0765962"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#af3c52626a6f05597d82ed095d0765962">armnn::QLstmQueueDescriptor::m_ProjectionWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ProjectionWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00565">WorkloadData.hpp:565</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml_a2837b4396f20c956952d1a7286cab5f8"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#a2837b4396f20c956952d1a7286cab5f8">armnn::QLstmDescriptor::m_PeepholeEnabled</a></div><div class="ttdeci">bool m_PeepholeEnabled</div><div class="ttdoc">Enable/disable peephole. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01131">Descriptors.hpp:1131</a></div></div> +<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::DataType::Signed32</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a2ba352eb1fdf6dc5ecf7f2e6b6b48f94"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">armnn::QLstmQueueDescriptor::m_ProjectionBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ProjectionBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00566">WorkloadData.hpp:566</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml_af8f724af7210b52529216feefa993c98"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#af8f724af7210b52529216feefa993c98">armnn::QLstmDescriptor::m_HiddenStateScale</a></div><div class="ttdeci">float m_HiddenStateScale</div><div class="ttdoc">Hidden State quantization scale. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01147">Descriptors.hpp:1147</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a453a4af385d0c060c9aac990fceaa1ef"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a453a4af385d0c060c9aac990fceaa1ef">armnn::QLstmQueueDescriptor::m_ForgetLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ForgetLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00568">WorkloadData.hpp:568</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a518f0195d0278a892b49649b8860d17f"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a518f0195d0278a892b49649b8860d17f">armnn::QLstmQueueDescriptor::m_CellLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00569">WorkloadData.hpp:569</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aea142bd50ffb93631c2e08324ec92a1e"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aea142bd50ffb93631c2e08324ec92a1e">armnn::QLstmQueueDescriptor::m_RecurrentToCellWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00556">WorkloadData.hpp:556</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a98d377149071d8842d610cc0734d1cfe"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a98d377149071d8842d610cc0734d1cfe">armnn::QLstmQueueDescriptor::m_RecurrentToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00554">WorkloadData.hpp:554</a></div></div> +<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::DataType::QAsymmS8</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_q_lstm_queue_descriptor_xhtml_a332551528a4b3534c2d6c89ce816fcd9"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a332551528a4b3534c2d6c89ce816fcd9">armnn::QLstmQueueDescriptor::m_OutputGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_OutputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00564">WorkloadData.hpp:564</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a75980b5795efd899a0c678a06a900c6d"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a75980b5795efd899a0c678a06a900c6d">armnn::QLstmQueueDescriptor::m_CellBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00563">WorkloadData.hpp:563</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< QLstmDescriptor >::m_Parameters</a></div><div class="ttdeci">QLstmDescriptor m_Parameters</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00049">WorkloadData.hpp:49</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a6f74071b0e07bbe2cb20a8f78826e084"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a6f74071b0e07bbe2cb20a8f78826e084">armnn::QLstmQueueDescriptor::m_CellToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00560">WorkloadData.hpp:560</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aa3f07e27230d6d99adc2c82ba681df2b"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aa3f07e27230d6d99adc2c82ba681df2b">armnn::QLstmQueueDescriptor::m_OutputLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_OutputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00570">WorkloadData.hpp:570</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< TensorInfo > 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_q_lstm_descriptor_xhtml_a4a8ec49f130084445d44297549254780"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#a4a8ec49f130084445d44297549254780">armnn::QLstmDescriptor::m_LayerNormEnabled</a></div><div class="ttdeci">bool m_LayerNormEnabled</div><div class="ttdoc">Enable/disable layer normalization. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01135">Descriptors.hpp:1135</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a3ea82566d98c5a657c76c3d851c47848"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a3ea82566d98c5a657c76c3d851c47848">armnn::QLstmQueueDescriptor::m_InputToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00551">WorkloadData.hpp:551</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< TensorInfo > 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="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_q_lstm_queue_descriptor_xhtml_a5c1c0a7ead7273788976c9e97cffaab7"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a5c1c0a7ead7273788976c9e97cffaab7">armnn::QLstmQueueDescriptor::m_CellToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_CellToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00558">WorkloadData.hpp:558</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_adebc1771e5a1f4b113a7aa594ea74d2c"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#adebc1771e5a1f4b113a7aa594ea74d2c">armnn::QLstmQueueDescriptor::m_RecurrentToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00557">WorkloadData.hpp:557</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml_a6c9de81fc65b3c4924cab11907075a17"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#a6c9de81fc65b3c4924cab11907075a17">armnn::QLstmDescriptor::m_ProjectionEnabled</a></div><div class="ttdeci">bool m_ProjectionEnabled</div><div class="ttdoc">Enable/disable the projection layer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01133">Descriptors.hpp:1133</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_acb3aade8fae984f7293e222dcbe66030"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#acb3aade8fae984f7293e222dcbe66030">armnn::QLstmQueueDescriptor::m_InputGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00561">WorkloadData.hpp:561</a></div></div> +<div class="ttc" id="namespacearmnn_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db"><div class="ttname"><a href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a9945327825b115e93a3b89f4302e76db">armnn::DataType::QSymmS8</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a9cc28aa4fff6ba9a8abdb340c1abdd57"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a9cc28aa4fff6ba9a8abdb340c1abdd57">armnn::QLstmQueueDescriptor::m_InputLayerNormWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputLayerNormWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00567">WorkloadData.hpp:567</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a45d73e66cbb2b65049e4016c20657ccf"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a45d73e66cbb2b65049e4016c20657ccf">armnn::QLstmQueueDescriptor::m_RecurrentToForgetWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_RecurrentToForgetWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00555">WorkloadData.hpp:555</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_aba3ffe91d818266b8785ce971548eb59"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#aba3ffe91d818266b8785ce971548eb59">armnn::QLstmQueueDescriptor::m_ForgetGateBias</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_ForgetGateBias</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00562">WorkloadData.hpp:562</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a83dc9086b2e4a4e4cadb66bd874df798"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a83dc9086b2e4a4e4cadb66bd874df798">armnn::QLstmQueueDescriptor::m_InputToOutputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToOutputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00553">WorkloadData.hpp:553</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml_ad474e5c51a0b194ef32e812b86c0cbdb"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#ad474e5c51a0b194ef32e812b86c0cbdb">armnn::QLstmDescriptor::m_CifgEnabled</a></div><div class="ttdeci">bool m_CifgEnabled</div><div class="ttdoc">Enable/disable CIFG (coupled input & forget gate). </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01129">Descriptors.hpp:1129</a></div></div> +<div class="ttc" id="classarmnn_1_1_const_cpu_tensor_handle_xhtml_a66e8f43a5b42b500871ed96e15419567"><div class="ttname"><a href="classarmnn_1_1_const_cpu_tensor_handle.xhtml#a66e8f43a5b42b500871ed96e15419567">armnn::ConstCpuTensorHandle::GetTensorInfo</a></div><div class="ttdeci">const TensorInfo & GetTensorInfo() const</div><div class="ttdef"><b>Definition:</b> <a href="_cpu_tensor_handle_8hpp_source.xhtml#l00037">CpuTensorHandle.hpp:37</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a08a1932be591c315a512a877d38b22df"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a08a1932be591c315a512a877d38b22df">armnn::QLstmQueueDescriptor::m_InputToInputWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToInputWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00550">WorkloadData.hpp:550</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_descriptor_xhtml_a4556cbd764d4848d8ad0637a9eed580d"><div class="ttname"><a href="structarmnn_1_1_q_lstm_descriptor.xhtml#a4556cbd764d4848d8ad0637a9eed580d">armnn::QLstmDescriptor::m_HiddenStateZeroPoint</a></div><div class="ttdeci">int32_t m_HiddenStateZeroPoint</div><div class="ttdoc">Hidden State zero point. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01145">Descriptors.hpp:1145</a></div></div> +<div class="ttc" id="structarmnn_1_1_q_lstm_queue_descriptor_xhtml_a28ad98d17603fd8b12e046f8ece58970"><div class="ttname"><a href="structarmnn_1_1_q_lstm_queue_descriptor.xhtml#a28ad98d17603fd8b12e046f8ece58970">armnn::QLstmQueueDescriptor::m_InputToCellWeights</a></div><div class="ttdeci">const ConstCpuTensorHandle * m_InputToCellWeights</div><div class="ttdef"><b>Definition:</b> <a href="_workload_data_8hpp_source.xhtml#l00552">WorkloadData.hpp:552</a></div></div> +</div><!-- fragment --> +</div> +</div> +<h2 class="groupheader">Member Data Documentation</h2> +<a id="a75980b5795efd899a0c678a06a900c6d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a75980b5795efd899a0c678a06a900c6d">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00563">563</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a518f0195d0278a892b49649b8860d17f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a518f0195d0278a892b49649b8860d17f">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00569">569</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="acefa49d7faf26933e27e473e7bdb4175"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acefa49d7faf26933e27e473e7bdb4175">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00559">559</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a5c1c0a7ead7273788976c9e97cffaab7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5c1c0a7ead7273788976c9e97cffaab7">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00558">558</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a6f74071b0e07bbe2cb20a8f78826e084"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6f74071b0e07bbe2cb20a8f78826e084">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00560">560</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="aba3ffe91d818266b8785ce971548eb59"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aba3ffe91d818266b8785ce971548eb59">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00562">562</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a453a4af385d0c060c9aac990fceaa1ef"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a453a4af385d0c060c9aac990fceaa1ef">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00568">568</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="acb3aade8fae984f7293e222dcbe66030"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acb3aade8fae984f7293e222dcbe66030">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00561">561</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a9cc28aa4fff6ba9a8abdb340c1abdd57"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9cc28aa4fff6ba9a8abdb340c1abdd57">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00567">567</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a28ad98d17603fd8b12e046f8ece58970"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a28ad98d17603fd8b12e046f8ece58970">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00552">552</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a3ea82566d98c5a657c76c3d851c47848"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3ea82566d98c5a657c76c3d851c47848">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00551">551</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a08a1932be591c315a512a877d38b22df"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a08a1932be591c315a512a877d38b22df">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00550">550</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a83dc9086b2e4a4e4cadb66bd874df798"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a83dc9086b2e4a4e4cadb66bd874df798">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00553">553</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a332551528a4b3534c2d6c89ce816fcd9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a332551528a4b3534c2d6c89ce816fcd9">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00564">564</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="aa3f07e27230d6d99adc2c82ba681df2b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa3f07e27230d6d99adc2c82ba681df2b">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00570">570</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a2ba352eb1fdf6dc5ecf7f2e6b6b48f94"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2ba352eb1fdf6dc5ecf7f2e6b6b48f94">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00566">566</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="af3c52626a6f05597d82ed095d0765962"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af3c52626a6f05597d82ed095d0765962">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00565">565</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="aea142bd50ffb93631c2e08324ec92a1e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aea142bd50ffb93631c2e08324ec92a1e">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00556">556</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a45d73e66cbb2b65049e4016c20657ccf"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a45d73e66cbb2b65049e4016c20657ccf">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00555">555</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="a98d377149071d8842d610cc0734d1cfe"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a98d377149071d8842d610cc0734d1cfe">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00554">554</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::CreateWorkload()</a>.</p> + +</div> +</div> +<a id="adebc1771e5a1f4b113a7aa594ea74d2c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adebc1771e5a1f4b113a7aa594ea74d2c">◆ </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_cpu_tensor_handle.xhtml">ConstCpuTensorHandle</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#l00557">557</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="_q_lstm_layer_8cpp_source.xhtml#l00022">QLstmLayer::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_q_lstm_queue_descriptor.xhtml">QLstmQueueDescriptor</a></li> + <li class="footer">Generated on Fri May 29 2020 10:20:53 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> |