<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: QLstmOptCifgParameters Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structarmnn_1_1_q_lstm_opt_cifg_parameters.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structarmnn_1_1_q_lstm_opt_cifg_parameters-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">QLstmOptCifgParameters Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</a>&gt;</code></p>
<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:a281954ff495d27f7a29e42a98768c670"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#a281954ff495d27f7a29e42a98768c670">m_InputToInputWeights</a></td></tr>
<tr class="memdesc:a281954ff495d27f7a29e42a98768c670"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units] (QSymmS8).  <a href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#a281954ff495d27f7a29e42a98768c670">More...</a><br /></td></tr>
<tr class="separator:a281954ff495d27f7a29e42a98768c670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addfb6b081817510deb924c8fb5ce216c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#addfb6b081817510deb924c8fb5ce216c">m_RecurrentToInputWeights</a></td></tr>
<tr class="memdesc:addfb6b081817510deb924c8fb5ce216c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units] (QSymmS8).  <a href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#addfb6b081817510deb924c8fb5ce216c">More...</a><br /></td></tr>
<tr class="separator:addfb6b081817510deb924c8fb5ce216c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85684ffb2d12d0d04fbd188591488a2c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#a85684ffb2d12d0d04fbd188591488a2c">m_InputGateBias</a></td></tr>
<tr class="memdesc:a85684ffb2d12d0d04fbd188591488a2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 1D weights tensor with dimensions [num_units] (int32).  <a href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html#a85684ffb2d12d0d04fbd188591488a2c">More...</a><br /></td></tr>
<tr class="separator:a85684ffb2d12d0d04fbd188591488a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="_q_lstm_layer_8hpp_source.html#l00056">56</a> of file <a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a85684ffb2d12d0d04fbd188591488a2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85684ffb2d12d0d04fbd188591488a2c">&#9670;&nbsp;</a></span>m_InputGateBias</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_InputGateBias</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 1D weights tensor with dimensions [num_units] (int32). </p>

<p class="definition">Definition at line <a class="el" href="_q_lstm_layer_8hpp_source.html#l00063">63</a> of file <a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00081">QLstmLayer::Clone()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00403">QLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00368">QLstmLayer::GetConstantTensorsByRef()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<a id="a281954ff495d27f7a29e42a98768c670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a281954ff495d27f7a29e42a98768c670">&#9670;&nbsp;</a></span>m_InputToInputWeights</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_InputToInputWeights</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units] (QSymmS8). </p>

<p class="definition">Definition at line <a class="el" href="_q_lstm_layer_8hpp_source.html#l00059">59</a> of file <a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00081">QLstmLayer::Clone()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00403">QLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00368">QLstmLayer::GetConstantTensorsByRef()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<a id="addfb6b081817510deb924c8fb5ce216c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addfb6b081817510deb924c8fb5ce216c">&#9670;&nbsp;</a></span>m_RecurrentToInputWeights</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_RecurrentToInputWeights</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units] (QSymmS8). </p>

<p class="definition">Definition at line <a class="el" href="_q_lstm_layer_8hpp_source.html#l00061">61</a> of file <a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_q_lstm_layer_8cpp_source.html#l00081">QLstmLayer::Clone()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00022">QLstmLayer::CreateWorkload()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00403">QLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_q_lstm_layer_8cpp_source.html#l00368">QLstmLayer::GetConstantTensorsByRef()</a>, and <a class="el" href="_q_lstm_layer_8cpp_source.html#l00174">QLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/armnn/layers/<a class="el" href="_q_lstm_layer_8hpp_source.html">QLstmLayer.hpp</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.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_q_lstm_opt_cifg_parameters.html">QLstmOptCifgParameters</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:58 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
